- UID
- 11427
注册时间2006-4-28
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 无聊 2024-1-10 08:09 |
---|
签到天数: 130 天 [LV.7]常住居民III
|
★1. W32dsm
★2. Ollydbg
★3. language2000 4.51
当然了破解光有工具不行还要有破解的目标,我第一次破解的目标是:
★美达工资管理专家 V1.10
★下载地址:http://www.skycn.com/soft/17818.html
好了,现在开始我的第一次破解之旅!
俗话说要想百战不殆,就要知己知彼,所以我先看看这个软件有没有加壳,拿出查壳的工具language2000并运行,打开找到目标文件,结果出来了,没有加壳,这可是是我兴奋的结果呀,因为是第一次破解,我不希望以上来就是加壳的。幸好没有加壳。我的第一步查壳就完成了,下面是第二步,反汇编,现在用到W32dsm,运行W32dsm,加载美达工资管理专家原文件(即你的这个文件的安装目录下的SalarMan文件),等待……加载完毕,点击参考串式参考,再弹出来的对话框里找到注册错误或是正确的那句话(即系统注册失败,请检查注册是否有误或统注册成功,欢迎你使用本软件),双击它,我们就来到了这里:
* Possible StringData Ref from Code Obj ->"RegCode"
|
:005DF041 BA78F15D00 mov edx, 005DF178
:005DF046 8BC3 mov eax, ebx
:005DF048 E8EF44E9FF call 0047353C
:005DF04D 8BC3 mov eax, ebx
:005DF04F E8D84BE2FF call 00403C2C
:005DF054 6A00 push 00000000
* Possible StringData Ref from Code Obj ->"系统注册成功,欢迎你使用本软件!"
|
:005DF056 6880F15D00 push 005DF180
* Reference To: PunUnitLib.ShowMess, Ord:0000h
………………省略了一点代码。 |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005DEF91(C)
|
:005DF095 6A03 push 00000003
* Possible StringData Ref from Code Obj ->"系统注册失败,请检查注册是否有误!"
|
:005DF097 68A4F15D00 push 005DF1A4
………………下面省略.
这里就是那个讨厌的出错对话框,看看他从哪里来的?我顺着这里向上看,在不远处看到了这个!
:005DEF5B E82813FFFF Call 005D0288
:005DEF60 8BD0 mov edx, eax
:005DEF62 8D45F8 lea eax, dword ptr [ebp-08]
:005DEF65 E8825DE2FF call 00404CEC
:005DEF6A 8D55DC lea edx, dword ptr [ebp-24]
:005DEF6D 8B45FC mov eax, dword ptr [ebp-04]
:005DEF70 8B80FC020000 mov eax, dword ptr [eax+000002FC]
:005DEF76 E8D500E7FF call 0044F050
:005DEF7B 8B45DC mov eax, dword ptr [ebp-24]
:005DEF7E 8D55E0 lea edx, dword ptr [ebp-20]
:005DEF81 E876A7E2FF call 004096FC
:005DEF86 8B45E0 mov eax, dword ptr [ebp-20]
:005DEF89 8B55F8 mov edx, dword ptr [ebp-08]
:005DEF8C E8675FE2FF call 00404EF8 这个call不知道是不是计算注册码的那个call
: 005DEF91 0F85FE000000 jne 005DF095 从这里跳到出错的地方!
:005DEF97 33C0 xor eax, eax
:005DEF99 55 push ebp
:005DEF9A 6881F05D00 push 005DF081
:005DEF9F 64FF30 push dword ptr fs:[eax]
:005DEFA2 648920 mov dword ptr fs:[eax], esp
:005DEFA5 B201 mov dl, 01
:005DEFA7 A114304700 mov eax, dword ptr [00473014]
:005DEFAC E8CF41E9FF call 00473180
:005DEFB1 8BD8 mov ebx, eax
:005DEFB3 BA02000080 mov edx, 80000002
:005DEFB8 8BC3 mov eax, ebx
:005DEFBA E89D42E9FF call 0047325C
:005DEFBF B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"software\meida\salary" 好像是写入注册表
|
:005DEFC1 8B15EC956100 mov edx, dword ptr [006195EC]
:005DEFC7 8BC3 mov eax, ebx
:005DEFC9 E8D243E9FF call 004733A0
:005DEFCE 8D55D8 lea edx, dword ptr [ebp-28]
:005DEFD1 8B45FC mov eax, dword ptr [ebp-04]
:005DEFD4 8B800C030000 mov eax, dword ptr [eax+0000030C]
:005DEFDA E87100E7FF call 0044F050
:005DEFDF 8B4DD8 mov ecx, dword ptr [ebp-28]
看到这里我想大家都知道怎么改了,就是把这个软件用Hex Workshop 打开,在里面找到0F85FE000000(我建议向上或是向下多找几个字符,这样可以保证准确率!),因为这篇文章是动静结合来找到注册码,所以那种方法我就不仔细介绍了。上面我是用静态来分析的这个软件,并且找到了它的关键跳转005DEF91 0F85FE000000 jne 005DF095,下面我来用动态的分析找到注册码。
运行Ollydbg,加载程序,等待……(这时你可以去,喝口咖啡!)好,加载完毕了,找到那个关进跳转前的005DEF91,在这里下断点或是直接按F2,现在运行程序,点注册按钮,这是出现了注册的对话框,不要别她吓住,在里面添入我的名字,下面的注册码窗口添入我的生年,这是Ollydbg把程序给断下来了,在右下角的窗口里看看是不是有你输入的假注册码,在看看他的下面是不是由我的名字对应的正确的注册码。
破解总结:我的第一次破解就这样完了,感觉很爽,自己没有白看好几个星期的破解文章,以后我的学习目标是找到注册码,写出注册机,这样才是一个和给的cracker。最后,说明我写这篇文章的目的是大家一起讨论破解技术,希望大家支持正版软件! |
|