这是款不知名字的即时通讯软件,售价昂贵
版本为3.61实时协作版
已经将涉及程序名字的部分改为了“XXX”
功能无比强大
网上已经有了它的注册机,但是本地注册后,只要服务器一连网
过会儿就会发现出现“未注册”,注册表中的ACTIVESN项目即被清除
估计是发现连接互联网后就自动连接网络服务器来验证本地帐号是否
真实存在。。。
于是乎很多不愿意或者没能力负担支付费用的用户就选择服务器只在内网中使用
太可惜了,而且“网络暗桩”一直让人心惊胆战
那么我们来看看,怎样釜底抽薪干掉“网络暗桩”
删除注册表项目,可能使用如下API:
RegDeleteKeyA 删除现有项下方一个指定的子项
RegDeleteValueA 删除指定项下方的一个值
断点吧
连上外网,然后上会网,到20:04的时候发现不知道什么时候起,断点已经拦住了
那么ATL+F9,重新断在 4094C0 处,取消其他断点,利用注册机重新注册激活,然后静观其变
过了好长一会就断下来了,发现调用来自40B0AF
那么断在40B080,并且强行让4094F0跳过,以免注册表信息又被清除
好了,现在几乎不到一秒都可以拦截住了,如下:
0040B080 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0040B086 6A FF PUSH -1
0040B088 68 003A4D00 PUSH XXXServe.004D3A00
0040B08D 50 PUSH EAX
0040B08E 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
0040B092 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
0040B099 83EC 08 SUB ESP,8
0040B09C 83F8 0A CMP EAX,0A
0040B09F 53 PUSH EBX
0040B0A0 8BD9 MOV EBX,ECX
0040B0A2 0F85 0E010000 JNZ XXXServe.0040B1B6
改这里可以直接进入网络验证;如果不想进行网络验证的话就改必须跳即可,但是不保险,推荐到雷区里面改写
0040B0A8 56 PUSH ESI
0040B0A9 57 PUSH EDI
0040B0AA B9 B8755000 MOV ECX,XXXServe.005075B8
0040B0AF E8 0CE4FFFF CALL XXXServe.004094C0 ; 雷区 F7
0040B0B4 8BF8 MOV EDI,EAX
0040B0B6 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
0040B0BA 50 PUSH EAX
0040B0BB E8 7C180B00 CALL XXXServe.004BC93C
0040B0C0 6A 00 PUSH 0
0040B0C2 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
0040B0C6 E8 B0180B00 CALL XXXServe.004BC97B
0040B0CB 8B70 08 MOV ESI,DWORD PTR DS:[EAX+8]
0040B0CE 8B43 64 MOV EAX,DWORD PTR DS:[EBX+64]
0040B0D1 3BF0 CMP ESI,EAX
0040B0D3 0F8C AC000000 JL XXXServe.0040B185
0040B0D9 40 INC EAX
0040B0DA 3BF0 CMP ESI,EAX
0040B0DC 0F8D A3000000 JGE XXXServe.0040B185
0040B0E2 83FF 01 CMP EDI,1
0040B0E5 74 0E JE SHORT XXXServe.0040B0F5
0040B0E7 83FF 03 CMP EDI,3
0040B0EA 74 09 JE SHORT XXXServe.0040B0F5
0040B0EC 83FF 04 CMP EDI,4
0040B0EF 0F85 90000000 JNZ XXXServe.0040B185
0040B0F5 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
0040B0F9 51 PUSH ECX
0040B0FA E8 D1AEFFFF CALL XXXServe.00405FD0
0040B0FF 83C4 04 ADD ESP,4
0040B102 68 BCC34F00 PUSH XXXServe.004FC3BC ; ASCII "Server.ini"
0040B107 8D5424 28 LEA EDX,DWORD PTR SS:[ESP+28]
0040B10B 50 PUSH EAX
0040B10C 52 PUSH EDX
0040B10D C74424 28 00000>MOV DWORD PTR SS:[ESP+28],0
0040B115 E8 A4350B00 CALL XXXServe.004BE6BE
0040B11A 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
0040B11E C64424 1C 02 MOV BYTE PTR SS:[ESP+1C],2
0040B123 E8 01330B00 CALL XXXServe.004BE429
0040B128 8B4424 24 MOV EAX,DWORD PTR SS:[ESP+24]
0040B12C 50 PUSH EAX
0040B12D 6A 00 PUSH 0
0040B12F 68 F0C94F00 PUSH XXXServe.004FC9F0 ; ASCII "SendWarming"
0040B134 68 E4C94F00 PUSH XXXServe.004FC9E4 ; ASCII "ServerGuard"
0040B139 FF15 28F44D00 CALL DWORD PTR DS:[<&KERNEL32.GetPrivateProfileIntA>>; kernel32.GetPrivateProfileIntA
0040B13F 85C0 TEST EAX,EAX
0040B141 75 31 JNZ SHORT XXXServe.0040B174
0040B143 68 70C94F00 PUSH XXXServe.004FC970
0040B148 68 6CC94F00 PUSH XXXServe.004FC96C ; ASCII "%s"
0040B14D 68 B8755000 PUSH XXXServe.005075B8
0040B152 E8 69C9FFFF CALL XXXServe.00407AC0
0040B157 8B4C24 30 MOV ECX,DWORD PTR SS:[ESP+30]
0040B15B 83C4 0C ADD ESP,0C
0040B15E 51 PUSH ECX
0040B15F 68 68C94F00 PUSH XXXServe.004FC968
0040B164 68 F0C94F00 PUSH XXXServe.004FC9F0 ; ASCII "SendWarming"
0040B169 68 E4C94F00 PUSH XXXServe.004FC9E4 ; ASCII "ServerGuard"
0040B16E FF15 18F44D00 CALL DWORD PTR DS:[<&KERNEL32.WritePrivateProfileStr>; kernel32.WritePrivateProfileStringA
0040B174 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
0040B178 C74424 1C FFFFF>MOV DWORD PTR SS:[ESP+1C],-1
0040B180 E8 A4320B00 CALL XXXServe.004BE429
0040B185 8B43 60 MOV EAX,DWORD PTR DS:[EBX+60]
0040B188 3BF0 CMP ESI,EAX
0040B18A 7C 13 JL SHORT XXXServe.0040B19F
0040B18C 40 INC EAX
0040B18D 3BF0 CMP ESI,EAX
0040B18F 7D 0E JGE SHORT XXXServe.0040B19F
0040B191 B9 B8755000 MOV ECX,XXXServe.005075B8
0040B196 E8 C5D1FFFF CALL XXXServe.00408360
0040B19B 6A 01 PUSH 1
0040B19D EB 02 JMP SHORT XXXServe.0040B1A1
0040B19F 6A 00 PUSH 0
0040B1A1 B9 B8755000 MOV ECX,XXXServe.005075B8
0040B1A6 E8 85D1FFFF CALL XXXServe.00408330
0040B1AB 8BCB MOV ECX,EBX
0040B1AD E8 AE000000 CALL XXXServe.0040B260
0040B1B2 5F POP EDI
0040B1B3 5E POP ESI
0040B1B4 EB 73 JMP SHORT XXXServe.0040B229
0040B1B6 83F8 0B CMP EAX,0B
0040B1B9 75 2F JNZ SHORT XXXServe.0040B1EA
0040B1BB 8B0D 4C775000 MOV ECX,DWORD PTR DS:[50774C]
0040B1C1 A1 54775000 MOV EAX,DWORD PTR DS:[507754]
0040B1C6 41 INC ECX
0040B1C7 40 INC EAX
0040B1C8 890D 4C775000 MOV DWORD PTR DS:[50774C],ECX
0040B1CE B9 B8755000 MOV ECX,XXXServe.005075B8
0040B1D3 A3 54775000 MOV DWORD PTR DS:[507754],EAX
0040B1D8 E8 B3D7FFFF CALL XXXServe.00408990
0040B1DD 8B0D 9C785000 MOV ECX,DWORD PTR DS:[50789C]
0040B1E3 E8 38470200 CALL XXXServe.0042F920
0040B1E8 EB 3F JMP SHORT XXXServe.0040B229
0040B1EA 83F8 0C CMP EAX,0C
0040B1ED 75 18 JNZ SHORT XXXServe.0040B207
0040B1EF 8BCB MOV ECX,EBX
0040B1F1 E8 3A010000 CALL XXXServe.0040B330
0040B1F6 8B0D 9C785000 MOV ECX,DWORD PTR DS:[50789C]
0040B1FC 85C9 TEST ECX,ECX
0040B1FE 74 29 JE SHORT XXXServe.0040B229
0040B200 E8 EB650200 CALL XXXServe.004317F0
0040B205 EB 22 JMP SHORT XXXServe.0040B229
0040B207 83F8 0D CMP EAX,0D
0040B20A 75 0D JNZ SHORT XXXServe.0040B219
0040B20C 8B0D 9C785000 MOV ECX,DWORD PTR DS:[50789C]
0040B212 E8 89550200 CALL XXXServe.004307A0
0040B217 EB 10 JMP SHORT XXXServe.0040B229
0040B219 83F8 0F CMP EAX,0F
0040B21C 75 0B JNZ SHORT XXXServe.0040B229
0040B21E 8B0D 9C785000 MOV ECX,DWORD PTR DS:[50789C]
0040B224 E8 C7560200 CALL XXXServe.004308F0
0040B229 8BCB MOV ECX,EBX
0040B22B E8 2A4E0B00 CALL XXXServe.004C005A
0040B230 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
0040B234 5B POP EBX
0040B235 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040B23C 83C4 14 ADD ESP,14
0040B23F C2 0400 RETN 4
0040B0AF CALL XXXServe.004094C0 雷区
00414B1F CALL XXXServe.004094C0
00426139 CALL XXXServe.004094C0
00429D10 CALL XXXServe.004094C0
0042A030 CALL XXXServe.004094C0
发现有5处这样的“网络暗桩”,都改的话太麻烦了,所以说进雷区改比较好
004094C0 83EC 14 SUB ESP,14
004094C3 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
004094C7 53 PUSH EBX ; 20:04
004094C8 55 PUSH EBP
004094C9 56 PUSH ESI
004094CA 57 PUSH EDI
004094CB BD 04000000 MOV EBP,4
004094D0 50 PUSH EAX
004094D1 8BD9 MOV EBX,ECX
004094D3 55 PUSH EBP
004094D4 E8 F7010000 CALL XXXServe.004096D0 ; F7
004094D9 8BF0 MOV ESI,EAX
004094DB 83C4 08 ADD ESP,8
004094DE 85F6 TEST ESI,ESI
004094E0 74 07 JE SHORT XXXServe.004094E9
004094E2 837C24 10 19 CMP DWORD PTR SS:[ESP+10],19
004094E7 73 43 JNB SHORT XXXServe.0040952C
004094E9 A1 A8785000 MOV EAX,DWORD PTR DS:[5078A8] ; 改为 MOV EAX,1 即可
004094EE 85C0 TEST EAX,EAX ; 只要EAX=1即可永远不去TX服务器验证了
004094F0 75 3A JNZ SHORT XXXServe.0040952C ; 改为必须跳
004094F2 68 50C84F00 PUSH XXXServe.004FC850
004094F7 68 B8755000 PUSH XXXServe.005075B8
004094FC C705 A8785000 0>MOV DWORD PTR DS:[5078A8],1
00409506 E8 B5E5FFFF CALL XXXServe.00407AC0
0040950B 83C4 08 ADD ESP,8
0040950E E8 AD000000 CALL XXXServe.004095C0
00409513 8BF8 MOV EDI,EAX ; 保险起见还可以把这里改为 XOR EDI,EDI
00409515 85FF TEST EDI,EDI
00409517 74 13 JE SHORT XXXServe.0040952C ; 当然还可以把它改为必须跳
00409519 68 44C84F00 PUSH XXXServe.004FC844 ; ASCII "ACTIVESN"
0040951E 57 PUSH EDI
0040951F FF15 50F04D00 CALL DWORD PTR DS:[<&ADVAPI32.RegDeleteValueA>] ; ADVAPI32.RegDeleteValueA
00409525 57 PUSH EDI
00409526 FF15 10F04D00 CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKey>] ; ADVAPI32.RegCloseKey
0040952C 33F6 TEST ESI,ESI
0040952E EB 0D JE SHORT XXXServe.0040953D
00409530 B8 02000000 MOV EAX,2
00409535 5F POP EDI
00409536 5E POP ESI
00409537 5D POP EBP
00409538 5B POP EBX
00409539 83C4 14 ADD ESP,14
0040953C C3 RETN
004096D0 6A FF PUSH -1
004096D2 68 87364D00 PUSH XXXServe.004D3687
004096D7 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
004096DD 50 PUSH EAX
004096DE 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
004096E5 81EC 58040000 SUB ESP,458
004096EB A1 04F54D00 MOV EAX,DWORD PTR DS:[<&XXXDbug._db_on_>]
004096F0 53 PUSH EBX
004096F1 33DB XOR EBX,EBX
004096F3 55 PUSH EBP
004096F4 895C24 28 MOV DWORD PTR SS:[ESP+28],EBX
004096F8 8B08 MOV ECX,DWORD PTR DS:[EAX]
004096FA 3BCB CMP ECX,EBX
004096FC 56 PUSH ESI
004096FD 74 3B JE SHORT XXXServe.0040973A
004096FF 381D 14C14F00 CMP BYTE PTR DS:[4FC114],BL
00409705 74 33 JE SHORT XXXServe.0040973A
00409707 A1 10C14F00 MOV EAX,DWORD PTR DS:[4FC110]
0040970C 8D4C24 28 LEA ECX,DWORD PTR SS:[ESP+28]
00409710 8D5424 24 LEA EDX,DWORD PTR SS:[ESP+24]
00409714 51 PUSH ECX
00409715 52 PUSH EDX
00409716 8D4C24 28 LEA ECX,DWORD PTR SS:[ESP+28]
0040971A 8D5424 24 LEA EDX,DWORD PTR SS:[ESP+24]
0040971E 51 PUSH ECX
0040971F 52 PUSH EDX
00409720 6A 4C PUSH 4C
00409722 68 C8C14F00 PUSH XXXServe.004FC1C8 ; ASCII "../../Include\XXXDbug.h"
00409727 68 78C84F00 PUSH XXXServe.004FC878 ; ASCII "QueryIsActiveEx"
0040972C 50 PUSH EAX
0040972D 894424 4C MOV DWORD PTR SS:[ESP+4C],EAX
00409731 FF15 08F54D00 CALL DWORD PTR DS:[<&XXXDbug._db_enter_>] ; XXXDbug._db_enter_
00409737 83C4 20 ADD ESP,20
0040973A 8B8424 78040000 MOV EAX,DWORD PTR SS:[ESP+478]
00409741 899C24 6C040000 MOV DWORD PTR SS:[ESP+46C],EBX
00409748 895C24 18 MOV DWORD PTR SS:[ESP+18],EBX
0040974C 895C24 14 MOV DWORD PTR SS:[ESP+14],EBX
00409750 8918 MOV DWORD PTR DS:[EAX],EBX
00409752 C68424 6C040000>MOV BYTE PTR SS:[ESP+46C],1
0040975A 895C24 10 MOV DWORD PTR SS:[ESP+10],EBX
0040975E C68424 6C040000>MOV BYTE PTR SS:[ESP+46C],2
00409766 895C24 0C MOV DWORD PTR SS:[ESP+C],EBX
0040976A 8D4C24 30 LEA ECX,DWORD PTR SS:[ESP+30]
0040976E C68424 6C040000>MOV BYTE PTR SS:[ESP+46C],3
00409776 51 PUSH ECX
00409777 68 19000200 PUSH 20019
0040977C 53 PUSH EBX
0040977D 68 48C74F00 PUSH XXXServe.004FC748 ; 注册表SOFTWARE
00409782 68 02000080 PUSH 80000002
00409787 33F6 XOR ESI,ESI
00409789 895C24 44 MOV DWORD PTR SS:[ESP+44],EBX
0040978D FF15 54F04D00 CALL DWORD PTR DS:[<&ADVAPI32.RegOpenKeyExA>] ; 打开该项
00409793 3BC3 CMP EAX,EBX
00409795 75 59 JNZ SHORT XXXServe.004097F0 ; 若不存在就跳
00409797 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
0040979B E8 80140000 CALL XXXServe.0040AC20 ; 结束打开
004097A0 8B4C24 30 MOV ECX,DWORD PTR SS:[ESP+30]
004097A4 3BC3 CMP EAX,EBX
004097A6 894C24 14 MOV DWORD PTR SS:[ESP+14],ECX
004097AA 75 44 JNZ SHORT XXXServe.004097F0
004097AC 53 PUSH EBX
004097AD 53 PUSH EBX
004097AE 68 3F000F00 PUSH 0F003F
004097B3 53 PUSH EBX
004097B4 53 PUSH EBX
004097B5 68 40C74F00 PUSH XXXServe.004FC740 ; 继续打开TENCENT项
004097BA 51 PUSH ECX
004097BB 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
004097BF E8 7C140000 CALL XXXServe.0040AC40
004097C4 3BC3 CMP EAX,EBX
004097C6 75 28 JNZ SHORT XXXServe.004097F0 ; 若不存在就跳
004097C8 8B5424 10 MOV EDX,DWORD PTR SS:[ESP+10]
004097CC 53 PUSH EBX
004097CD 53 PUSH EBX
004097CE 68 3F000F00 PUSH 0F003F
004097D3 53 PUSH EBX
004097D4 53 PUSH EBX
004097D5 68 34C74F00 PUSH XXXServe.004FC734 ; 继续打开QQServer项目
004097DA 52 PUSH EDX
004097DB 8D4C24 28 LEA ECX,DWORD PTR SS:[ESP+28]
004097DF E8 5C140000 CALL XXXServe.0040AC40
004097E4 3BC3 CMP EAX,EBX
004097E6 75 08 JNZ SHORT XXXServe.004097F0 ; 若不存在就跳
004097E8 8B7424 0C MOV ESI,DWORD PTR SS:[ESP+C]
004097EC 895C24 0C MOV DWORD PTR SS:[ESP+C],EBX
004097F0 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
004097F4 C68424 6C040000>MOV BYTE PTR SS:[ESP+46C],2
004097FC E8 1F140000 CALL XXXServe.0040AC20 ; 关闭打开
00409801 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00409805 C68424 6C040000>MOV BYTE PTR SS:[ESP+46C],1
0040980D E8 0E140000 CALL XXXServe.0040AC20 ; 关闭打开
00409812 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
00409816 8B2D 10F04D00 MOV EBP,DWORD PTR DS:[<&ADVAPI32.RegCloseKey>] ; ADVAPI32.RegCloseKey
0040981C 3BC3 CMP EAX,EBX
0040981E 889C24 6C040000 MOV BYTE PTR SS:[ESP+46C],BL
00409825 74 03 JE SHORT XXXServe.0040982A
00409827 50 PUSH EAX
00409828 FFD5 CALL EBP
0040982A 3BF3 CMP ESI,EBX
0040982C 75 42 JNZ SHORT XXXServe.00409870
0040982E A1 04F54D00 MOV EAX,DWORD PTR DS:[<&XXXDbug._db_on_>]
00409833 C78424 6C040000>MOV DWORD PTR SS:[ESP+46C],-1
0040983E 3918 CMP DWORD PTR DS:[EAX],EBX
00409840 74 27 JE SHORT XXXServe.00409869
00409842 381D 14C14F00 CMP BYTE PTR DS:[4FC114],BL
00409848 74 1F JE SHORT XXXServe.00409869
0040984A 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
0040984E 8D5424 20 LEA EDX,DWORD PTR SS:[ESP+20]
00409852 51 PUSH ECX
00409853 8B4C24 30 MOV ECX,DWORD PTR SS:[ESP+30]
00409857 8D4424 20 LEA EAX,DWORD PTR SS:[ESP+20]
0040985B 52 PUSH EDX
0040985C 50 PUSH EAX
0040985D 6A 53 PUSH 53
0040985F 51 PUSH ECX
00409860 FF15 14F54D00 CALL DWORD PTR DS:[<&XXXDbug._db_return_>] ; XXXDbug._db_return_
00409866 83C4 14 ADD ESP,14
00409869 33C0 XOR EAX,EAX
0040986B E9 04010000 JMP XXXServe.00409974
00409870 57 PUSH EDI
00409871 B9 FF000000 MOV ECX,0FF
00409876 33C0 XOR EAX,EAX
00409878 8D7C24 69 LEA EDI,DWORD PTR SS:[ESP+69]
0040987C 885C24 68 MOV BYTE PTR SS:[ESP+68],BL
00409880 8D5424 3C LEA EDX,DWORD PTR SS:[ESP+3C]
00409884 F3:AB REP STOS DWORD PTR ES:[EDI]
00409886 66:AB STOS WORD PTR ES:[EDI]
00409888 AA STOS BYTE PTR ES:[EDI]
00409889 8D4424 68 LEA EAX,DWORD PTR SS:[ESP+68]
0040988D 52 PUSH EDX
0040988E 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
00409892 50 PUSH EAX
00409893 51 PUSH ECX
00409894 53 PUSH EBX
00409895 68 44C84F00 PUSH XXXServe.004FC844 ; 继续打开ACTIVERSN
0040989A 56 PUSH ESI
0040989B C74424 50 03000>MOV DWORD PTR SS:[ESP+50],3
004098A3 C74424 54 00040>MOV DWORD PTR SS:[ESP+54],400
004098AB FF15 1CF04D00 CALL DWORD PTR DS:[<&ADVAPI32.RegQueryValueExA>] ; ADVAPI32.RegQueryValueExA
004098B1 85C0 TEST EAX,EAX
004098B3 75 7B JNZ SHORT XXXServe.00409930 ; 若不存在就跳
004098B5 8D4C24 40 LEA ECX,DWORD PTR SS:[ESP+40]
004098B9 E8 D2380000 CALL XXXServe.0040D190
004098BE 8BBC24 7C040000 MOV EDI,DWORD PTR SS:[ESP+47C]
004098C5 8B9424 78040000 MOV EDX,DWORD PTR SS:[ESP+478]
004098CC 57 PUSH EDI
004098CD 8D4424 6C LEA EAX,DWORD PTR SS:[ESP+6C] ; 激活码喔
004098D1 52 PUSH EDX
004098D2 50 PUSH EAX
004098D3 8D4C24 4C LEA ECX,DWORD PTR SS:[ESP+4C]
004098D7 C68424 7C040000>MOV BYTE PTR SS:[ESP+47C],4
004098DF E8 7C4D0000 CALL XXXServe.0040E660 ;
估计是验证激活
004098E4 8B0D 04F54D00 MOV ECX,DWORD PTR DS:[<&XXXDbug._db_on_>] ; XXXDbug._db_on_
004098EA 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
004098EE 3919 CMP DWORD PTR DS:[ECX],EBX
004098F0 74 2E JE SHORT XXXServe.00409920
004098F2 381D 14C14F00 CMP BYTE PTR DS:[4FC114],BL
004098F8 74 26 JE SHORT XXXServe.00409920
004098FA 8B5424 30 MOV EDX,DWORD PTR SS:[ESP+30]
004098FE 68 70C84F00 PUSH XXXServe.004FC870 ; ASCII "key1"
00409903 6A 4B PUSH 4B
00409905 52 PUSH EDX
00409906 FF15 0CF54D00 CALL DWORD PTR DS:[<&XXXDbug._db_pargs_>] ; XXXDbug._db_pargs_
0040990C 8B07 MOV EAX,DWORD PTR DS:[EDI]
0040990E 83C4 0C ADD ESP,0C
00409911 50 PUSH EAX
00409912 68 64C84F00 PUSH XXXServe.004FC864 ; ASCII "dwNum = %d"
00409917 FF15 10F54D00 CALL DWORD PTR DS:[<&XXXDbug._db_doprnt_>] ; XXXDbug._db_doprnt_
0040991D 83C4 08 ADD ESP,8
00409920 8D4C24 40 LEA ECX,DWORD PTR SS:[ESP+40]
00409924 889C24 70040000 MOV BYTE PTR SS:[ESP+470],BL
0040992B E8 90380000 CALL XXXServe.0040D1C0
00409930 56 PUSH ESI
00409931 FFD5 CALL EBP
00409933 8B0D 04F54D00 MOV ECX,DWORD PTR DS:[<&XXXDbug._db_on_>] ; XXXDbug._db_on_
00409939 C78424 70040000>MOV DWORD PTR SS:[ESP+470],-1
00409944 5F POP EDI
00409945 3919 CMP DWORD PTR DS:[ECX],EBX
00409947 74 27 JE SHORT XXXServe.00409970
00409949 381D 14C14F00 CMP BYTE PTR DS:[4FC114],BL
0040994F 74 1F JE SHORT XXXServe.00409970
00409951 8D5424 24 LEA EDX,DWORD PTR SS:[ESP+24]
00409955 8D4424 20 LEA EAX,DWORD PTR SS:[ESP+20]
00409959 52 PUSH EDX
0040995A 8B5424 30 MOV EDX,DWORD PTR SS:[ESP+30]
0040995E 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
00409962 50 PUSH EAX
00409963 51 PUSH ECX
00409964 6A 53 PUSH 53
00409966 52 PUSH EDX
00409967 FF15 14F54D00 CALL DWORD PTR DS:[<&XXXDbug._db_return_>] ; XXXDbug._db_return_
0040996D 83C4 14 ADD ESP,14
00409970 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
00409974 8B8C24 64040000 MOV ECX,DWORD PTR SS:[ESP+464]
0040997B 5E POP ESI
0040997C 5D POP EBP
0040997D 5B POP EBX
0040997E 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
00409985 81C4 64040000 ADD ESP,464
0040998B C3 RETN
004C12B9 |. 3C 04 CMP AL,4
004C12BB |. 1BC0 SBB EAX,EAX
004C12BD |. 24 F0 AND AL,0F0
004C12BF |. 83C0 2F ADD EAX,2F
004C12C2 |> 48 DEC EAX ; 分支 (案例 1..31)
004C12C3 |. 83F8 30 CMP EAX,30
004C12C6 |. 0F87 C6020000 JA XXXServe.004C1592 ; 发现这里也有一些名堂,暂时没时间分析,估计已经影响不大
004C12CC |. FF2485 A6154C>JMP DWORD PTR DS:[EAX*4+4C15A6]
004C12D3 |> FF75 0C PUSH DWORD PTR SS:[EBP+C] ; 案例 1 --> 分支 004C12C2
004C12D6 |. E8 F5670000 CALL XXXServe.004C7AD0
004C12DB |. 50 PUSH EAX
破解“网络暗桩”方法 (理论可行,未证实过)
普通方案一、(基本没有问题)
只要如下改写3处即可很有效地避开网络暗桩
第一处:4094e9 从原来的 MOV EAX,DWORD PTR DS:[5078A8] 改为 MOV EAX,1
第二处:4094f0 从原来的 JNZ SHORT XXXServe.0040952C 改为 JMP SHORT XXXServe.0040952C
第三处:409517 从原来的 JE SHORT XXXServe.0040952C 改为 JMP SHORT XXXServe.0040952C
普通方案二、(可能有遗漏的方面)
40B0A2 处 JNZ XXXServe.0040B1B6 改为 JMP XXXServe.0040B1B6
增强方案(推荐)
将“普通方案一”和“普通方案二”结合到一起,也就是4个地方要改:
第一处:40B0A2 从原来的 JNZ XXXServe.0040B1B6 改为 JMP XXXServe.0040B1B6
第二处:4094e9 从原来的 MOV EAX,DWORD PTR DS:[5078A8] 改为 MOV EAX,1
第三处:4094f0 从原来的 JNZ SHORT XXXServe.0040952C 改为 JMP SHORT XXXServe.0040952C
第四处:409517 从原来的 JE SHORT XXXServe.0040952C 改为 JMP SHORT XXXServe.0040952C
其实还有很多种改法,我也不是专家,只要跟踪到了网络暗桩,
我相信大家都可以百家争鸣的,大家自己改写也是个好办法
因为我比较菜,我是很菜的菜鸟,我不知道它在什么时候通过怎样的方法来连接互联网的,很是郁闷
请大点的大虾跟帖告诉我它是如何进行网络校验的?
呵呵。。。大家可以据此来写个文件补丁,配合网上的那个注册机算是很棒了,值得收藏。
写完这篇文章后,本文作者就失踪了,大家不要“挂念” ^_^
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课