- UID
- 62808
注册时间2009-7-2
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
昨天这个话题发表在一蓑烟雨论坛上的,但是看的人多,得到的提示少,今天拿来这里请大侠指点指点。
关于双色球7.2~7.4的破解
本人前段时间学习破解了双色球7.1版本,近段时间看了看后续版本。其实后续的这几个版本差不多都是一个模式,由于本人现在并没有作出完整的破解,因此也不便将半成品送上来献丑,而且发表本帖本身也是本着互相学习的态度来的,本人水平着实也很菜。
1、脱壳和以往的一样,没有什么说的。
2、这次的自校验作者采用了两种手段,其一就是检查程序的名称,如果程序被改名不是ssQss.exe则退出,不信你可以把下载的原版的未脱壳的程序改名试试,照退不误;其二当然还是使用了检测文件大小的自校验方式,不过这次的自校验放置的位置稍微有些变化,通过运行程序可以发现,程序是在显示完注册窗口以后才退出的,与7.1版的程序一运行就退出有些不同。详细的去除自校验的地方参见下面:
006D6058 . B0 01 mov al,1
006D605A . E8 81BAFBFF call ssQss.00691AE0 ;这里还是以前说的需要F7跟进
006D605F . 8B15 BC777100 mov edx,dword ptr ds:[7177BC] ; ssQss.0071A94C
006D6065 . 8B12 mov edx,dword ptr ds:[edx]
006D6067 . 8802 mov byte ptr ds:[edx],al
006D6069 . A1 787C7100 mov eax,dword ptr ds:[717C78]
006D606E . 8B00 mov eax,dword ptr ds:[eax]
006D6070 . E8 3744DBFF call ssQss.0048A4AC
006D6075 . 8BC3 mov eax,ebx
006D6077 . E8 54170000 call ssQss.006D77D0
006D607C . 8BD6 mov edx,esi
006D607E . 8BC3 mov eax,ebx
006D6080 . E8 93C80100 call ssQss.006F2918
006D6085 . A1 307D7100 mov eax,dword ptr ds:[717D30]
006D608A . 8B00 mov eax,dword ptr ds:[eax]
006D608C . 8B00 mov eax,dword ptr ds:[eax]
006D608E . 8B15 A0757100 mov edx,dword ptr ds:[7175A0] ; ssQss.0071A968
006D6094 . 8B12 mov edx,dword ptr ds:[edx]
006D6096 . 3B02 cmp eax,dword ptr ds:[edx] ; eax中为脱壳后文件的大小,ds:[edx]中为未脱壳文件大小
006D6098 . 0F95C0 setne al
006D609B . 8883 8C2B0000 mov byte ptr ds:[ebx+2B8C],al
006D60A1 . A1 A0757100 mov eax,dword ptr ds:[7175A0]
006D60A6 . 8B00 mov eax,dword ptr ds:[eax]
006D60A8 . 8B00 mov eax,dword ptr ds:[eax]
006D60AA . 8B15 307D7100 mov edx,dword ptr ds:[717D30] ; ssQss.0071A964
006D60B0 . 8B12 mov edx,dword ptr ds:[edx]
006D60B2 . 3B02 cmp eax,dword ptr ds:[edx]
006D60B4 . EB 0C jmp short ssQss.006D60C2
006D60B6 . A1 787C7100 mov eax,dword ptr ds:[717C78]
006D60BB . 8B00 mov eax,dword ptr ds:[eax]
006D60BD . E8 9246DBFF call ssQss.0048A754
006D60C2 > A1 24767100 mov eax,dword ptr ds:[717624]
006D60C7 . 8B00 mov eax,dword ptr ds:[eax]
006D60C9 . 8B00 mov eax,dword ptr ds:[eax]
006D60CB . 8B15 BC7D7100 mov edx,dword ptr ds:[717DBC] ; ssQss.0071A96C
006D60D1 . 8B12 mov edx,dword ptr ds:[edx]
006D60D3 . 3B02 cmp eax,dword ptr ds:[edx]
006D60D5 . EB 0C jmp short ssQss.006D60E3
006D60D7 . A1 787C7100 mov eax,dword ptr ds:[717C78]
006D60DC . 8B00 mov eax,dword ptr ds:[eax]
006D60DE . E8 7146DBFF call ssQss.0048A754
006D60E3 > 8BD6 mov edx,esi
006D60E5 . 8BC3 mov eax,ebx
006D60E7 . E8 FCD30100 call ssQss.006F34E8
006D60EC . A1 EC727100 mov eax,dword ptr ds:[7172EC]
006D60F1 . 8B00 mov eax,dword ptr ds:[eax]
006D60F3 . C600 00 mov byte ptr ds:[eax],0
006D60F6 . 8BC3 mov eax,ebx
006D60F8 . E8 AFEFFFFF call ssQss.006D50AC
红色的部分是我修改过的地方,这几个地方修改以后就可以去除自校验了,关于文件改名自校验,个人感觉意义不大,没再仔细追。
蓝色的部分仍然是对注册文件进行处理的部分,需要F7进去仔细摸索,幸亏有好多地方与7.1很相似,这里就不重复了。(一蓑烟雨上的夜凉说我弄错了?)
3、破解
按照7.1的方法做过处理以后,会发现,软件的部分功能已经可以使用了,但是好像并没有显示注册成功。
经过仔细分析,发现,软件增加了这样几个毒瘤,
006D4F3C /$ C3 retn
006D4F3D |. 8BD8 mov ebx,eax
006D4F3F |. 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D4F45 |. E8 522DF1FF call ssQss.005E7C9C
006D4F4A |. B9 A44F6D00 mov ecx,ssQss.006D4FA4 ; paxPascal
006D4F4F |. BA B84F6D00 mov edx,ssQss.006D4FB8
006D4F54 |. 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D4F5A |. E8 D919F1FF call ssQss.005E6938
006D4F5F |. 6A 00 push 0
006D4F61 |. BA 584D6D00 mov edx,ssQss.006D4D58
006D4F66 |. 83C9 FF or ecx,FFFFFFFF
006D4F69 |. B8 C44F6D00 mov eax,ssQss.006D4FC4 ; procedure myfpjOne;
006D4F6E |. E8 2D11F1FF call ssQss.005E60A0
006D4F73 |. B9 E04F6D00 mov ecx,ssQss.006D4FE0 ; ASCII "myfpjOne;"
006D4F78 |. BA B84F6D00 mov edx,ssQss.006D4FB8 ; 1
006D4F7D |. 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D4F83 |. E8 8819F1FF call ssQss.005E6910
006D4F88 |. 6A 00 push 0
006D4F8A |. 33C9 xor ecx,ecx
006D4F8C |. 33D2 xor edx,edx
006D4F8E |. 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D4F94 |. E8 0725F1FF call ssQss.005E74A0
006D4F99 |. 5B pop ebx
006D4F9A \. C3 retn
006D4F9B 00 db 00
006D4F9C . FFFFFFFF dd FFFFFFFF
006D4FA0 . 09000000 dd 00000009
006D4FA4 . 70 61 78 50 6>ascii "paxPascal",0
006D4FAE 00 db 00
006D4FAF 00 db 00
006D4FB0 . FFFFFFFF dd FFFFFFFF
006D4FB4 . 01000000 dd 00000001
006D4FB8 . 31 00 ascii "1",0
006D4FBA 00 db 00
006D4FBB 00 db 00
006D4FBC . FFFFFFFF dd FFFFFFFF
006D4FC0 . 13000000 dd 00000013
006D4FC4 . 70 72 6F 63 6>ascii "procedure myfpjO"
006D4FD4 . 6E 65 3B 00 ascii "ne;",0
006D4FD8 . FFFFFFFF dd FFFFFFFF
006D4FDC . 09000000 dd 00000009
006D4FE0 . 6D 79 66 70 6>ascii "myfpjOne;",0
006D4FEA 00 db 00
006D4FEB 00 db 00
006D4FEC $ C3 retn
006D4FED . 8BD8 mov ebx,eax
006D4FEF . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D4FF5 . E8 A22CF1FF call ssQss.005E7C9C
006D4FFA . B9 54506D00 mov ecx,ssQss.006D5054 ; paxPascal
006D4FFF . BA 68506D00 mov edx,ssQss.006D5068 ; 1
006D5004 . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D500A . E8 2919F1FF call ssQss.005E6938
006D500F . 6A 00 push 0
006D5011 . BA 788D5700 mov edx,ssQss.00578D78
006D5016 . 83C9 FF or ecx,FFFFFFFF
006D5019 . B8 74506D00 mov eax,ssQss.006D5074 ; ASCII "procedure myCheRckAppEOSg;"
006D501E . E8 7D10F1FF call ssQss.005E60A0
006D5023 . B9 98506D00 mov ecx,ssQss.006D5098 ; myCheRckAppEOSg;
006D5028 . BA 68506D00 mov edx,ssQss.006D5068
006D502D . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D5033 . E8 D818F1FF call ssQss.005E6910
006D5038 . 6A 00 push 0
006D503A . 33C9 xor ecx,ecx
006D503C . 33D2 xor edx,edx
006D503E . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D5044 . E8 5724F1FF call ssQss.005E74A0
006D5049 . 5B pop ebx
006D504A . C3 retn
006D504B 00 db 00
006D504C . FFFFFFFF dd FFFFFFFF
006D5050 . 09000000 dd 00000009
006D5054 . 70 61 78 50 6>ascii "paxPascal",0
006D505E 00 db 00
006D505F 00 db 00
006D5060 . FFFFFFFF dd FFFFFFFF
006D5064 . 01000000 dd 00000001
006D5068 . 31 00 ascii "1",0
006D506A 00 db 00
006D506B 00 db 00
006D506C . FFFFFFFF dd FFFFFFFF
006D5070 . 1A000000 dd 0000001A
006D5074 . 70 72 6F 63 6>ascii "procedure myCheR"
006D5084 . 63 6B 41 70 7>ascii "ckAppEOSg;",0
006D508F 00 db 00
006D5090 . FFFFFFFF dd FFFFFFFF
006D5094 . 10000000 dd 00000010
006D5098 . 6D 79 43 68 6>ascii "myCheRckAppEOSg;"
006D50A8 . 00 ascii 0
006D50A9 00 db 00
006D50AA 00 db 00
006D50AB 00 db 00
006D50AC $ C3 retn
006D50AD . 8BD8 mov ebx,eax
006D50AF . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D50B5 . E8 E22BF1FF call ssQss.005E7C9C
006D50BA . B9 28516D00 mov ecx,ssQss.006D5128 ; ASCII "paxPascal"
006D50BF . BA 3C516D00 mov edx,ssQss.006D513C
006D50C4 . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D50CA . E8 6918F1FF call ssQss.005E6938
006D50CF . 6A 00 push 0
006D50D1 . BA 54905700 mov edx,ssQss.00579054
006D50D6 . 83C9 FF or ecx,FFFFFFFF
006D50D9 . B8 48516D00 mov eax,ssQss.006D5148 ; 1
006D50DE . E8 BD0FF1FF call ssQss.005E60A0
006D50E3 . B9 6C516D00 mov ecx,ssQss.006D516C ; ASCII "myCheckAppError;"
006D50E8 . BA 3C516D00 mov edx,ssQss.006D513C
006D50ED . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D50F3 . E8 1818F1FF call ssQss.005E6910
006D50F8 . 6A 00 push 0
006D50FA . 33C9 xor ecx,ecx
006D50FC . 33D2 xor edx,edx
006D50FE . 8B83 34190000 mov eax,dword ptr ds:[ebx+1934]
006D5104 . E8 9723F1FF call ssQss.005E74A0
006D5109 . A1 A4817100 mov eax,dword ptr ds:[7181A4]
006D510E . 8B00 mov eax,dword ptr ds:[eax]
006D5110 . 8A10 mov dl,byte ptr ds:[eax]
006D5112 . 8B83 60190000 mov eax,dword ptr ds:[ebx+1960]
006D5118 . E8 73A8D6FF call ssQss.0043F990
006D511D . 5B pop ebx
006D511E . C3 retn
本人也正是被这几个毒瘤阻挠了好长时间,汗,现在还被挡着呢,发出来希望朋友们提个醒。红色的部分是俺修改过的地方,原来好像是
push ebx这个指令来吧。这样修改的后果是可以使用的功能增多,但是当你关闭这个功能以后,再次使用这个功能时,可能就不能用了。
还望高手指点。 |
|