分析破解数字五笔3.0
软件简介:这是一个五笔输入法,提供汉字的五笔输入。 软件下载:http://www.szwb.com 破解工具:TRW 2000 破解过程: 首先要注意的是,因为某些程序的特殊性,TRW并不能够直接载入这些程序然后再进行跟踪。但TRW并不是一定要载入程序才能够跟踪该程序。这个事例就是这样的。 (1)先运行TRW,然后运行数字五笔,提示注册是,填入注册码“12345678”(先随便填)。 (2)按下CTR+N回到TRW中。在命令行, 输入:bpx hmemcpy 回车 (用内存拷贝函数给它下断点。) 按下:CTR+N (返回数字五笔3.0注册提示框,进行跟踪函数的调用) (4)按下注册面版“OK”键。 在命令行, 输入:bd 回车 (禁止断点) 然后按F10单步从第一条执行起。(这里不能用pmodule命令直接跳到数字五笔3.0程序的领空,是因为开始时我们并不是直接载入数字五笔3.0,然后再进行跟踪的。) (5)来到SZWB程序领空后,大家会看到一段如下的汇篇代码: 017F:014E6E0B 8D542428 LEA EDX,[ESP+28] (把你填入的注册码放到寄存器DX中) 017F:014E6E0F 52 PUSH EDX (放入栈中) 017F:014E6E10 E8238A0000 CALL 014EF838 017F:014E6E15 8B0D08A74F01 MOV ECX,[014FA708] (把你的机器码放到放到寄存器CX中) 017F:014E6E1B A30CA74F01 MOV [014FA70C],EAX 017F:014E6E20 351A968DE5 XOR EAX,E58D961A (把填入的注册码与常数A进行异或运算) 017F:014E6E25 81F1F4EDDCAE XOR ECX,AEDCEDF4 (把你的机器码与常数B进行异或运算) 017F:014E6E2B 83C404 ADD ESP,BYTE +04 017F:014E6E2E 3BC1 CMP EAX,ECX (比较两个表达式的值,来做判断条件) 017F:014E6E30 0F85C4000000 JNZ NEAR 014E6EFA (相同则不跳) 017F:014E6E36 6A00 PUSH BYTE +00 017F:014E6E38 68748E4F01 PUSH DWORD 014F8E74 017F:014E6E3D 68608E4F01 PUSH DWORD 014F8E60 017F:014E6E42 6A00 PUSH BYTE +00 到这里,大家因该知道注册码了吧! 我的机器码是:-1547960322;通过运算得到的注册码是:3907683344。 本人用VC写的注册机源代码如下: #include <iostream.h> void main() { unsigned long int a,b,c; b=1263631342; cout<<"请输入你的机器码! "<<endl; cin>>a; c=b^a; cout<<"你的注册码是:"<<c<<endl; cout<<"谢谢使用 !"<<'\n'<<endl; } 菜鸟之作,让高手见笑了! (这是作者第二次写破解文章,作者学破解时间也不长,不足处还望各位朋友给予指导和帮助, 在此,作者先先谢谢大家了!我的Emial:tianrongfeng@yahoo.com 我的QQ号码:32069691)
风尘(长沙) 2002年4月16日
|