Нашел хороший фрагмент кода (https://github.com/invictus1306/Anti-debugging-techniques/blob/master/anti-debugging.asm) для механизма антиотладки в asm. Мой вопрос о следующем фрагменте:
;IsDebuggerPresent first - kernel32!IsDebuggerPresent
call IsDebuggerPresent
call @eip_manipulate ; change eip (point to next instruction)
mov eax, 010h
cmp eax, 1
je @Detected
[...]
@eip_manipulate:
add dword ptr [esp], 5
ret
Я не понимаю, почему я должен изменить этоПотому что, если я вызову isDebuggerPresent, он вернет 1 для debuggerIsPresent или 0 для debuggerIsNotPresent. Попробовал это, и он работает только с вызовом eip_manipulate.