Это вторая часть статьи о проксировании загрузки DLL для скрытия подозрительных следов стека, ведущих к выделенной пользователем области RX. Первая часть здесь, она обязательна к прочтению!
Я не буду углубляться в то, как работает стек, потому что я уже рассказал об этом в предыдущей статье, которая доступна по вышеуказанной ссылке. Ранее мы видели, что мы можем манипулировать инструкциями
call и
jmp для запроса callback windows в вызове
API LoadLibrary. Однако обнаружение трассировки стека выходит далеко за рамки простого отслеживания загрузки DLL. Когда вы внедряете отражающую DLL в локальный или удаленный процесс, вам приходится вызывать вызовы API, такие как
VirtualAllocEx/VirtualProtectEx, которые косвенно вызывают
NtAllocateVirtualMemory/NtProtectVirtualMemory. Однако, когда вы проверите стек вызовов легитимных вызовов API, вы заметите, что
WINAPI, такие как
VirtualAlloc/VirtualProtect, в основном вызываются не-Windows DLL-функциями. Большинство...