Subject: [HC] leapftp 2.3a Date: Sun, 22 Mar 1998 17:04:44 GMT From: 张亿仁 <IMan@ms1.palmary.net.tw> To: post@hc.ml.org 又来灌水啦,炒炒冷饭....... <一> 摘要 software : leapftp 2.3 home page : http://www.leapware.com/leapftp file name : lftp23u.exe reg_name : yupie s/n : 214065-591433290 <二> 缘起 前几天才解出来2.2版就有人说2.3版出来了,顺手抓下来瞧瞧并没没有什麽改变,原先的注 册码还是可以用,上次只是把注册码解出来就算了,这次就仔细把它的编码研究了一下.倒 是程式的介面有些改进,工具列的图示做的很精致,还是彩色的,只是如果光看图示恐怕猜 不出它的作用吧? <叁> 执行情形 (1) 载入soft-ice後执行leapftp,进入程式後选择register,在user name填入yupie,S/N填入 填入1234567890,Ctrl-d进入soft-ice後下bpx hmemcpy指令,按F5重回到注册画面,按下确 定soft-ice,马上进入soft-ice. (2) bd *,按F12共13次出现错误画面. (3) 重覆1-2,这次按F12共12次,再来用F10去追. (4) 0137:004690E5 LEA EDX,[EBP-08] 0137:004690E8 MOV EAX,[EBX+000001DC] 0137:004690EE CALL 00421AE0 0137:004690F3 MOV EDX,[EBP-08] 0137:004690F6 MOV EAX,EBX 0137:004690F8 POP ECX 0137:004690F9 CALL 004691D0 ;这里跳跃就出现失败讯息 0137:004690FE TEST AL,AL 0137:00469100 JZ 00469164 同样在在0137:469100处改变旗标使其不做跳跃,结果出现注册成功的讯息,重新回到注册 画面注册,用F8切入004690F9. 0137:004691D0 PUSH EBP 0137:004691D1 MOV EBP,ESP 0137:004691D3 ADD ESP,-38 0137:004691D6 PUSH EBX 0137:004691D7 PUSH ESI 0137:004691D8 XOR EBX,EBX 0137:004691DA MOV [EBP-38],EBX 0137:004691DD MOV [EBP-14],EBX 0137:004691E0 MOV [EBP-08],ECX ;reg_no放入@(EBP-08) 0137:004691E3 MOV [EBP-04],EDX ;reg_name放入@(EBP-04) 0137:004691E6 MOV EAX,[EBP-04] 0137:004691E9 CALL 00403E24 ;可能是算注册码的地方 0137:004691EE MOV EAX,[EBP-08] ;@(EBP-08)=214065 0137:004691F1 CALL 00403E24 0137:004691F6 MOV EAX,[EBP+08] 0137:004691F9 CALL 00403E24 0137:004691FE XOR EAX,EAX 0137:00469200 PUSH EBP 0137:00469201 PUSH 0046935A 0137:00469206 PUSH DWORD PTR FS:[EAX] 0137:00469209 MOV FS:[EAX],ESP 0137:0046920C XOR EAX,EAX 0137:0046920E MOV [EBP-0E],EAX 0137:00469211 MOV [EBP-0A],AX 0137:00469215 MOV EAX,[EBP-04] 0137:00469218 CALL 00403C70 0137:0046921D MOV ESI,EAX 0137:0046921F TEST ESI,ESI 0137:00469221 JLE 00469260 0137:00469223 MOV EBX,00000001 0137:00469228 LEA EAX,[EBP-0E] ;这里就是计算注册码 0137:0046922B CALL 00405580 ;的地方,在追下去之前 0137:00469230 MOV EAX,[EBP-04] ;可以在softice里下" 0137:00469233 MOVZX EAX,BYTE PTR [EBX+EAX-01] ;wf"指令,观察80X87 0137:00469238 IMUL EBX ;里的暂存器数值,跳出 0137:0046923A MOV EDX,EAX ;这个回圈时,请先记住 0137:0046923C SHL EAX,04 ;st(0)里数值 0137:0046923F SUB EAX,EDX ; 0137:00469241 MOV [EBP-18],EAX ; 0137:00469244 FILD DWORD PTR [EBP-18] ; 0137:00469247 FADDP ST(1),ST ; 0137:00469249 LEA EAX,[EBX*4+EBX] ; 0137:0046924C MOV [EBP-1C],EAX ; 0137:0046924F FILD DWORD PTR [EBP-1C] ; 0137:00469252 FADDP ST(1),ST ; 0137:00469254 LEA EAX,[EBP-0E] ; 0137:00469257 CALL 004055B0 ; 0137:0046925C INC EBX ; 0137:0046925D DEC ESI ; 0137:0046925E JNZ 00469228 ; 0137:00469260 MOV EAX,[EBP+08] ; 0137:00469263 CALL 004073DC 0137:00469268 MOV [EBP-18],EAX 0137:0046926B FILD DWORD PTR [EBP-18] 0137:0046926E FSTP REAL10 PTR [EBP-28] 0137:00469271 WAIT 0137:00469272 LEA EAX,[EBP-0E] 0137:00469275 CALL 00405580 0137:0046927A FSTP REAL10 PTR [EBP-34] ;上面求出的数字放入 0137:0046927D WAIT ;st(0) 0137:0046927E LEA EAX,[EBP-0E] 0137:00469281 CALL 00405580 0137:00469286 FLD REAL10 PTR [EBP-34] ;上面求出的数字在这 0137:00469289 FMULP ST(1),ST ;里平方,加上214065就 0137:0046928B FLD REAL10 PTR [EBP-28] ;是注册码 0137:0046928E FADDP ST(1),ST ; 0137:00469290 LEA EAX,[EBP-0E] ..... 0137:004692C3 MOV EDX,00000001 0137:004692C8 MOV EAX,[EBP-08] 0137:004692CB CALL 00403E74 0137:004692D0 MOV EAX,[EBP-38] 0137:004692D3 MOV EDX,[EBP+08] 0137:004692D6 CALL 00403D80 0137:004692DB JNZ 00469325 ..... 0137:00469325 XOR EBX,EBX 0137:00469327 XOR EAX,EAX 0137:00469329 POP EDX 0137:0046932A POP ECX 0137:0046932B POP ECX 0137:0046932C MOV FS:[EAX],EDX 0137:0046932F PUSH 00469361 0137:00469334 LEA EAX,[EBP-38] 0137:00469337 CALL 004039F4 0137:0046933C LEA EAX,[EBP-14] ;@(EBP-14)=591433290 0137:0046933F CALL 004039F4 (5) 回到注册画面用yupie/214065-591433290完成注册. <四> 结论 注册码的计算方式如下: 先将你的reg_name转换成ascii code,例如以crack为例. c=99, r=114, a=97, c=99, k=107 1. c = ( 99*1*16- 99*1)+ 5 = 1490 2. r = (114*2*16-114*2)+10 = 3430 3. a = ( 97*3*16- 97*3)+15 = 4380 4. c = ( 99*4*16- 99*4)+20 = 5960 5. k = (107*5*16-107*5)+25 = 8050 ------------------------------------ 23310 x 23310 ------------------------------------ 543356100 + 214065 ------------------------------------ 214065-543570165 一时心血来潮用qbasic写了个注册机,程式也不大编译完竟然有8K!所以就没附上来, 有兴趣的人私下留信给我,嗯,我要想想怎麽会这麽大...... P.S. 感谢Ethan Liu传授编译*.bas的方法.另外有人在追PMMalil98吗?我只找到注册 码的正确形式,比对点还没找到. -- 如欲取消订阅, 请 mailto:req@hc.ml.org , 内文写上 unsubscribe hc 即可, 谢谢.