• 标 题:关于DBPE的一点反跟踪技巧 (21千字)
  • 作 者:DiKeN
  • 时 间:2002-5-13 12:19:01
  • 链 接:http://bbs.pediy.com

DBPE也算是个不错的加壳工具,但对于信息的人并不算什么,对于我可就难了,花了九牛二虎之力才高出这么一点点。
不知道再Win NT下如何,我几次修改都不能得到要害,只能说说Win 9x下的情况了。

总共分四部分:
第一部分
    分析INT3中断设置以及系统0层的跳入,其中设置了INT3中断门
第二部分
    分析INT3子过程,其中,设定了INT1中断门,以及清除使用调试寄存器的断点
第三部分
    分析INT1子过程,仅仅简单的完成一段解码
第四部分
    其他一些东西,关于操作系统的标志的获取


第一部分 分析INT3中断以及系统0层的跳入
    程序首先修改中断门INT3,这样,你根本就无法设置BPX断点,不过此时还可以设置BPM断电和单步调试断点;具体看看这段代码:
004F671C  90                NOP==========>修改
004F671D  0F010E            SIDT FWORD PTR DS:[ESI]======******>取出中断描述符表寄存器(IDTR)
=========================================================******>保存到[ESI]
004F6720  9C                PUSHFD
004F6721  6A 10            PUSH 10
004F6723  73 0B            JNB SHORT N4F671D.004F6730
004F6721  6A 10            PUSH 10
004F6723  73 0B            JNB SHORT 4F69F6-.004F6730
004F6725  EB 02            JMP SHORT 4F69F6-.004F6729
004F6727  90                NOP==========>修改
004F6728  90                NOP==========>修改
004F6729  E8 06000000      CALL 4F69F6-.004F6734
004F672E  90                NOP==========>修改
004F672F  90                NOP==========>修改
004F6730  73 F7            JNB SHORT 4F69F6-.004F6729
004F6732  5B                POP EBX
004F6733  90                NOP==========>修改
004F6734  83C4 04          ADD ESP,4
004F6737  EB 02            JMP SHORT 4F69F6-.004F673B
004F6739  99                CDQ
004F673A  90                NOP==========>修改
004F673B  FF0C24            DEC DWORD PTR SS:[ESP]
004F673E  71 01            JNO SHORT 4F69F6-.004F6741
004F6740  90                NOP==========>修改
004F6741  79 E0            JNS SHORT 4F69F6-.004F6723
004F6743  7A 01            JPE SHORT 4F69F6-.004F6746
004F6745  90                NOP==========>修改
004F6746  83C4 04          ADD ESP,4
004F6749  9D                POPFD
004F674A  EB 01            JMP SHORT 4F69F6-.004F674D
004F674C  90                NOP==========>修改
004F674D  8B76 02          MOV ESI,DWORD PTR DS:[ESI+2]======******>取出IDT的基地址
004F6750  9C                PUSHFD
004F6751  72 0A            JB SHORT 4F69F6-.004F675D
004F6753  EB 01            JMP SHORT 4F69F6-.004F6756
004F6755  90                NOP==========>修改
004F6756  E8 05000000      CALL 4F69F6-.004F6760
004F675B  EB 77            JMP SHORT 4F69F6-.004F67D4
004F675D  72 F4            JB SHORT 4F69F6-.004F6753
004F675F  90                NOP==========>修改
004F6760  83C4 04          ADD ESP,4
004F6763  9D                POPFD
004F6764  EB 01            JMP SHORT 4F69F6-.004F6767
004F6766  90                NOP==========>修改
004F6767  66:8B46 18        MOV AX,WORD PTR DS:[ESI+18]==========******>读取中断门
004F676B  9C                PUSHFD
004F676C  6A 10            PUSH 10
004F676E  73 0B            JNB SHORT 4F69F6-.004F677B
004F6770  EB 02            JMP SHORT 4F69F6-.004F6774
004F6772  90                NOP==========>修改
004F6773  90                NOP==========>修改
004F6774  E8 06000000      CALL 4F69F6-.004F677F
004F6779  90                NOP==========>修改
004F677A  90                NOP==========>修改
004F677B  73 F7            JNB SHORT 4F69F6-.004F6774
004F677D  5B                POP EBX
004F677E  90                NOP==========>修改
004F677F  83C4 04          ADD ESP,4
004F6782  EB 02            JMP SHORT 4F69F6-.004F6786
004F6784  99                CDQ
004F6785  90                NOP==========>修改
004F6786  FF0C24            DEC DWORD PTR SS:[ESP]
004F6789  71 01            JNO SHORT 4F69F6-.004F678C
004F678B  90                NOP==========>修改
004F678C  79 E0            JNS SHORT 4F69F6-.004F676E
004F678E  7A 01            JPE SHORT 4F69F6-.004F6791
004F6790  90                NOP==========>修改
004F6791  83C4 04          ADD ESP,4
004F6794  9D                POPFD
004F6795  EB 01            JMP SHORT 4F69F6-.004F6798
004F6797  90                NOP==========>修改
004F6798  66:8B5E 1E        MOV BX,WORD PTR DS:[ESI+1E]==========******>读取中断门
004F679C  72 03            JB SHORT 4F69F6-.004F67A1
004F679E  73 01            JNB SHORT 4F69F6-.004F67A1
004F67A0  90                NOP==========>修改
004F67A1  66:8985 C3164600  MOV WORD PTR SS:[EBP+4616C3],AX======******>保存中断门
004F67A8  72 03            JB SHORT 4F69F6-.004F67AD
004F67AA  73 01            JNB SHORT 4F69F6-.004F67AD
004F67AC  90                NOP==========>修改
004F67AD  66:899D C5164600  MOV WORD PTR SS:[EBP+4616C5],BX======******>保存中断门
004F67B4  74 03            JE SHORT 4F69F6-.004F67B9
004F67B6  75 01            JNZ SHORT 4F69F6-.004F67B9
004F67B8  90                NOP==========>修改
004F67B9  B8 77244600      MOV EAX,4F69F6-.00462477=============******>新中断门地址相关
004F67BE  9C                PUSHFD
004F67BF  6A 10            PUSH 10
004F67C1  73 0B            JNB SHORT 4F69F6-.004F67CE
004F67C3  EB 02            JMP SHORT 4F69F6-.004F67C7
004F67C5  90                NOP==========>修改
004F67C6  90                NOP==========>修改
004F67C7  E8 06000000      CALL 4F69F6-.004F67D2
004F67CC  90                NOP==========>修改
004F67CD  90                NOP==========>修改
004F67CE  73 F7            JNB SHORT 4F69F6-.004F67C7
004F67D0  5B                POP EBX
004F67D1  90                NOP==========>修改
004F67D2  83C4 04          ADD ESP,4
004F67D5  EB 02            JMP SHORT 4F69F6-.004F67D9
004F67D7  99                CDQ
004F67D8  90                NOP==========>修改
004F67D9  FF0C24            DEC DWORD PTR SS:[ESP]
004F67DC  71 01            JNO SHORT 4F69F6-.004F67DF
004F67DE  90                NOP==========>修改
004F67DF  79 E0            JNS SHORT 4F69F6-.004F67C1
004F67E1  7A 01            JPE SHORT 4F69F6-.004F67E4
004F67E3  90                NOP==========>修改
004F67E4  83C4 04          ADD ESP,4
004F67E7  9D                POPFD
004F67E8  EB 01            JMP SHORT 4F69F6-.004F67EB
004F67EA  90                NOP==========>修改
004F67EB  03C5              ADD EAX,EBP======================******>新的INT3中断的地址=0x0054F1CC
004F67ED  7A 03            JPE SHORT 4F69F6-.004F67F2
004F67EF  7B 01            JPO SHORT 4F69F6-.004F67F2
004F67F1  90                NOP==========>修改
004F67F2  66:8946 18        MOV WORD PTR DS:[ESI+18],AX======******>新的INT3中断的地址,从现在开始,不能使用bpx 中断
=============================================================******>0x18==24=8*3
=============================================================******>每一个中断门8个字节
=============================================================******>xx xx ?? ??
=============================================================******>?? ?? xx xx
004F67F6  9C                PUSHFD
004F67F7  6A 10            PUSH 10
004F67F9  73 0B            JNB SHORT 4F69F6-.004F6806
004F67FB  EB 02            JMP SHORT 4F69F6-.004F67FF
004F67FD  90                NOP==========>修改
004F67FE  90                NOP==========>修改
004F67FF  E8 06000000      CALL 4F69F6-.004F680A
004F6804  90                NOP==========>修改
004F6805  90                NOP==========>修改
004F6806  73 F7            JNB SHORT 4F69F6-.004F67FF
004F6808  5B                POP EBX
004F6809  90                NOP==========>修改
004F680A  83C4 04          ADD ESP,4
004F680D  EB 02            JMP SHORT 4F69F6-.004F6811
004F680F  99                CDQ
004F6810  90                NOP==========>修改
004F6811  FF0C24            DEC DWORD PTR SS:[ESP]
004F6814  71 01            JNO SHORT 4F69F6-.004F6817
004F6816  90                NOP==========>修改
004F6817  79 E0            JNS SHORT 4F69F6-.004F67F9
004F6819  7A 01            JPE SHORT 4F69F6-.004F681C
004F681B  90                NOP==========>修改
004F681C  83C4 04          ADD ESP,4
004F681F  9D                POPFD
004F6820  EB 01            JMP SHORT 4F69F6-.004F6823
004F6822  90                NOP==========>修改
004F6823  C1E8 10          SHR EAX,10=======================******>新的INT3中断的地址
004F6826  72 03            JB SHORT 4F69F6-.004F682B
004F6828  73 01            JNB SHORT 4F69F6-.004F682B
004F682A  90                NOP==========>修改
004F682B  66:8946 1E        MOV WORD PTR DS:[ESI+1E],AX======******>新的INT3中断的地址
=============================================================******>至此,新的中断门设立完成
=============================================================******>该进程可以调用INT3中断
=============================================================******>不再产生例外
=============================================================******>实际也就是一个子过程
好了中断门设置好了,你可不能用bpx来设置断点了,接下来是一地段解码程序。再接着是一段加查程序代码和是否正确。
....
这些完成后,就是INT3指令,这就转到了作者所设计的INT3过程0x0054F1CC
004F69F6  CC                INT3===============================>在这儿,程序自动掌握INT3中断
===============================================================>也就是上面的0x0054F1CC

第二部分,分析INT3子过程
它首先是修改INT1中断门,然后
0054F2A5  90                NOP
0054F2A6  0F010E            SIDT FWORD PTR DS:[ESI]==================******>存储IDT表
0054F2A9  7A 03            JPE SHORT 4F69F6.0054F2AE
0054F2AB  7B 01            JPO SHORT 4F69F6.0054F2AE
0054F2AD  90                NOP
0054F2AE  8B76 02          MOV ESI,DWORD PTR DS:[ESI+2]=============******>得到IDT基址
0054F2B1  72 03            JB SHORT 4F69F6.0054F2B6
0054F2B3  73 01            JNB SHORT 4F69F6.0054F2B6
0054F2B5  90                NOP
0054F2B6  BB 7C274600      MOV EBX,4F69F6.0046277C
0054F2BB  74 03            JE SHORT 4F69F6.0054F2C0
0054F2BD  75 01            JNZ SHORT 4F69F6.0054F2C0
0054F2BF  90                NOP
0054F2C0  03DD              ADD EBX,EBP
0054F2C2  9C                PUSHFD
0054F2C3  72 0A            JB SHORT 4F69F6.0054F2CF
0054F2C5  EB 01            JMP SHORT 4F69F6.0054F2C8
0054F2C7  90                NOP
0054F2C8  E8 05000000      CALL 4F69F6.0054F2D2
0054F2CD  EB 77            JMP SHORT 4F69F6.0054F346
0054F2CF  72 F4            JB SHORT 4F69F6.0054F2C5
0054F2D1  90                NOP
0054F2D2  83C4 04          ADD ESP,4
0054F2D5  9D                POPFD
0054F2D6  EB 01            JMP SHORT 4F69F6.0054F2D9
0054F2D8  90                NOP
0054F2D9  66:8B46 08        MOV AX,WORD PTR DS:[ESI+8]=============******>
0054F2DD  9C                PUSHFD
0054F2DE  72 0A            JB SHORT 4F69F6.0054F2EA
0054F2E0  EB 01            JMP SHORT 4F69F6.0054F2E3
0054F2E2  90                NOP
0054F2E3  E8 05000000      CALL 4F69F6.0054F2ED
0054F2E8  EB 77            JMP SHORT 4F69F6.0054F361
0054F2EA  72 F4            JB SHORT 4F69F6.0054F2E0
0054F2EC  90                NOP
0054F2ED  83C4 04          ADD ESP,4
0054F2F0  9D                POPFD
0054F2F1  EB 01            JMP SHORT 4F69F6.0054F2F4
0054F2F3  90                NOP
0054F2F4  66:3BD8          CMP BX,AX
0054F2F7  74 53            JE SHORT 4F69F6.0054F34C
0054F2F9  7A 03            JPE SHORT 4F69F6.0054F2FE
0054F2FB  7B 01            JPO SHORT 4F69F6.0054F2FE
0054F2FD  90                NOP
0054F2FE  66:8B46 08        MOV AX,WORD PTR DS:[ESI+8]=============******>
0054F302  7A 03            JPE SHORT 4F69F6.0054F307
0054F304  7B 01            JPO SHORT 4F69F6.0054F307
0054F306  90                NOP
0054F307  66:8B5E 0E        MOV BX,WORD PTR DS:[ESI+E]=============******>
0054F30B  72 03            JB SHORT 4F69F6.0054F310
0054F30D  73 01            JNB SHORT 4F69F6.0054F310
0054F30F  90                NOP
0054F310  66:8985 C7164600  MOV WORD PTR SS:[EBP+4616C7],AX=============******>
0054F317  9C                PUSHFD
0054F318  72 0A            JB SHORT 4F69F6.0054F324
0054F31A  EB 01            JMP SHORT 4F69F6.0054F31D
0054F31C  90                NOP
0054F31D  E8 05000000      CALL 4F69F6.0054F327
0054F322  EB 77            JMP SHORT 4F69F6.0054F39B
0054F324  72 F4            JB SHORT 4F69F6.0054F31A
0054F326  90                NOP
0054F327  83C4 04          ADD ESP,4
0054F32A  9D                POPFD
0054F32B  EB 01            JMP SHORT 4F69F6.0054F32E
0054F32D  90                NOP
0054F32E  66:899D C9164600  MOV WORD PTR SS:[EBP+4616C9],BX=============******>
0054F335  9C                PUSHFD
0054F336  72 0A            JB SHORT 4F69F6.0054F342
0054F338  EB 01            JMP SHORT 4F69F6.0054F33B
0054F33A  90                NOP
0054F33B  E8 05000000      CALL 4F69F6.0054F345
0054F340  EB 77            JMP SHORT 4F69F6.0054F3B9
0054F342  72 F4            JB SHORT 4F69F6.0054F338
0054F344  90                NOP
0054F345  83C4 04          ADD ESP,4
0054F348  9D                POPFD
0054F349  EB 01            JMP SHORT 4F69F6.0054F34C
0054F34B  90                NOP
0054F34C  7A 03            JPE SHORT 4F69F6.0054F351
0054F34E  7B 01            JPO SHORT 4F69F6.0054F351
0054F350  90                NOP
0054F351  B8 7C274600      MOV EAX,4F69F6.0046277C
0054F356  9C                PUSHFD
0054F357  72 0A            JB SHORT 4F69F6.0054F363
0054F359  EB 01            JMP SHORT 4F69F6.0054F35C
0054F35B  90                NOP
0054F35C  E8 05000000      CALL 4F69F6.0054F366
0054F361  EB 77            JMP SHORT 4F69F6.0054F3DA
0054F363  72 F4            JB SHORT 4F69F6.0054F359
0054F365  90                NOP
0054F366  83C4 04          ADD ESP,4
0054F369  9D                POPFD
0054F36A  EB 01            JMP SHORT 4F69F6.0054F36D
0054F36C  90                NOP
0054F36D  03C5              ADD EAX,EBP============================******>新的INT1中断门,0x0054F4D1
0054F36F  74 03            JE SHORT 4F69F6.0054F374
0054F371  75 01            JNZ SHORT 4F69F6.0054F374
0054F373  90                NOP
0054F374  66:8946 08        MOV WORD PTR DS:[ESI+8],AX=============******>修改INT1中断门
===================================================================******>现在开始不能使用INT1中断
0054F378  9C                PUSHFD
0054F379  72 0A            JB SHORT 4F69F6.0054F385
0054F37B  EB 01            JMP SHORT 4F69F6.0054F37E
0054F37D  90                NOP
0054F37E  E8 05000000      CALL 4F69F6.0054F388
0054F383  EB 77            JMP SHORT 4F69F6.0054F3FC
0054F385  72 F4            JB SHORT 4F69F6.0054F37B
0054F387  90                NOP
0054F388  83C4 04          ADD ESP,4
0054F38B  9D                POPFD
0054F38C  EB 01            JMP SHORT 4F69F6.0054F38F
0054F38E  90                NOP
0054F38F  C1E8 10          SHR EAX,10============================******>新的INT1中断门
0054F392  9C                PUSHFD
0054F393  6A 10            PUSH 10
0054F395  73 0B            JNB SHORT 4F69F6.0054F3A2
0054F397  EB 02            JMP SHORT 4F69F6.0054F39B
0054F399  90                NOP
0054F39A  90                NOP
0054F39B  E8 06000000      CALL 4F69F6.0054F3A6
0054F3A0  C411              LES EDX,FWORD PTR DS:[ECX]
0054F3A2  73 F7            JNB SHORT 4F69F6.0054F39B
0054F3A4  5B                POP EBX
0054F3A5  90                NOP
0054F3A6  83C4 04          ADD ESP,4
0054F3A9  EB 02            JMP SHORT 4F69F6.0054F3AD
0054F3AB  99                CDQ
0054F3AC  90                NOP
0054F3AD  FF0C24            DEC DWORD PTR SS:[ESP]
0054F3B0  71 01            JNO SHORT 4F69F6.0054F3B3
0054F3B2  90                NOP
0054F3B3  79 E0            JNS SHORT 4F69F6.0054F395
0054F3B5  7A 01            JPE SHORT 4F69F6.0054F3B8
0054F3B7  90                NOP
0054F3B8  83C4 04          ADD ESP,4
0054F3BB  9D                POPFD
0054F3BC  EB 01            JMP SHORT 4F69F6.0054F3BF
0054F3BE  90                NOP
0054F3BF  66:8946 0E        MOV WORD PTR DS:[ESI+E],AX=============******>修改INT1中断门
至此,INT1中断门修改完毕,
然后就执行到这儿,调用INT1中断0x0054F4D1
0054F3FD  90                NOP
0054F3FE  CD 01            INT 1==============================>在这儿,程序自动掌握INT1中断
接下来就是,清除你使用调试寄存器DR0-DR3,DR7所设置的断点,具体看下面的分析:
0054F44F  33C0              XOR EAX,EAX===============================>清0
0054F451  7A 03            JPE SHORT 4F69F6.0054F456
0054F453  7B 01            JPO SHORT 4F69F6.0054F456
0054F455  90                NOP
0054F456  0F23C0            MOV DR0,EAX===============================>断点寄存器DR0清0,达到反调试寄存器跟踪
0054F459  74 03            JE SHORT 4F69F6.0054F45E
0054F45B  75 01            JNZ SHORT 4F69F6.0054F45E
0054F45D  90                NOP
0054F45E  0F23C8            MOV DR1,EAX===============================>断点寄存器DR1清0,达到反调试寄存器跟踪
0054F461  9C                PUSHFD
0054F462  72 0A            JB SHORT 4F69F6.0054F46E
0054F464  EB 01            JMP SHORT 4F69F6.0054F467
0054F466  90                NOP
0054F467  E8 05000000      CALL 4F69F6.0054F471
0054F46C  EB 77            JMP SHORT 4F69F6.0054F4E5
0054F46E  72 F4            JB SHORT 4F69F6.0054F464
0054F470  90                NOP
0054F471  83C4 04          ADD ESP,4
0054F474  9D                POPFD
0054F475  EB 01            JMP SHORT 4F69F6.0054F478
0054F477  90                NOP
0054F478  0F23D0            MOV DR2,EAX===============================>断点寄存器DR2清0,达到反调试寄存器跟踪
0054F47B  74 03            JE SHORT 4F69F6.0054F480
0054F47D  75 01            JNZ SHORT 4F69F6.0054F480
0054F47F  90                NOP
0054F480  0F23D8            MOV DR3,EAX===============================>断点寄存器DR3清0,达到反调试寄存器跟踪
0054F483  9C                PUSHFD
0054F484  72 0A            JB SHORT 4F69F6.0054F490
0054F486  EB 01            JMP SHORT 4F69F6.0054F489
0054F488  90                NOP
0054F489  E8 05000000      CALL 4F69F6.0054F493
0054F48E  EB 77            JMP SHORT 4F69F6.0054F507
0054F490  72 F4            JB SHORT 4F69F6.0054F486
0054F492  90                NOP
0054F493  83C4 04          ADD ESP,4
0054F496  9D                POPFD
0054F497  EB 01            JMP SHORT 4F69F6.0054F49A
0054F499  90                NOP
0054F49A  B8 55010000      MOV EAX,155
0054F49F  7A 03            JPE SHORT 4F69F6.0054F4A4
0054F4A1  7B 01            JPO SHORT 4F69F6.0054F4A4
0054F4A3  90                NOP
0054F4A4  0F23F8            MOV DR7,EAX===============================>断点寄存器DR7,该寄存器起控制作用,不让你的断点有作用

第三部分中断门INT1分析
代码段不长,仅仅完成了一段代码的解码而已
========新的INT1中断门0x0054F4D1===============================完成程序段的解码======
0054F4D1  74 03            JE SHORT 4F69F6.0054F4D6
0054F4D3  75 01            JNZ SHORT 4F69F6.0054F4D6
0054F4D5  90                NOP
0054F4D6  8A26              MOV AH,BYTE PTR DS:[ESI]
0054F4D8  7A 03            JPE SHORT 4F69F6.0054F4DD
0054F4DA  7B 01            JPO SHORT 4F69F6.0054F4DD
0054F4DC  90                NOP
0054F4DD  32E0              XOR AH,AL
0054F4DF  9C                PUSHFD
0054F4E0  72 0A            JB SHORT 4F69F6.0054F4EC
0054F4E2  EB 01            JMP SHORT 4F69F6.0054F4E5
0054F4E4  90                NOP
0054F4E5  E8 05000000      CALL 4F69F6.0054F4EF
0054F4EA  EB 77            JMP SHORT 4F69F6.0054F563
0054F4EC  72 F4            JB SHORT 4F69F6.0054F4E2
0054F4EE  90                NOP
0054F4EF  83C4 04          ADD ESP,4
0054F4F2  9D                POPFD
0054F4F3  EB 01            JMP SHORT 4F69F6.0054F4F6
0054F4F5  90                NOP
0054F4F6  F6D4              NOT AH
0054F4F8  9C                PUSHFD
0054F4F9  72 0A            JB SHORT 4F69F6.0054F505
0054F4FB  EB 01            JMP SHORT 4F69F6.0054F4FE
0054F4FD  90                NOP
0054F4FE  E8 05000000      CALL 4F69F6.0054F508
0054F503  EB 77            JMP SHORT 4F69F6.0054F57C
0054F505  72 F4            JB SHORT 4F69F6.0054F4FB
0054F507  90                NOP
0054F508  83C4 04          ADD ESP,4
0054F50B  9D                POPFD
0054F50C  EB 01            JMP SHORT 4F69F6.0054F50F
0054F50E  90                NOP
0054F50F  8826              MOV BYTE PTR DS:[ESI],AH
0054F511  7A 03            JPE SHORT 4F69F6.0054F516
0054F513  7B 01            JPO SHORT 4F69F6.0054F516
0054F515  90                NOP
0054F516  46                INC ESI
0054F517  9C                PUSHFD
0054F518  72 0A            JB SHORT 4F69F6.0054F524
0054F51A  EB 01            JMP SHORT 4F69F6.0054F51D
0054F51C  90                NOP
0054F51D  E8 05000000      CALL 4F69F6.0054F527
0054F522  EB 77            JMP SHORT 4F69F6.0054F59B
0054F524  72 F4            JB SHORT 4F69F6.0054F51A
0054F526  90                NOP
0054F527  83C4 04          ADD ESP,4
0054F52A  9D                POPFD
0054F52B  EB 01            JMP SHORT 4F69F6.0054F52E
0054F52D  90                NOP
0054F52E  49                DEC ECX
0054F52F  7A 03            JPE SHORT 4F69F6.0054F534
0054F531  7B 01            JPO SHORT 4F69F6.0054F534
0054F533  90                NOP
0054F534  CF                IRETD===========================>中断返回
第四部分 其他一些东西

004F2090  56                PUSH ESI
004F2091  FF95 1A284600    CALL DWORD PTR SS:[EBP+46281A]//GetVersionEx
004F2097  7A 03            JPE SHORT N4F671D.004F209C
004F2099  7B 01            JPO SHORT N4F671D.004F209C
004F209B  90                NOP==========>修改
004F209C  837E 10 02        CMP DWORD PTR DS:[ESI+10],2//dwPlatformId
                                                      //0=WIN32s
                                                      //1=WIN32_WINDOWS    
                                                      //2=WIN32_NT
WIN NT系统则会设置标志为1
004F20A7  C685 5F174600 01  MOV BYTE PTR SS:[EBP+46175F],1===========local_46175f
WIN 9x系统则会设置标志为0
004F20E2  C685 5F174600 00  MOV BYTE PTR SS:[EBP+46175F],0===========local_46175f