Find real syscall number by brute-force(PoC)

Ahora57

Участник
Автор темы
4
29
Зачем мапать файл или использовать жёстко закодированные системные номера(Like:VMP) для обхода UM хуков,
когда можно просто получить правильный системный номер , путём брутфорса системного номера и проверки возвращаемого статуса?
Звучит гениально, не правда ли?
Это просто мемный PoC(только x64 code т.к я не очень люблю идею WoW64 и согласен с Xjun),поэтому не считайте данный код чем-то серьёзным.
Для x32 code в WoW64 вы должны использовать heavens gate,а для x32 системы вам нужно фиксить стек т.к после вызова идёт выравнивание
C++:
///Windows 10 x32 build 14393
//NtQueryInformationProcess
mov eax,B7
call ntdll.771C270D
ret 14//<- this shit
mov edx,esp
sysenter
ret
//NtQuerySystemInformation
mov eax,9B
call ntdll.771C239D
ret 10//<- this shit
mov edx,esp
sysenter
ret
Это позволяет легко обходить любые UM хуки,кроме Instrumentation Callback
SharpOD_enabled.png

Code