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

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

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

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

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

Категории

Все категории
Loading categories
XenoScan — Открытый сканер памяти, написанный на C++ | Kitploit
Инструменты/GitHubGitHub/nickcano/xenoscan
Криминалистика памятиЭксплуатацияОбратная инженерияОтладчикиАнализ Бинарных Файлов
GitHubnickcano/xenoscan

XenoScan

Открытый сканер памяти, написанный на C++

Репозиторий
369705 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

XenoScan

XenoScan — это сканер памяти, который можно использовать для сканирования памяти процессов с целью нахождения конкретных расположений важных значений. Такие инструменты обычно применяются при взломе видеоигр, так как позволяют найти значения, представляющие состояние игры в памяти.

XenoScan написан на C++ с Lua-интерфейсом, и я работаю над продвинутыми функциями, которые превосходят всё, что я видел в других сканерах памяти. В частности, он умеет перечислять и возвращать все сложные структуры данных (такие как std::list и std::map) в адресном пространстве цели, а также может сканировать любые экземпляры классов и группировать найденные экземпляры по их базовым типам.

Связь

Если вам нужно связаться со мной, вы хотите место для общения или у вас есть вопрос, лучше всего обратиться в мой Discord.

Подпроекты

XenoLua

XenoLua — это обёртка вокруг Lua, предоставляющая множество функций. Наиболее примечательным является класс LuaVariant, который инкапсулирует функциональность преобразования между типами C/C++ и Lua. Кроме того, в классе LuaPrimitive есть вспомогательные функции для работы с Lua.

XenoScanEngine

XenoScanEngine — это основная часть проекта. Он содержит код для сканирования, обнаружения структур данных и всё остальное.

XenoScanLua

XenoScanLua связывает XenoScanEngine с XenoLua, предоставляя Lua-скриптуемый интерфейс для сканера. В настоящее время это единственная точка входа в сканер.

Кроме того, этот проект содержит тестовый код, который проверяет, что всё работает правильно. Тест представляет собой комбинацию файлов .cpp, .h и .lua. Примеры использования сканера можно найти в тестовых файлах .lua.

Компиляция

XenoScan использует CMake и был протестирован с Visual Studio 2017. Чтобы использовать эту версию VS, просто запустите buildmsvc2017.bat из 32-битной командной строки разработчика для VS. Например, для сборки проекта для Visual Studio 2017 я выполняю

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017.bat

Это создаёт файл с именем XenoScan.sln в моей папке build (например, C:\path\to\XenoScan\build). Затем я использую этот файл решения для компиляции кода в Visual Studio. Сборка x64 аналогична, но выполняется из командной строки x64 Native Tools для VS.

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017x64.bat

При переключении между сборками 32bit и x64 следует запустить buildclean.bat. Это удалит сгенерированные файлы проекта и удалит скомпилированные бинарные файлы LuaJIT, так как их необходимо пересобрать для правильной архитектуры (это произойдёт автоматически).

Примечание: понятия не имею, почему эти командные строки так по-разному называются. Важно то, что vcvars, установленные командными строками, соответствуют собираемой архитектуре. Это в основном важно для сборки LuaJIT. В любом случае, скрипты сборки сообщат вам, если вы запускаете их из неправильного места.

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

Под «современным» я подразумеваю всё, что поддерживает C++17, так как код использует этот стандарт. Кроме того, ваша версия CMake должна быть не ниже 3.10.

Платформа

Код спроектирован как платформонезависимый. Теоретически для компиляции на любой другой платформе вам нужно

  1. Создать файлы проекта/сборки для вашей целевой IDE/компилятора.
  2. Удалить файлы ScannerTargetWindows.cpp и ScannerTargetWindows.h из проекта.
  3. Реализовать интерфейс ScannerTarget для вашей платформы.
  4. Добавить вашу реализацию в проект.
  5. ???? profit

Возможности

Базовая функциональность сканирования поддерживает следующие типы:

  • Целочисленные типы*:
    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t
  • float
  • double
  • ascii-строки
  • широкие строки
  • Динамические значения (значения, которые ищутся относительно некоторого текущего состояния)
    • filetime64: 64-битная временная метка (GetSystemTimeAsFileTime() в Windows)
    • ticktime32: 32-битное количество тиков ( в Windows)

* Lua-интерфейс может испытывать проблемы с 64-битными целыми числами, но библиотека сканера их поддерживает.

Сканирование поддерживает следующие типы сравнения:

  • Равно
  • Больше
  • Больше или равно
  • Меньше
  • Меньше или равно
  • Диапазоны (min <= check <= max)

Кроме того, есть функция обнаружения всех экземпляров следующих типов:

  • std::map
  • std::list
  • Любой класс с таблицей виртуальных функций
Скачать инструмент
GetTickCount()
  • Пользовательские структуры данных (по типу C++ struct)
    • Могут состоять из любой комбинации целочисленных и десятичных типов