Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tinyxml — TinyXML 2.6.2 с исправлениями для CVE-2021-42260 и CVE-2023-34194 | Kitploit
Инструменты/GitHubGitHub/vm2mv/tinyxml
Утилиты общего назначенияСтатический анализАнализ КодаУтилиты и фреймворки
GitHubvm2mv/tinyxml

tinyxml

TinyXML 2.6.2 с исправлениями для CVE-2021-42260 и CVE-2023-34194

Репозиторий
1161 год назадЕщё не проверено
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

/** @mainpage

TinyXML

TinyXML — это простой, небольшой парсер XML на C++, который можно легко интегрировать в другие программы.

Что он делает.

Вкратце, TinyXML разбирает XML-документ и строит из него объектную модель документа (DOM), которую можно читать, изменять и сохранять.

XML расшифровывается как «eXtensible Markup Language» (расширяемый язык разметки). Он позволяет создавать собственные разметки документов. В то время как HTML отлично подходит для разметки документов для браузеров, XML позволяет определить любой вид разметки документов, например, документ, описывающий список «дел» для приложения-органайзера. XML — очень структурированный и удобный формат. Все те случайные форматы файлов, созданные для хранения данных приложений, могут быть заменены XML. Один парсер для всего.

Лучшее место для полной, корректной и, честно говоря, сложной для чтения спецификации находится по адресу http://www.w3.org/TR/2004/REC-xml-20040204/. Введение в XML (которое мне очень нравится) можно найти по адресу http://skew.org/xml/tutorial.

Существуют разные способы доступа и взаимодействия с XML-данными. TinyXML использует объектную модель документа (DOM), то есть XML-данные разбираются в объекты C++, которые можно просматривать и изменять, а затем записывать на диск или в другой выходной поток. Вы также можете создать XML-документ с нуля с помощью объектов C++ и записать его на диск или в другой выходной поток.

TinyXML спроектирован так, чтобы его было легко и быстро изучать. Он состоит из двух заголовочных файлов и четырёх файлов cpp. Просто добавьте их в свой проект — и готово. Есть пример файла — xmltest.cpp, чтобы вы могли начать.

TinyXML распространяется под лицензией ZLib, поэтому вы можете использовать его как в открытом, так и в коммерческом коде. Подробности лицензии находятся в начале каждого исходного файла.

TinyXML стремится быть гибким парсером, но с действительно корректным и соответствующим стандарту XML-выводом. TinyXML должен компилироваться на любой достаточно соответствующей стандарту C++ системе. Он не полагается на исключения или RTTI. Его можно скомпилировать с поддержкой STL или без неё. TinyXML полностью поддерживает кодировку UTF-8 и первые 64k символьных сущностей.

Что он не делает.

TinyXML не разбирает и не использует DTD (определения типов документов) или XSL (расширяемый язык таблиц стилей). Существуют другие парсеры (посмотрите на www.sourceforge.org, поищите XML), которые обладают гораздо более полными возможностями. Но они также гораздо больше, требуют больше времени на настройку в вашем проекте, имеют более крутую кривую обучения и часто имеют более ограничительную лицензию. Если вы работаете с браузерами или вам нужны более полные возможности XML, TinyXML — не ваш выбор.

Следующий синтаксис DTD не будет разобран в текущей версии TinyXML:

@verbatim ]> @endverbatim

потому что TinyXML видит это как узел !DOCTYPE с незаконно встроенным узлом !ELEMENT. Это может быть исправлено в будущем.

Руководства.

Для нетерпеливых — вот руководство, чтобы начать. Отличный способ начать, но стоит прочитать это (очень короткое) руководство полностью.

  • @subpage tutorial0

Статус кода.

TinyXML — зрелый, проверенный код. Он очень стабилен. Если вы найдёте ошибки, пожалуйста, отправьте отчёт об ошибке на веб-сайте sourceforge (www.sourceforge.net/projects/tinyxml). Мы исправим их как можно скорее.

Есть некоторые области для улучшения; пожалуйста, проверьте sourceforge, если вы заинтересованы в работе над TinyXML.

Связанные проекты

Проекты TinyXML, которые могут вам пригодиться! (Описания предоставлены проектами.)

  • TinyXPath (http://tinyxpath.sourceforge.net). TinyXPath — это декодер синтаксиса XPath с небольшим размером, написанный на C++.
  • TinyXML++ (http://code.google.com/p/ticpp/). TinyXML++ — это совершенно новый интерфейс для TinyXML, который использует МНОГИЕ возможности C++. Шаблоны, исключения и гораздо лучшая обработка ошибок.

Возможности

Использование STL

TinyXML может быть скомпилирован с использованием или без использования STL. При использовании STL TinyXML использует класс std::string и полностью поддерживает std::istream, std::ostream, operator<< и operator>>. Многие методы API имеют как формы 'const char*', так и 'const std::string&'.

Когда поддержка STL отключена, файлы STL вообще не включаются. Все строковые классы реализованы самим TinyXML. Методы API используют форму 'const char*' для ввода.

Используйте директиву времени компиляции #define:

TIXML_USE_STL

чтобы скомпилировать одну или другую версию. Это можно передать компилятору или установить в первой строке «tinyxml.h».

Примечание: При компиляции тестового кода в Linux установка переменной среды TINYXML_USE_STL=YES/NO будет управлять компиляцией STL. В файле проекта Windows предоставлены цели для STL и без STL. В вашем проекте, вероятно, проще всего добавить строку «#define TIXML_USE_STL» в качестве первой строки tinyxml.h.

UTF-8

TinyXML поддерживает UTF-8, что позволяет манипулировать XML-файлами на любом языке. TinyXML также поддерживает «устаревший режим» — кодировку, использовавшуюся до поддержки UTF-8 и вероятно лучше всего описываемую как «расширенный ASCII».

Обычно TinyXML пытается определить правильную кодировку и использовать её. Однако, установив значение TIXML_DEFAULT_ENCODING в заголовочном файле, TinyXML можно заставить всегда использовать одну кодировку.

TinyXML будет предполагать устаревший режим, пока не произойдет одно из следующего:

  1. Если нестандартные, но распространённые «байты заголовка UTF-8» (0xef 0xbb 0xbf) находятся в начале файла или потока данных, TinyXML будет читать его как UTF-8.
  2. Если прочитан тег объявления, и он имеет encoding="UTF-8", то TinyXML будет читать его как UTF-8.
  3. Если прочитан тег объявления, и в нём не указана кодировка, то TinyXML будет читать его как UTF-8.
  4. Если прочитан тег объявления, и он имеет encoding="что-то другое", то TinyXML будет читать его в устаревшем режиме. В устаревшем режиме TinyXML будет работать как раньше. Не совсем ясно, что именно делает этот режим, но старый контент продолжит работать.
  5. Пока не выполнено ни одно из вышеперечисленных условий, TinyXML работает в устаревшем режиме.

Что произойдёт, если кодировка установлена или определена неправильно? TinyXML попытается читать и пропускать текст, который выглядит неправильно закодированным. Вы можете получить странные результаты или искажённые символы. Возможно, вам потребуется принудительно установить для TinyXML правильный режим.

Вы можете принудительно переключить TinyXML в устаревший режим с помощью LoadFile( TIXML_ENCODING_LEGACY ) или LoadFile( filename, TIXML_ENCODING_LEGACY ). Вы можете принудительно заставить его использовать устаревший режим всё время, установив TIXML_DEFAULT_ENCODING = TIXML_ENCODING_LEGACY. Аналогично, вы можете принудительно установить TIXML_ENCODING_UTF8 с помощью той же техники.

Для англоязычных пользователей, использующих английский XML, UTF-8 — это то же самое, что низкий ASCII. Вам не нужно знать о UTF-8 или как-либо менять свой код. Вы можете думать о UTF-8 как о «надмножестве» ASCII.

UTF-8 — это не двухбайтовый формат — это стандартная кодировка Unicode! TinyXML в настоящее время не использует и не поддерживает напрямую wchar, TCHAR или Microsoft _UNICODE. Часто можно встретить неправильное использование термина «Unicode» для обозначения UTF-16, широкобайтной кодировки юникода. Это источник путаницы.

Скачать инструмент