初学者的东西:Transoft's Server All 1.02破解
——Passion在新世纪的第一个破解
以前用过一个叫Transoft's Server All的服务器软件,华军下的,能将WINNT下的任意程序转换成NT的服务,也就是不需要登录就能自动运行。这号功能听起来不错,只是仍然要注册,于是忍不住又想练练手。——高手可别笑话我这个初学者。
说实话Transoft's Server All 1.02在高手眼里只不过是小菜,但我对付它却花了两个多小时,时间就花在寻找用我输入的用户名生成注册码的过程。开始原想分析出注册码计算的算法的,可似乎太复杂,跟了几百个语句后放弃了。早知道这样,不如在内存中寻找假注册码再设内存读写断点,那样八成更快些。
还是老手段,点菜单“Apply Registration Code”弹出注册框,要输入name、userkey和Email
address,于是输入Passion/1212121212121212/passion@email.com.cn(不过后来这个Email地址根本就没用到)。下断bpx
hmemcpy,断后回Server All领空,RET大概七层后来到此处:
:00478C95 E86276FAFF call
004202FC
//运行到这里,上边这个CALL是读取userkey的。
:00478C9A 8B45F8
mov eax, dword ptr [ebp-08]
:00478C9D 50
push eax
:00478C9E 8D55F4
lea edx, dword ptr [ebp-0C]
:00478CA1 8B45FC
mov eax, dword ptr [ebp-04]
:00478CA4 8B80FC010000 mov eax, dword
ptr [eax+000001FC]
:00478CAA E84D76FAFF call
004202FC
//这个CALL读取NAME
:00478CAF 8B45F4
mov eax, dword ptr [ebp-0C]
:00478CB2 5A
pop edx
:00478CB3 E850FFFFFF call
00478C08
//这里肯定是生成注册码并判断的,判断结果在AL中。
:00478CB8 84C0
test al, al
:00478CBA 0F8474030000 je 00479034
//如果跳就完了。
我以前把这里的0F8474030000全用90来NOP掉也注册成功了,不过这里要找出注册码,因此在此处按F8进入:
:00478CB3 E850FFFFFF call
00478C08
进入后程序段变得很复杂,不过前边的逻辑还是稍微有些清楚,首先将输入的name按字符分开,按ASCII码进行迭代运算(许多乘法和浮点指令弄得我头晕脑胀的)。后来也不知怎么回事就出现了字符串“80219520”,幸亏觉得不对头,因为刚跟那么一点时间就出来注册码,那算法也太不成器了。再跟,又出来一个字符串“10027440”。——当然还得跟。
再跟下去,这两个字符串被作为参数参与了下一轮运算。并且运行到00466757处出现字符表,估计是计算出来的值通过查表的方式生成对应字符。
具体的流程复杂得很,注册码计算至少经过了三大步骤,迭代运算我也搞不清有多少次,因此代码没法贴出来。
:004666CB E810D6F9FF call
00403CE0
//此处D EAX可看到第一个中间结果——字符80219520
:00466757 E888D7F9FF call
00403EE4
//此处D EAX可看到字符表
:0046676A E871D5F9FF call
00403CE0
//此处D EAX可看到第二个中间结果——字符10027440
最后,在00466779上下D EAX,可看见最终的注册码。
——这个地方对于我来说真不容易找,几乎每一个CALL我都跟进去了。
:00466779 E87ED3F9FF call
00403AFC
//这里注册码是JNZVh,一般长度都在五六个左右。
所以我注册时用的就是:
Name:Passion
Userkey:JNZVh
Email Address:随便
填入自己的Name后在0167:00466779处中断时,来一个D EAX可看见与自己的注册名对应的、属于自己的注册码。(相信大家都喜欢得到这种结果吧?)
另外我怀疑这个程序是用DELPHI写的,因为凡是碰到取字符串长度的子程序,都是在EBP-04还是类似的其他地方取一个值到EAX里再RET回去,这是Pascal的风格,跟C的字符串遍历的方法不一样。
- 标 题:初学者的东西:Transoft's Server All 1.02破解 (3千字)
- 作 者:Passion
- 时 间:2001-1-8 19:55:09
- 链 接:http://bbs.pediy.com