fjf2001 发表于 2009-7-8 09:00:16

关于双色球神手7.2~7。4破解

昨天这个话题发表在一蓑烟雨论坛上的,但是看的人多,得到的提示少,今天拿来这里请大侠指点指点。
关于双色球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:            ;ssQss.0071A94C
006D6065   .8B12          mov edx,dword ptr ds:
006D6067   .8802          mov byte ptr ds:,al
006D6069   .A1 787C7100   mov eax,dword ptr ds:
006D606E   .8B00          mov eax,dword ptr ds:
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:
006D608A   .8B00          mov eax,dword ptr ds:
006D608C   .8B00          mov eax,dword ptr ds:
006D608E   .8B15 A0757100 mov edx,dword ptr ds:            ;ssQss.0071A968
006D6094   .8B12          mov edx,dword ptr ds:
006D6096   .3B02          cmp eax,dword ptr ds:               ;eax中为脱壳后文件的大小,ds:中为未脱壳文件大小
006D6098   .0F95C0      setne al
006D609B   .8883 8C2B0000 mov byte ptr ds:,al
006D60A1   .A1 A0757100   mov eax,dword ptr ds:
006D60A6   .8B00          mov eax,dword ptr ds:
006D60A8   .8B00          mov eax,dword ptr ds:
006D60AA   .8B15 307D7100 mov edx,dword ptr ds:            ;ssQss.0071A964
006D60B0   .8B12          mov edx,dword ptr ds:
006D60B2   .3B02          cmp eax,dword ptr ds:
006D60B4   .EB 0C         jmp short ssQss.006D60C2
006D60B6   .A1 787C7100   mov eax,dword ptr ds:
006D60BB   .8B00          mov eax,dword ptr ds:
006D60BD   .E8 9246DBFF   call ssQss.0048A754
006D60C2   >A1 24767100   mov eax,dword ptr ds:
006D60C7   .8B00          mov eax,dword ptr ds:
006D60C9   .8B00          mov eax,dword ptr ds:
006D60CB   .8B15 BC7D7100 mov edx,dword ptr ds:            ;ssQss.0071A96C
006D60D1   .8B12          mov edx,dword ptr ds:
006D60D3   .3B02          cmp eax,dword ptr ds:
006D60D5   .EB 0C         jmp short ssQss.006D60E3
006D60D7   .A1 787C7100   mov eax,dword ptr ds:
006D60DC   .8B00          mov eax,dword ptr ds:
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:
006D60F1   .8B00          mov eax,dword ptr ds:
006D60F3   .C600 00       mov byte ptr ds:,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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
006D5104   .E8 9723F1FF   call ssQss.005E74A0
006D5109   .A1 A4817100   mov eax,dword ptr ds:
006D510E   .8B00          mov eax,dword ptr ds:
006D5110   .8A10          mov dl,byte ptr ds:
006D5112   .8B83 60190000 mov eax,dword ptr ds:
006D5118   .E8 73A8D6FF   call ssQss.0043F990
006D511D   .5B            pop ebx
006D511E   .C3            retn


本人也正是被这几个毒瘤阻挠了好长时间,汗,现在还被挡着呢,发出来希望朋友们提个醒。红色的部分是俺修改过的地方,原来好像是
push ebx这个指令来吧。这样修改的后果是可以使用的功能增多,但是当你关闭这个功能以后,再次使用这个功能时,可能就不能用了。

还望高手指点。

lyctwwx 发表于 2009-7-10 08:02:15

高手啊!学习了。。

yzslly 发表于 2009-7-10 08:53:47

点没找对,就这么多(作者写这个软件不容易啊,支持一下,呵呵)

fjf2001 发表于 2009-7-10 11:31:47

重新开工中。。。。。。。

fjf2001 发表于 2009-7-24 09:04:11

大家的反应还真是不够热烈呀。

xugk 发表于 2009-8-8 21:37:00

你这样叫菜,我无语了/:010

fjf2001 发表于 2009-8-11 11:17:33

其实这个软件本人已经彻底的k掉了,看到大家都这样保护,本人也颇感动,所以决定不再出破文,不过总得说点什么,如果还有正在弄的朋友,请注意一下这两个地方
006D6098   .0F95C0      setne al
006D609B   .8883 8C2B0000 mov byte ptr ds:,al
006D60A1   .A1 A0757100   mov eax,dword ptr ds:
006D60A6   .8B00          mov eax,dword ptr ds:
006D60A8   .8B00          mov eax,dword ptr ds:
006D60AA   .8B15 307D7100 mov edx,dword ptr ds:            ;ssQss.0071A964
006D60B0   .8B12          mov edx,dword ptr ds:
006D60B2   .3B02          cmp eax,dword ptr ds:请仔细注意以下这里两个数值。
006D60B4   .EB 0C         jmp short ssQss.006D60C2
006D60B6   .A1 787C7100   mov eax,dword ptr ds:
006D60BB   .8B00          mov eax,dword ptr ds:
006D60BD   .E8 9246DBFF   call ssQss.0048A754
006D60C2   >A1 24767100   mov eax,dword ptr ds:
006D60C7   .8B00          mov eax,dword ptr ds:
006D60C9   .8B00          mov eax,dword ptr ds:
006D60CB   .8B15 BC7D7100 mov edx,dword ptr ds:            ;ssQss.0071A96C
006D60D1   .8B12          mov edx,dword ptr ds:
006D60D3   .3B02          cmp eax,dword ptr ds:再就是这里的数值
006D60D5   .EB 0C         jmp short ssQss.006D60E3

上面两个红色标记的地方请特别注意好了。看看到底是什么东西,怎么处理,办法很多。

老万 发表于 2009-8-15 22:38:08

学习了,自己试试吧

小举 发表于 2009-8-17 10:18:37

学习了,自己试试吧

issac010 发表于 2009-8-18 10:24:14

路过,学习!感谢分享
页: [1] 2
查看完整版本: 关于双色球神手7.2~7。4破解