好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 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 [edi] ; 分别是IPHLPAPI.GetAdaptersInfo
0126E008 A3 00E12601 mov dword ptr [126E100], eax ; 与msvcrt.strcmp
0126E00D C707 1AE02601 mov dword ptr [edi], 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 [126E520] ; 过效检
0126E021 833D 20E52601 0>cmp dword ptr [126E520], 2
0126E028 75 09 jnz short 0126E033
0126E02A 3E:C74424 04 D0>mov dword ptr ds:[esp+4], 0126E1D0 ; 指原程序文件名,可改名
0126E033 - FF25 00E12601 jmp dword ptr [126E100]
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 [edi]
0126E044 A3 00E82601 mov dword ptr [126E800], 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 [ebx], 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 [ebx], 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 [126E500] ; Hook Patch
0126E094 833D 00E52601 0>cmp dword ptr [126E500], 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 [ebp+7C]
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 [ebx], 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 [ebx], edi
0126E0DB 8B2D 00E82601 mov ebp, dword ptr [126E800]
0126E0E1 83C5 05 add ebp, 5
0126E0E4 892D 00E42601 mov dword ptr [126E400], ebp
0126E0EA 61 popad
0126E0EB 8BFF mov edi, edi
0126E0ED 55 push ebp
0126E0EE 8BEC mov ebp, esp
0126E0F0 FF25 00E42601 jmp dword ptr [126E400]
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 [edi+4C], 5 ; Patch HWID
0126E11A 60 pushad
0126E11B FF05 10E52601 inc dword ptr [126E510]
0126E121 833D 10E52601 0>cmp dword ptr [126E510], 1
0126E128 75 1B jnz short 0126E145
0126E12A 8B5D 54 mov ebx, dword ptr [ebp+54]
0126E12D 81C3 BC7D0300 add ebx, 37DBC ;SMC关键点
0126E133 891D 00F72601 mov dword ptr [126F700], ebx
0126E139 81EB 3CBE0100 sub ebx, 1BE3C ;patch关键点
0126E13F 891D 00FA2601 mov dword ptr [126FA00], ebx
0126E145 FF35 00FA2601 push dword ptr [126FA00]
0126E14B 68 79E12601 push 0126E179 ; 栈中地址指向本机HWID
0126E150 FF15 14F02601 call dword ptr [126F014] ; 用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 [126FA00]
0126E166 BE A7E12601 mov esi, 0126E1A7 ; 栈中地址指向合法HWID
0126E16B F3:A4 rep movs byte ptr es:[edi], byte ptr [esi]
0126E16D 83C4 08 add esp, 8
0126E170 61 popad
0126E171 FF25 00F72601 jmp dword ptr [126F700]
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可有助理解代码
notepad_VP.part1.rar
(1.39 MB, 下载次数: 259)
notepad_VP.part2.rar
(1.39 MB, 下载次数: 211)
notepad_VP.part3.rar
(305.58 KB, 下载次数: 178)
解压后,用winhex打开notepad_VP.exe 搜索D687D298A5E81B2821AAE638010BA18B 字符串,替换你本机的机器码,就可以打开了
|
免费评分
-
查看全部评分
|