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

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

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

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

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

Категории

Все категории
Loading categories
N0xis — Инструментарий для реверс-инжиниринга с приоритетом ИИ: статический анализ, SSA-декомпилятор, работа с живой памятью, отслеживание происхождения. Доступен исходный код (PolyForm Noncommercial). | Kitploit
Инструменты/GitHubGitHub/structio-labs/n0xis
Статический анализДинамический анализ (песочница)Криминалистика памятиОбратная инженерияОтладчикиАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловОбратная Разработка с Помощью ИИЭксплуатация Бинарных Файлов
GitHub
1319 дней назадЕщё не проверено
structio-labs/n0xis

N0xis

Инструментарий для реверс-инжиниринга с приоритетом ИИ: статический анализ, SSA-декомпилятор, работа с живой памятью, отслеживание происхождения. Доступен исходный код (PolyForm Noncommercial).

Репозиторий

Популярное

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

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

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

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

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

N0xis

От аппаратной точки наблюдения в живом процессе до точной декомпилированной инструкции, изменившей значение.

Сканеры памяти находят адрес. Декомпиляторы объясняют код. N0xis связывает их.

$ n0x provenance trace --pid 9348 --addr 0x7ff68bef3010 --kind write
"function_va": "0x7ff68bef1580",          // containing function, auto-resolved
"decompiled_context": [
  "rax.2 = (*(uint32_t*)(0x7ff68bef3010) - 0x1);",
  "*(uint32_t*)(0x7ff68bef3010) = rax.2;"  // ← the statement that moved your value
]

Это исходное hp -= 1;, восстановленное из работающего процесса — наблюдаемый адрес присутствует в инструкции. Проверено на Windows и Linux.

Сканирование «найти, что обращается к этому» обычно останавливается на строке сырого дизассемблирования, а декомпилятор обычно вообще не имеет входных данных от живой точки наблюдения. Здесь две половины соединены: срабатывание точки наблюдения проходит через тот же SSA-конвейер, который декомпилирует файл.

Установка

Готовые бинарники для Linux и Windows — последний релиз.

curl -LO https://github.com/Structio-labs/N0xis/releases/latest/download/n0xis-linux-x86_64
chmod +x n0xis-linux-x86_64 && ./n0xis-linux-x86_64 --version

Или соберите сами: cargo build --workspace --release (Windows и Linux; MSVC Build Tools не нужны — rust-toolchain.toml фиксирует gnu-хост).

Быстрый старт

Каждая команда выводит один JSON-объект — включая ошибки аргументов: {"ok":true,"data":…,"meta":…} или {"ok":false,"error":…}. Добавьте --pretty для чтения; код возврата ненулевой при ошибке.

n0x doctor                                                    # environment check
n0x profile --file game.exe                                   # triage: sections, exports, engine hints
n0x function discover --file game.exe --pdata                 # exact .pdata discovery
n0x decomp pseudo --file game.exe --addr 0x140012a00 --style ssa --pretty
n0x provenance trace --pid 4821 --addr 0x1a2b3c40 --kind write --pretty

Те же команды работают с живым --pid, статическим --file, захваченным --snapshot или удалённым процессом по SSH. Это обычная Unix-инфраструктура — n0x function discover --file game.exe --pdata | jq -r '.data.functions[].va' передаёт результат следующей команде. n0x guide перечисляет все 113 команд, генерируемых из бинарника, поэтому список никогда не устаревает — и тест проваливает сборку, если это число не совпадает.

Из агента: направьте любой MCP-клиент на n0xis-mcp — 25 инструментов, возвращающих идентичный конверт {ok,data,meta}, JSON-RPC через stdio.

{ "mcpServers": { "n0xis": { "command": "/path/to/n0xis-mcp" } } }

Что он делает

  • Декомпиляция — оптимизирующий SSA-декомпилятор (Memory-SSA, объединение переменных phi-web, полное разрушение SSA, точные условия ветвлений), чей оптимизатор сообщает о каждой выполненной перезаписи (--explain: какой подпроход что изменил, по какому адресу), а не даёт ответ из чёрного ящика.
  • Сканирование живой памяти — сканирование значений/указателей/AOB с сужением на основе снимков, заморозка, хуки в code-cave. полный цикл сканирование → сужение → заморозка → патч.
  • Наблюдение и объяснение — программные / аппаратные / условные точки останова и настоящий межпроцессный развёрнутый стек вызовов; сырьё, на котором строится provenance.
  • Восстановление имён — классы C++ из RTTI для обоих ABI (цепочки MSVC .rdata и символы Itanium _ZTV), .NET NativeAOT RVA ↔ Namespace.Type.Method, LuaJIT, Bitsquid, IL2CPP — так что очищенный образ читается как исходник, а не sub_XXXX.
  • Сохранение и сравнение — таблицы .n0xt, версионированные аннотации, контентно-адресуемое кэширование, сравнение функций/версий.

Windows и Linux, PE и ELF, один конвейер — статические файлы, живые процессы, снимки и удалённые цели проходят через одни и те же проходы и один и тот же версионированный JSON.

В ядре никогда нет ML-недетерминизма. Настольный GUI живёт в отдельном репозитории: n0xis-gui.

Статус

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

Живая память, против одноразовой цели, которая размещает известные значения:

  • Linux — 29 из 31 команд измерены относительно /proc/<pid>/mem, одна неверна и исправлена. Две остальные только для Windows и отказываются, сообщая об этом. Неверной была scan dissect, которая выбрала ширину поля до его выравнивания и потому читала структуру со сдвигом на четыре байта с самой первой ошибки: одно поле из шести верно относительно раскладки, известной из её собственного исходника, пять из шести после.
  • Windows 11 — 21 из 23 проверок измерены, 0 неверных, при этом сама цель служит оракулом. ui focus корректно не находит окно у консольной цели; stack backtrace — только для Linux — единственное место, где Linux-адаптер впереди.

Декодер, против независимого дизассемблера — фундамент, на котором стоит всё остальное, и до сих пор проверявшийся только проходами, построенными поверх него, которые все читают один и тот же поток:

  • x86: границы инструкций сравнивались с objdump. Три специально построенные формы точны, 20 000 инструкций разделяемой библиотеки и 20 000 инструкций 32-битной системной DLL, ноль расхождений и ноль границ, которые нашла бы только одна из сторон. Расширено до 60 000 инструкций из 334 МБ очищенного бинарника браузера: 2 расхождения, оба внутри ASCII-строки, встроенной в .text, где сам эталон декодирует (bad) — это не код, и ни одно из чтений не является правильным.
  • AArch64: мнемоники сравнивались с llvm-objdump (кодировки фиксированной ширины делают границы бессмысленными). См. строку ARM64 ниже.
  • AArch64, пространство кодировок, а не вывод компилятора: 600 детерминированных слов оценены llvm-mc --mattr=+all и n0xis. 241 оба называют инструкцией, 304 оба отвергают — и 48 (8.0%) — это зарезервированные кодировки, которые n0xis читает как инструкции, при 7 (1.2%) реальных инструкциях, которые он отвергает (в основном LSE-атомики). Три из 48 были декодированы вручную и являются действительно UNALLOCATED. Этот разрыв удерживается границей, которая проваливается, если он растёт, и указан здесь, а не опущен: зарезервированное слово, прочитанное как инструкция, превращает данные в правдоподобную программу.

Границы функций, против собственной таблицы размотки образа и списка экспортов линкера:

  • start..end каждого FDE из objdump --dwarf=frames равны восстановленной границе — 3 787 сравнено на этой машине (10 + 3 777 из libc), начало и конец, точно; отдельно измерено 15 467 и 14 355 на двух больших библиотеках.
  • 0 пропущенных экспортируемых точек входа в списке функций: 10 из 10 на форме-оракуле и 2 323 из 2 323 внутри просканированного окна libc.
Скачать инструмент