汇编检测OD代码
Posted cagebird
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编检测OD代码相关的知识,希望对你有一定的参考价值。
repnz指令说明:重复执行其后面的指令,CX或ECX存放最多比较次数,DI或EDI存放查找表首地址,AL或AX或EAX存放想查找的内容。当(CX或ECX)= 0 或 ZF=1 退出重复,否则,(CX或ECX)自减一,执行其后的串指令。CX或ECX为0结束是因为已经查表完毕,没有匹配到;ZF=1说明 “比较的结果为0”,也就是查找到一样的内容,说明匹配到想要查找的内容。
BOOL DetectBreakpoints()
{
BOOL bFoundOD;
bFoundOD=FALSE;
__asm
{
jmp CodeEnd
CodeStart: mov eax,ecx ;被保护的程序段
nop
push eax
push ecx
pop ecx
pop eax
CodeEnd:
cld ;检测代码开始
mov edi,offset CodeStart
mov edx,offset CodeStart
mov ecx,offset CodeEnd
sub ecx,edx
mov al,0CCH
repne scasb
jnz ODNotFound
mov bFoundOD,1
ODNotFound:
}
return bFoundOD;
}
以上是关于汇编检测OD代码的主要内容,如果未能解决你的问题,请参考以下文章
新2023Q2模拟题JAVA华为OD机试 - 总最快检测效率 or 核酸检测效率