Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
tinyxml — TinyXML 2.6.2 con correzioni per CVE-2021-42260 e CVE-2023-34194 | Kitploit
Strumenti/GitHubGitHub/vm2mv/tinyxml
Utilità GenericheAnalisi StaticaAnalisi del CodiceUtilità e Framework
GitHubvm2mv/tinyxml

tinyxml

TinyXML 2.6.2 con correzioni per CVE-2021-42260 e CVE-2023-34194

Vedi Repository
1161 anno faNon ancora revisionato
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

/** @mainpage

TinyXML

TinyXML è un parser XML C++ semplice, piccolo e facilmente integrabile in altri programmi.

Cosa fa.

In breve, TinyXML analizza un documento XML e ne costruisce un Document Object Model (DOM) che può essere letto, modificato e salvato.

XML sta per "eXtensible Markup Language". Ti permette di creare i tuoi markup di documento. Mentre l'HTML fa un ottimo lavoro nel marcare i documenti per i browser, XML ti permette di definire qualsiasi tipo di markup di documento, ad esempio un documento che descrive una lista di "cose da fare" per un'applicazione organizer. XML è un formato molto strutturato e comodo. Tutti quei formati di file arbitrari creati per memorizzare dati di applicazioni possono essere sostituiti da XML. Un solo parser per tutto.

Il posto migliore per la specifica completa, corretta e, francamente, difficile da leggere è http://www.w3.org/TR/2004/REC-xml-20040204/. Un'introduzione a XML (che mi piace molto) si trova a http://skew.org/xml/tutorial.

Ci sono diversi modi per accedere e interagire con i dati XML. TinyXML usa un Document Object Model (DOM), il che significa che i dati XML vengono analizzati in oggetti C++ che possono essere esplorati e manipolati, e poi scritti su disco o su un altro stream di output. Puoi anche costruire un documento XML da zero con oggetti C++ e scriverlo su disco o su un altro stream di output.

TinyXML è progettato per essere facile e veloce da imparare. Si tratta di due header e quattro file cpp. Basta aggiungerli al tuo progetto e sei pronto per partire. C'è un file di esempio - xmltest.cpp - per iniziare.

TinyXML è rilasciato sotto la licenza ZLib, quindi puoi usarlo in codice open source o commerciale. I dettagli della licenza sono all'inizio di ogni file sorgente.

TinyXML cerca di essere un parser flessibile, ma con un output XML davvero corretto e conforme. TinyXML dovrebbe compilare su qualsiasi sistema ragionevolmente conforme al C++. Non fa affidamento su eccezioni o RTTI. Può essere compilato con o senza supporto STL. TinyXML supporta completamente la codifica UTF-8 e le prime 64k entità di caratteri.

Cosa non fa.

TinyXML non analizza né usa DTD (Document Type Definitions) o XSL (eXtensible Stylesheet Language). Ci sono altri parser in giro (controlla www.sourceforge.org, cerca XML) che hanno molte più funzionalità. Ma sono anche molto più grandi, richiedono più tempo per la configurazione nel tuo progetto, hanno una curva di apprendimento più ripida e spesso hanno una licenza più restrittiva. Se lavori con i browser o hai esigenze XML più complete, TinyXML non è il parser che fa per te.

La seguente sintassi DTD non verrà analizzata al momento in TinyXML:

@verbatim ]> @endverbatim

perché TinyXML lo vede come un nodo !DOCTYPE con un nodo !ELEMENT incorporato illegalmente. Questo potrebbe essere risolto in futuro.

Tutorial.

Per gli impazienti, ecco un tutorial per iniziare. Un ottimo modo per partire, ma vale la pena leggere questo manuale (molto breve) per intero.

  • @subpage tutorial0

Stato del codice.

TinyXML è un codice maturo e collaudato. È molto stabile. Se trovi bug, per favore segnalali sul sito web di sourceforge (www.sourceforge.net/projects/tinyxml). Li sistemeremo il prima possibile.

Ci sono alcune aree di miglioramento; controlla sourceforge se sei interessato a lavorare su TinyXML.

Progetti correlati

Progetti TinyXML che potresti trovare utili! (Descrizioni fornite dai progetti.)

  • TinyXPath (http://tinyxpath.sourceforge.net). TinyXPath è un decoder di sintassi XPath dal piccolo footprint, scritto in C++.
  • TinyXML++ (http://code.google.com/p/ticpp/). TinyXML++ è un'interfaccia completamente nuova per TinyXML che usa MOLTI dei punti di forza del C++. Template, eccezioni e una gestione degli errori molto migliore.

Funzionalità

Uso di STL

TinyXML può essere compilato per usare o non usare STL. Quando usa STL, TinyXML usa la classe std::string e supporta completamente std::istream, std::ostream, operator<< e operator>>. Molti metodi API hanno sia le forme 'const char*' che 'const std::string&'.

Quando il supporto STL è escluso dalla compilazione, nessun file STL viene incluso. Tutte le classi stringa sono implementate da TinyXML stesso. Tutti i metodi API usano la forma 'const char*' per l'input.

Usa la #define in fase di compilazione:

TIXML_USE_STL

per compilare una versione o l'altra. Questo può essere passato dal compilatore o impostato come prima riga di "tinyxml.h".

Nota: se compili il codice di test in Linux, impostando la variabile d'ambiente TINYXML_USE_STL=YES/NO controllerai la compilazione STL. Nel file di progetto Windows vengono forniti target STL e non STL. Nel tuo progetto, probabilmente è più semplice aggiungere la riga "#define TIXML_USE_STL" come prima riga di tinyxml.h.

UTF-8

TinyXML supporta UTF-8, permettendo di manipolare file XML in qualsiasi lingua. TinyXML supporta anche la "modalità legacy" - la codifica usata prima del supporto UTF-8 e probabilmente meglio descritta come "ascii esteso".

Normalmente, TinyXML cercherà di rilevare la codifica corretta e di usarla. Tuttavia, impostando il valore di TIXML_DEFAULT_ENCODING nel file header, TinyXML può essere forzato a usare sempre una codifica.

TinyXML assumerà la Modalità Legacy finché non si verifica una delle seguenti condizioni:

  1. Se i non standard ma comuni "byte iniziali UTF-8" (0xef 0xbb 0xbf) iniziano il file o lo stream di dati, TinyXML lo leggerà come UTF-8.
  2. Se viene letto il tag di dichiarazione e ha encoding="UTF-8", allora TinyXML lo leggerà come UTF-8.
  3. Se viene letto il tag di dichiarazione e non ha alcuna codifica specificata, allora TinyXML lo leggerà come UTF-8.
  4. Se viene letto il tag di dichiarazione e ha encoding="qualcos'altro", allora TinyXML lo leggerà in Modalità Legacy. In modalità legacy, TinyXML funzionerà come prima. Non è chiaro cosa faccia esattamente quella modalità, ma i vecchi contenuti dovrebbero continuare a funzionare.
  5. Finché non viene soddisfatto uno dei criteri sopra, TinyXML gira in Modalità Legacy.

Cosa succede se la codifica è impostata o rilevata in modo errato? TinyXML cercherà di leggere e lasciar passare il testo visto come codificato in modo improprio. Potresti ottenere risultati strani o caratteri alterati. Potresti voler forzare TinyXML nella modalità corretta.

Puoi forzare TinyXML in Modalità Legacy usando LoadFile( TIXML_ENCODING_LEGACY ) o LoadFile( filename, TIXML_ENCODING_LEGACY ). Puoi forzarlo a usare sempre la modalità legacy impostando TIXML_DEFAULT_ENCODING = TIXML_ENCODING_LEGACY. Allo stesso modo, puoi forzarlo a TIXML_ENCODING_UTF8 con la stessa tecnica.

Per gli utenti inglesi, che usano XML in inglese, UTF-8 è uguale al low-ASCII. Non hai bisogno di conoscere UTF-8 o di cambiare il tuo codice in alcun modo. Puoi pensare a UTF-8 come a un "superset" di ASCII.

UTF-8 non è un formato a doppio byte - ma è una codifica standard di Unicode! Al momento TinyXML non usa né supporta direttamente wchar, TCHAR o _UNICODE di Microsoft. È comune vedere il termine "Unicode" riferito impropriamente a UTF-16, una codifica a byte larghi di unicode. Questa è una fonte di confusione.

Scarica lo strumento