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 次 |
最近记录: |