ITEEDU

第1章 Iczelion的Win32汇编教程

第2章 Iczelion的ODBC教程

第3章 Iczelion的VxD教程

第4章 Iczelion的PE教程

第5章 罗云彬的Win32汇编教程

第6章 Win32ASM经验点滴

第7章 X86汇编语言编程

第8章 加密解密

第9章 病毒的分析和防治

用指令预取反跟踪

概述:

CPU 的执行时并不是执行到哪一句再到内存中去取那一句,而是先读入到 CPU 的 Cache 中,如果指令已经到了 Cache 中,再将它修改也没有用了,如果用跟踪程序的话,CPU 的 Cache 中就不会是跟正常执行时的指令相同,所以可以改动下几条指令,当然是故意改错,如果没有跟踪,程序还回照常执行,有跟踪的话,那就...

汇编编程示例:


        CODE  SEGMENT
              ASSUME    CS:CODE,DS:CODE
              ORG       100H
      START:
              JMP       INSTALL

          D1  DB        'OK, passed ...',0DH,0AH,24H

    INSTALL:
              MOV       WORD PTR _CODE,20CDH
      _CODE:
              NOP                   ;如果跟踪一下,就会发现下一条指令是 INT 20H,返回 DOS 了
              NOP

              MOV       SI,OFFSET _CODE1
              MOV       DI,SI
              CLD
              MOV       AX,20CDH
              STOSW
              LODSW
     _CODE1:
              NOP
              NOP

              MOV       AH,9        ;now ax=20cdh
              MOV       DX,OFFSET D1
              INT       21H
              INT       20H

        CODE  ENDS
              END       START