= 64、ZBServer Pro 1.50-r13 for Win95/NT ================================================== ZBServer Pro 1.50-r13 for Win95/NT Cracked by Hambo.H Written in 18/9/1997 执行文件:ZBS_Pro.exe (长度:617,984 Bytes) (1)去掉在用Register或Setting进入Setup时无法显示注册信息。 由于每次进入Setup程序都会检查注册码是否正确。 设BPX getprivateprofilestringa 0137:00409947 PUSH 004721E4 0137:0040994C PUSH 004721D4 0137:00409951 CALL [KERNEL32!GetPrivateProfileStringA] <===在此处被WinIce拦截 0137:00409957 TEST EAX,EAX 0137:00409959 JLE 0040997C <===正确读取则跳转 0137:0040995B CMP DWORD PTR [0047324C],0000265A 0137:00409965 JNZ 0040997C <===不相等则跳转 0137:00409967 LEA EAX,[ESP+04] 修改第二个跳转: find : 5A 26 00 00 75 15 edit : -- -- -- -- 74 -- (2)修改注册: 设bpx getwindowtexta 在注册栏内输入名字和任意的注册号码。 按Register钮。 被WinIce拦截,再用BD * 把拦中断的功能关掉 然后连按4下F12,你会见到如下一段程序: 0137:00402317 PUSH 01 0137:00402319 CALL 0043D478 <==读取名字和注册码 0137:0040231E PUSH 0047211C <==按4下F12后这是你当前的位置 0137:00402323 MOV EAX,[ESI+64] 0137:00402326 PUSH EAX 0137:00402327 MOV EDI,[KERNEL32!WritePrivateProfileStringA] 0137:0040232D PUSH 004721E4 0137:00402332 PUSH 004721D4 0137:00402337 CALL EDI <==将注册名字写入到ZBServer.ini文件的Registration段 0137:00402339 MOV ECX,[ESI+60] 0137:0040233C MOV EAX,[ESI+5C] 0137:0040233F LEA EDX,[ESP+08] 0137:00402343 PUSH ECX 0137:00402344 PUSH EAX 0137:00402345 PUSH 0047234C 0137:0040234A PUSH EDX 0137:0040234B CALL 00426A50 0137:00402350 LEA ECX,[ESP+18] 0137:00402354 ADD ESP,10 0137:00402357 PUSH 0047211C 0137:0040235C PUSH ECX 0137:0040235D PUSH 004721CC 0137:00402362 PUSH 004721D4 0137:00402367 CALL EDI <==将注册码写入到ZBServer.ini文件的Registration段 0137:00402369 CALL 0040E8F0 <==进行注册码计算 0137:0040236E CMP DWORD PTR [0047324C],0000265A <==比较计算结果是否正确 0137:00402378 PUSH 00 0137:0040237A JZ 00402393 <==如果相等则跳转 0137:0040237C PUSH 00472328 0137:00402381 MOV ECX,ESI 0137:00402383 PUSH 004722AC 0137:00402388 CALL 004472AD 修改上面所说的跳转: find : 26 00 00 6A 00 74 17 edit : -- -- -- -- -- 75 -- 注册成功,它提示你重新启动该程序,以或得最佳效果。 然后重新启动程序,一看,还是显示没有注册。 它又一次检查注册码与名字是否相符。 (3)程序启动的注册修改: 先来看看ZBServer.ini文件,有下面一段: [Registration] firstDate2=872919669 email=hambo@nenpub.szptt.net.cn name=Hambo.H organization=Shenzhen University regname=Hambo.H procode=451-3794672 可以看出程序将会读取这些信息,我们可以用bpx getprivateprovate来拦截, 但拦截到的点太多了,所以下面的方法就比较简单: 用Symbol Loader装入ZBS_pro.exe :s 0 l fffffff 'regname' Pattern found at 013F:004721E4 (004721E4) 设bpm 013F:004721E4 按CTRL-D继续.. 当被WinIce拦截到,按两次F12继续 0137:004111C4 CALL 0040E8F0 <==可以肯定这段程序是用来读去INI文件中的注册信息的 0137:004111C9 PUSH 004890F8 <==按两次F12后程序运行到此处 0137:004111CE CALL 00426AC0 <==把取得的注册信息进行运算 0137:004111D3 ADD ESP,04 0137:004111D6 CMP DWORD PTR [0047324C],0000265A <==进行比较 0137:004111E0 JNZ 00411219 <===不相等则跳转 0137:004111E2 PUSH 00473E80 0137:004111E7 CALL 00402720 所以进行以下修改: find : 5A 26 00 00 75 37 edit : -- -- -- -- 74 -- 到此为止,整个软件的注册完成,总共要修改三个地方。 -- Hambo.H E-mail: hambo@nenpub.szptt.net.cn ICQ: 2723066