0x9*_*x90 16 windows debugging x86 assembly reverse-engineering
为什么以下汇编代码是反调试工具?
l1:
call l3
l2:
;some code
l3:
mov al, 0c3h
mov edi, offset l3
or ecx, -1
rep stosb
Run Code Online (Sandbox Code Playgroud)
我知道C3h是RETN,我知道根据偏移量stobs将值al作为操作码写入,edi并且ecx因为时间而完成rep.
我也知道的事实,stobs并stosw会如果他们是基于英特尔架构的预取为原来的形式进行.
如果我们以调试模式运行程序,预取是无关紧要的,并且l2标签将运行(因为它是单步)否则如果没有调试器它将在l1和l3之间打乒乓我对吗?
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |