zoukankan      html  css  js  c++  java
  • 汇编检测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;

    }

    不追热点、不关时政、不要喧哗、不惹纷争、做自己喜欢的事,过宁静的生活。
  • 相关阅读:
    01-NoSQL概述
    SSM快速整合
    C语言指针传参与C++引用传参,以及尾插法建立单链表使用到的引用
    IP地址相关
    二叉树的先序遍历、中序遍历、后序遍历-C语言描述
    华为5G认证练习题2
    华为5G认证练习题
    华为ICT学堂获取练习题及答案
    C++ cin对象的一些方法
    webpack学习笔记2:新建工程
  • 原文地址:https://www.cnblogs.com/dsli/p/7221513.html
Copyright © 2011-2022 走看看