呵呵,听说HC上WWW罗!另外又听说NC的原始码公布出来了? 以下是昨晚的成果.......... <一> 摘要 software : news monger 1.4.5 home page : http://www.techsmith.com file name : nmonger.exe reg_name : yupie reg_no : 47291165199803 <二> 缘起 这是一个能帮你在news group搜寻资讯的应用程式,你可以设定一个主题让它去news server上找出寻所有相关的post,尤其有些news group上的post多的吓死人,而又不是每篇 你都感兴趣,这时候就用的到它啦.当然在网路上也有许多主机也有相同的功能像是GAIS, DJ News等.整个介面设计的相当好,让人看得很舒服,操作也很简单很容易就能学会基本功 能.你有四十五天的试用期,过期时只会出现恼人的提醒注册画面. <叁> 执行情形 (1) 载入soft-ice後执行news monger,马上出现注册画面,选择register monger/regstration form,在name处填入yupie其它地方不填按下ok,选择help/register 填入1234567890,Ctrl-d进入soft-ice後下bpx getdlgitemtexta指令,按F5回到注册画面, 按下OK,马上进入soft-ice. (2) bd *,按F11回到原先呼叫处,再按F12共2次後出现错误画面. (3) 重覆1-2,这次按F12共1次,再来用F10去追. (4) 0137:0042EFE0 MOV EBP,EAX ;比对输入reg_no长度若跳到 0137:0042EFE2 CMP EBP,0E ;0042F101就注册失败,故重新 0137:0042EFE5 JB 0042F101 ;将reg_no改成12345678901234 0137:0042EFEB PUSH 0048D078 0137:0042EFF0 PUSH EBX 0137:0042EFF1 CALL 00436530 ....中间省略 0137:0042F033 CALL 00448B65 0137:0042F038 PUSH EAX 0137:0042F039 MOV ECX,ESI 0137:0042F03B CALL 0040FA50 0137:0042F040 PUSH FF 0137:0042F042 MOV ECX,EBX 0137:0042F044 MOV EBP,EAX 0137:0042F046 CALL 00448BB4 ;这里就是关键点 0137:0042F04B TEST EBP,EBP ;如果跳到0042F101 0137:0042F04D JZ 0042F101 ;就会出现注册失败的画面 由於在执行过0137:0042F046後出现关键点,所以用F8切入里面瞧瞧,并未发现任何可疑处, 在看看上面EBP的值是在0137:0042F044处由EAX传来的,所以重新将中断点设在0137:0042 F03B,用F8切入. 再来就是耐心跟毅力,用F10慢慢分析了. 0137:0040FA50 SUB ESP,4C 0137:0040FA53 XOR EAX,EAX ...... 0137:0040FAB3 CALL 0042F3F0 0137:0040FAB8 ADD ESP,04 0137:0040FABB TEST EAX,EAX 0137:0040FABD JNZ 0040FAD5 ;跳跃到0040FAD5 ...... 0137:0040FAD5 LEA EAX,[ESP+0C] 0137:0040FAD9 PUSH 02 ...... 0137:0040FAF9 CALL 0042F400 0137:0040FAFE ADD ESP,0C 0137:0040FB01 TEST EAX,EAX 0137:0040FB03 JNZ 0040FB1D ;跳跃到0040FB1D ...... 0137:0040FB1D LEA ECX,[ESP+10] 0137:0040FB21 LEA EDX,[ESP+20] 0137:0040FB25 PUSH ECX 0137:0040FB26 PUSH EDX 0137:0040FB27 CALL 0042F4F0 ;就是这里 0137:0040FB2C ADD ESP,08 0137:0040FB2F NEG EAX 0137:0040FB31 SBB EAX,EAX 0137:0040FB33 POP EDI 0137:0040FB34 NEG EAX 0137:0040FB36 POP ESI 0137:0040FB37 ADD ESP,4C 0137:0040FB3A RET 0008 F8切入0137:0040FB27,为何是这里?一步一步追出来的! (^^) 0137:0042F4F0 SUB ESP,7C 0137:0042F4F3 XOR EAX,EAX ...... 0137:0042F5D8 MOV DL,[ESI+ESP+24] 0137:0042F5DC AND EAX,000000FF 0137:0042F5E1 AND EDX,0F 0137:0042F5E4 ADD ESP,04 0137:0042F5E7 MOVSX ECX,BYTE PTR [EDX+ESP+10] ;这里就是比对关键点啦 0137:0042F5EC CMP ECX,EAX ;ECX里的就正是注册码 0137:0042F5EE JNZ 0042F605 ; 0137:0042F5F0 ADD EDI,02 ; 0137:0042F5F3 CMP DI,10 ;判断是否已经 0137:0042F5F7 JB 0042F5C3 ;比对比对完毕 0137:0042F5F9 MOV EAX,00000001 0137:0042F5FE POP EDI 0137:0042F5FF POP ESI 0137:0042F600 POP EBX 0137:0042F601 ADD ESP,7C 0137:0042F604 RET (5) 由上面可以看出,在0137:0042F5EC处是个关键点,重新在此处设置中断点,并且在每次比对 完毕後(0137:0042F5EE)改变旗标使其不做跳跃,把ECX中数值的一个一个抄下就是我们在 找的注册码,你会发现实际上只有比对前8位数,後6位数似乎只是来产生注册码用的.所以 我把後6位数改成199803,当然你也可以换成任何你喜欢的数字像是382436(谁的叁围). *_* (6) 重新打开clipmate注册画面,填入yupie/47291165199803完成注册. <四> 结论 当初拿到这个软体时是想破解一些有时间限制的软体,用getsystemtime,getlocaltime等 去拦结果搞不出名堂,最後乱试一通才发现它要先填好register form後才能输入注册码, 所以就花了些时间把他给解决了,另外追这个程式也要有耐心,虽然它不是VB写的程式,但 追起来绝对不会比VB写的程式轻松,另外最近想解一些有时间的软体,但一直不得其门而入, 有人要传授几招吗?