Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
tinyxml — TinyXML 2.6.2 com correções para CVE-2021-42260 e CVE-2023-34194 | Kitploit
Ferramentas/GitHubGitHub/vm2mv/tinyxml
Utilitários de Propósito GeralAnálise EstáticaAnálise de CódigoUtilitários e Frameworks
GitHubvm2mv/tinyxml

tinyxml

TinyXML 2.6.2 com correções para CVE-2021-42260 e CVE-2023-34194

Ver Repositório
134há 1 anoAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

/** @mainpage

TinyXML

TinyXML é um parser XML simples, pequeno e em C++ que pode ser facilmente integrado em outros programas.

O que ele faz.

Em resumo, o TinyXML analisa um documento XML e constrói a partir dele um Modelo de Objeto de Documento (DOM) que pode ser lido, modificado e salvo.

XML significa "eXtensible Markup Language". Ele permite criar suas próprias marcações de documento. Enquanto o HTML faz um trabalho muito bom de marcar documentos para navegadores, o XML permite definir qualquer tipo de marcação de documento, por exemplo, um documento que descreve uma lista de "tarefas" para um aplicativo de organizador. XML é um formato muito estruturado e conveniente. Todos aqueles formatos de arquivo aleatórios criados para armazenar dados de aplicativos podem ser substituídos por XML. Um parser para tudo.

O melhor lugar para a especificação completa, correta e, francamente, difícil de ler está em http://www.w3.org/TR/2004/REC-xml-20040204/. Uma introdução ao XML (que eu realmente gosto) pode ser encontrada em http://skew.org/xml/tutorial.

Existem diferentes maneiras de acessar e interagir com dados XML. O TinyXML usa um Modelo de Objeto de Documento (DOM), o que significa que os dados XML são analisados em objetos C++ que podem ser navegados e manipulados, e depois gravados em disco ou em outro fluxo de saída. Você também pode construir um documento XML do zero com objetos C++ e gravá-lo em disco ou em outro fluxo de saída.

O TinyXML foi projetado para ser fácil e rápido de aprender. São dois cabeçalhos e quatro arquivos cpp. Basta adicioná-los ao seu projeto e pronto. Há um arquivo de exemplo - xmltest.cpp - para você começar.

O TinyXML é lançado sob a licença ZLib, para que você possa usá-lo em código aberto ou comercial. Os detalhes da licença estão no topo de cada arquivo de origem.

O TinyXML tenta ser um parser flexível, mas com saída XML verdadeiramente correta e compatível. O TinyXML deve compilar em qualquer sistema razoavelmente compatível com C++. Ele não depende de exceções ou RTTI. Pode ser compilado com ou sem suporte a STL. O TinyXML suporta totalmente a codificação UTF-8 e as primeiras 64 mil entidades de caracteres.

O que ele não faz.

O TinyXML não analisa nem usa DTDs (Definições de Tipo de Documento) ou XSLs (Linguagem de Folha de Estilo Extensível). Existem outros parsers por aí (confira www.sourceforge.org, procure por XML) que são muito mais completos. Mas eles também são muito maiores, demoram mais para configurar no seu projeto, têm uma curva de aprendizado mais alta e geralmente têm uma licença mais restritiva. Se você está trabalhando com navegadores ou tem necessidades de XML mais completas, o TinyXML não é o parser para você.

A seguinte sintaxe DTD não será analisada neste momento no TinyXML:

@verbatim ]> @endverbatim

porque o TinyXML vê isso como um nó !DOCTYPE com um nó !ELEMENT embutido ilegalmente. Isso pode ser resolvido no futuro.

Tutoriais.

Para os impacientes, aqui está um tutorial para começar. Uma ótima maneira de começar, mas vale a pena ler este manual (muito curto) completamente.

  • @subpage tutorial0

Status do Código.

O TinyXML é um código maduro e testado. É muito estável. Se você encontrar bugs, por favor, registre um relatório de bug no site sourceforge (www.sourceforge.net/projects/tinyxml). Nós os resolveremos o mais rápido possível.

Existem algumas áreas de melhoria; por favor, verifique o sourceforge se você estiver interessado em trabalhar no TinyXML.

Projetos Relacionados

Projetos TinyXML que você pode achar úteis! (Descrições fornecidas pelos projetos.)

  • TinyXPath (http://tinyxpath.sourceforge.net). TinyXPath é um decodificador de sintaxe XPath de pequena pegada, escrito em C++.
  • TinyXML++ (http://code.google.com/p/ticpp/). TinyXML++ é uma interface completamente nova para TinyXML que usa MUITOS dos pontos fortes do C++. Templates, exceções e tratamento de erros muito melhor.

Recursos

Usando STL

O TinyXML pode ser compilado para usar ou não usar STL. Ao usar STL, o TinyXML utiliza a classe std::string e suporta totalmente std::istream, std::ostream, operator<< e operator>>. Muitos métodos da API têm ambas as formas 'const char*' e 'const std::string&'.

Quando o suporte a STL é compilado sem ele, nenhum arquivo STL é incluído. Todas as classes de string são implementadas pelo próprio TinyXML. Os métodos da API usam a forma 'const char*' para entrada.

Use a diretiva de compilação #define:

TIXML_USE_STL

para compilar uma versão ou outra. Isso pode ser passado pelo compilador ou definido como primeira linha de "tinyxml.h".

Observação: Ao compilar o código de teste no Linux, definir a variável de ambiente TINYXML_USE_STL=YES/NO controlará a compilação STL. No arquivo de projeto do Windows, são fornecidos alvos STL e não STL. No seu projeto, provavelmente é mais fácil adicionar a linha "#define TIXML_USE_STL" como primeira linha de tinyxml.h.

UTF-8

O TinyXML suporta UTF-8, permitindo manipular arquivos XML em qualquer idioma. O TinyXML também suporta "modo legado" - a codificação usada antes do suporte a UTF-8 e provavelmente melhor descrita como "ascii estendido".

Normalmente, o TinyXML tentará detectar a codificação correta e usá-la. No entanto, definindo o valor de TIXML_DEFAULT_ENCODING no arquivo de cabeçalho, o TinyXML pode ser forçado a usar sempre uma codificação.

O TinyXML assumirá o Modo Legado até que uma das seguintes situações ocorra:

  1. Se os não padrão mas comuns "bytes iniciais UTF-8" (0xef 0xbb 0xbf) iniciarem o arquivo ou fluxo de dados, o TinyXML o lerá como UTF-8.
  2. Se a tag de declaração for lida e tiver encoding="UTF-8", então o TinyXML o lerá como UTF-8.
  3. Se a tag de declaração for lida e não tiver codificação especificada, então o TinyXML o lerá como UTF-8.
  4. Se a tag de declaração for lida e tiver encoding="something else", então o TinyXML o lerá como Modo Legado. No modo legado, o TinyXML funcionará como antes. Não está claro o que esse modo faz exatamente, mas o conteúdo antigo deve continuar funcionando.
  5. Até que um dos critérios acima seja atendido, o TinyXML executa em Modo Legado.

O que acontece se a codificação for definida ou detectada incorretamente? O TinyXML tentará ler e passar texto visto como codificado incorretamente. Você pode obter alguns resultados estranhos ou caracteres distorcidos. Talvez você queira forçar o TinyXML para o modo correto.

Você pode forçar o TinyXML ao Modo Legado usando LoadFile( TIXML_ENCODING_LEGACY ) ou LoadFile( filename, TIXML_ENCODING_LEGACY ). Você pode forçá-lo a usar o modo legado o tempo todo definindo TIXML_DEFAULT_ENCODING = TIXML_ENCODING_LEGACY. Da mesma forma, você pode forçá-lo a TIXML_ENCODING_UTF8 com a mesma técnica.

Para usuários de inglês, usando XML em inglês, UTF-8 é o mesmo que low-ASCII. Você não precisa estar ciente do UTF-8 ou alterar seu código de forma alguma. Você pode pensar no UTF-8 como um "superconjunto" do ASCII.

UTF-8 não é um formato de byte duplo - mas é uma codificação padrão do Unicode! O TinyXML não usa nem suporta diretamente wchar, TCHAR ou _UNICODE da Microsoft neste momento. É comum ver o termo "Unicode" referido incorretamente ao UTF-16, uma codificação de byte largo do Unicode. Isso é uma fonte de confusão.

Baixar ferramenta