• XSS.stack #1 – первый литературный журнал от юзеров форума

Поиск необъявленной функции NTDLL

secflag

RAID-массив
Пользователь
Регистрация
29.01.2020
Сообщения
51
Реакции
10
Всех приветствую.

В ntdll.dll присутствует функция, которая отвечает за некоторые действия загрузчика, но проблема в том, что она не объявлена.
Я знаю, что можно искать функции по особенным паттернам, но возникает вопрос: Как это реализовать средствами C++?
Возможно, по байтам, по строкам или API-вызовами.

( пример кода приветствуется )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Function addr = ModuleBase + Function RVA, RVA можешь выдрать в отладчике (Ну или составляешь сигнатуру и ищешь по ней, сигнатура = слепок статического кода, релоцируемые адреса должны пропускаться)
 
В плане - не объявлена? Может быть не экспортируемая? Если ищешь не экспортируемую функцию, то нужен опять же паттерну (ищи в дебаггере или дизассемблере набор байтов, а затем парси ntdll сравнивая эти байты, memcmp в помощь). Есть статья, в ней к слову есть то, что скорее всего тебе нужно. https://zerosum0x0.blogspot.com/2020/06/heresys-gate-kernel-zwntdll-scraping.html?m=1#heresy
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Можно символы подгрузить с майкрософта
Там даже символы не нужны, по всему коду загрузчика размазаны отладочные строки, найти почти любую функцию не составит проблем
loader.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Или подгружать символы с сайта мс .
Или (если пункт 1 не работает) искать по сигнатуре, как искали те же функции в хроме для перехвата. Т.е. смотрите в дизассемблере какие байты идут вначале или перед фунцией, и ищете бинарную строку в памяти/на диске или где там у вас.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Или подгружать символы с сайта мс .
Или (если пункт 1 не работает) искать по сигнатуре, как искали те же функции в хроме для перехвата. Т.е. смотрите в дизассемблере какие байты идут вначале или перед фунцией, и ищете бинарную строку в памяти/на диске или где там у вас.
Если нет пдбшки, можно раскручивать коллстек загрузчика, смотреть что как и откуда вызывается, с какими параметрами, и там уже вычислить функцию которую мы ищем. После этого смотрим xref'ы на эту функцию и составляем алгоритм поиска
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх