little3388 发表于 2011-8-20 10:08

SMC实现VProtect patch HWID

本帖最后由 little3388 于 2011-8-20 13:59 编辑

方法:找patch地址,并patch 合法HWID,过效检、写SMC代码

本代码在V1.91与V1.88测试通过,2.0X还未测试,本文只是抛砖引玉。

思路参考:http://www.52pojie.cn/thread-104750-1-1.html

0126E000 >60            pushad                                          ; 附加段开始
0126E001    BF 3C800101   mov   edi, <&KERNEL32.CreateFileW>            ; 前提要增加输入表
0126E006    8B07            mov   eax, dword ptr                       ; 分别是IPHLPAPI.GetAdaptersInfo
0126E008    A3 00E12601   mov   dword ptr , eax                  ; 与msvcrt.strcmp
0126E00D    C707 1AE02601   mov   dword ptr , 0126E01A
0126E013    61            popad
0126E014    EB 26         jmp   short 0126E03C
0126E016    C3            retn
0126E017    90            nop
0126E018    90            nop
0126E019    90            nop
0126E01A    90            nop
0126E01B    FF05 20E52601   inc   dword ptr                      ; 过效检
0126E021    833D 20E52601 0>cmp   dword ptr , 2
0126E028    75 09         jnz   short 0126E033
0126E02A    3E:C74424 04 D0>mov   dword ptr ds:, 0126E1D0            ; 指原程序文件名,可改名
0126E033- FF25 00E12601   jmp   dword ptr
0126E039    C3            retn
0126E03A    90            nop
0126E03B    90            nop
0126E03C    60            pushad                                          ; Hook IPHLPAPI.GetAdaptersInfo 开始
0126E03D    BF 1FD02601   mov   edi, <&IPHLPAPI.GetAdaptersInfo>
0126E042    8B07            mov   eax, dword ptr
0126E044    A3 00E82601   mov   dword ptr , eax
0126E049    E8 00000000   call    0126E04E
0126E04E    5F            pop   edi
0126E04F    83C7 40         add   edi, 40
0126E052    8BD8            mov   ebx, eax
0126E054    2BFB            sub   edi, ebx
0126E056    83EF 05         sub   edi, 5
0126E059    68 00E32601   push    0126E300
0126E05E    6A 40         push    40
0126E060    6A 01         push    1
0126E062    50            push    eax
0126E063    FF15 6C800101   call    dword ptr [<&KERNEL32.VirtualProtect>]   
0126E069    C603 E9         mov   byte ptr , 0E9
0126E06C    43            inc   ebx
0126E06D    68 00E32601   push    0126E300
0126E072    6A 40         push    40
0126E074    6A 04         push    4
0126E076    50            push    eax
0126E077    FF15 6C800101   call    dword ptr [<&KERNEL32.VirtualProtect>]   
0126E07D    893B            mov   dword ptr , edi
0126E07F    61            popad
0126E080- E9 4B65DAFF   jmp   010145D0
0126E085    C3            retn
0126E086    90            nop
0126E087    90            nop
0126E088    90            nop
0126E089    90            nop
0126E08A    90            nop
0126E08B    90            nop
0126E08C    90            nop
0126E08D    90            nop
0126E08E    FF05 00E52601   inc   dword ptr                      ; Hook Patch
0126E094    833D 00E52601 0>cmp   dword ptr , 1
0126E09B    75 4E         jnz   short 0126E0EB
0126E09D    60            pushad
0126E09E    E8 00000000   call    0126E0A3
0126E0A3    5F            pop   edi
0126E0A4    83C7 70         add   edi, 70
0126E0A7    8B5D 7C         mov   ebx, dword ptr
0126E0AA    81C3 B57D0300   add   ebx, 37DB5
0126E0B0    2BFB            sub   edi, ebx
0126E0B2    83EF 05         sub   edi, 5
0126E0B5    68 00E32601   push    0126E300
0126E0BA    6A 40         push    40
0126E0BC    6A 01         push    1
0126E0BE    53            push    ebx
0126E0BF    FF15 6C800101   call    dword ptr [<&KERNEL32.VirtualProtect>]   
0126E0C5    C603 E9         mov   byte ptr , 0E9
0126E0C8    43            inc   ebx
0126E0C9    68 00E32601   push    0126E300
0126E0CE    6A 40         push    40
0126E0D0    6A 04         push    4
0126E0D2    53            push    ebx
0126E0D3    FF15 6C800101   call    dword ptr [<&KERNEL32.VirtualProtect>]   
0126E0D9    893B            mov   dword ptr , edi
0126E0DB    8B2D 00E82601   mov   ebp, dword ptr
0126E0E1    83C5 05         add   ebp, 5
0126E0E4    892D 00E42601   mov   dword ptr , ebp
0126E0EA    61            popad
0126E0EB    8BFF            mov   edi, edi
0126E0ED    55            push    ebp
0126E0EE    8BEC            mov   ebp, esp
0126E0F0    FF25 00E42601   jmp   dword ptr
0126E0F6    90            nop
0126E0F7    90            nop
0126E0F8    90            nop
0126E0F9    90            nop
0126E0FA    90            nop
0126E0FB    90            nop
0126E0FC    90            nop
0126E0FD    90            nop
0126E0FE    90            nop
0126E0FF    90            nop
0126E100    90            nop
0126E101    90            nop
0126E102    90            nop
......
0126E110    90            nop
0126E111    90            nop
0126E112    90            nop
0126E113    C747 4C 0500000>mov   dword ptr , 5                     ; Patch HWID
0126E11A    60            pushad
0126E11B    FF05 10E52601   inc   dword ptr
0126E121    833D 10E52601 0>cmp   dword ptr , 1
0126E128    75 1B         jnz   short 0126E145
0126E12A    8B5D 54         mov   ebx, dword ptr
0126E12D    81C3 BC7D0300   add   ebx, 37DBC                              ;SMC关键点
0126E133    891D 00F72601   mov   dword ptr , ebx
0126E139    81EB 3CBE0100   sub   ebx, 1BE3C                                    ;patch关键点
0126E13F    891D 00FA2601   mov   dword ptr , ebx
0126E145    FF35 00FA2601   push    dword ptr
0126E14B    68 79E12601   push    0126E179                                  ; 栈中地址指向本机HWID
0126E150    FF15 14F02601   call    dword ptr                      ; 用msvcrt.strcmp作比较
0126E156    83F8 01         cmp   eax, 1
0126E159    74 12         je      short 0126E16D
0126E15B    B9 20000000   mov   ecx, 20
0126E160    8B3D 00FA2601   mov   edi, dword ptr
0126E166    BE A7E12601   mov   esi, 0126E1A7                           ; 栈中地址指向合法HWID
0126E16B    F3:A4         rep   movs byte ptr es:, byte ptr
0126E16D    83C4 08         add   esp, 8
0126E170    61            popad
0126E171    FF25 00F72601   jmp   dword ptr
60 BF 3C 80 01 01 8B 07 A3 00 E1 26 01 C7 07 1A E0 26 01 61 EB 26 C3 90 90 90 90 FF 05 20 E5 26
01 83 3D 20 E5 26 01 02 75 09 3E C7 44 24 04 D0 E1 26 01 FF 25 00 E1 26 01 C3 90 90 60 BF 1F D0
26 01 8B 07 A3 00 E8 26 01 E8 00 00 00 00 5F 83 C7 40 8B D8 2B FB 83 EF 05 68 00 E3 26 01 6A 40
6A 01 50 FF 15 6C 80 01 01 C6 03 E9 43 68 00 E3 26 01 6A 40 6A 04 50 FF 15 6C 80 01 01 89 3B 61
E9 4B 65 DA FF C3 90 90 90 90 90 90 90 90 FF 05 00 E5 26 01 83 3D 00 E5 26 01 01 75 4E 60 E8 00
00 00 00 5F 83 C7 70 8B 5D 7C 81 C3 B5 7D 03 00 2B FB 83 EF 05 68 00 E3 26 01 6A 40 6A 01 53 FF
15 6C 80 01 01 C6 03 E9 43 68 00 E3 26 01 6A 40 6A 04 53 FF 15 6C 80 01 01 89 3B 8B 2D 00 E8 26
01 83 C5 05 89 2D 00 E4 26 01 61 8B FF 55 8B EC FF 25 00 E4 26 01 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 C7 47 4C 05 00 00 00 60 FF 05 10 E5 26
01 83 3D 10 E5 26 01 01 75 1B 8B 5D 54 81 C3 BC 7D 03 00 89 1D 00 F7 26 01 81 EB 3C BE 01 00 89
1D 00 FA 26 01 FF 35 00 FA 26 01 68 79 E1 26 01 FF 15 14 F0 26 01 83 F8 01 74 12 B9 20 00 00 00
8B 3D 00 FA 26 01 BE A7 E1 26 01 F3 A4 83 C4 08 61 FF 25 00 F7 26 01





patch原程序,用OD查看区段0126E00可有助理解代码






解压后,用winhex打开notepad_VP.exe 搜索D687D298A5E81B2821AAE638010BA18B 字符串,替换你本机的机器码,就可以打开了


LoongKing 发表于 2011-8-20 21:27

楼主的头像很诱惑..

little3388 发表于 2011-8-20 21:26

本帖最后由 little3388 于 2011-8-20 21:27 编辑

回复 sniy 的帖子

原理方法http://www.52pojie.cn/thread-104750-1-1.html  已上传视频演示

sniy 发表于 2011-8-20 17:43

如果有详细的分析就好了,LZ的分析过程比cektop发的文章还简洁~

zsl01 发表于 2011-8-20 10:24

支持,不过我感觉有附件要好些。

bestchao 发表于 2011-8-20 23:14

支持下 好教程``

老万 发表于 2011-8-21 06:46

楼主好厉害,谢谢分享

zsl01 发表于 2011-8-21 08:35

有视频支持了。

wudinjian 发表于 2011-8-21 19:30

哈哈~谢谢楼主分享了~貌似刚看过你的另一个视频嘿嘿

gry8686 发表于 2011-8-22 17:42

不错哦,支持楼主的分享
页: [1] 2 3
查看完整版本: SMC实现VProtect patch HWID