- UID
- 36360
注册时间2007-11-2
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
破解过程 :
首先用PEID查一下,发现有壳,是ASPPACK 2.12版本的。
用WASPACK 2.12脱一下壳,好了,壳没有了。Borland Delphi 4.0 - 5.0
这样脱壳是比较简单的,因为知道是什么壳。
如果不知道的话,我们还可以用OD来脱壳。
用OD打开程序,发现在ESP和EIP都是红色的,这让我们接着想到
了ESP定律,不妨用一下看看。
在命令行里:dd 0012ffc4,回车,然后在数字下点右键---
断点----硬件访问----字。
然后按F9执行到断点,看是不是找到OEP了。然后我们在这儿脱
壳,用OD脱壳。然后另存。试一下打开,报错误。没有关系,我
们修复一下。用ImportREC修复,完成后,再用PEID查下,看没
有壳了吧!Borland Delphi 4.0 - 5.0
下面我们注册一下看看。
注册信息是:
用户机器码:ACE2-C1F0
用户注册码:zxqhang
用我的常用名吧,呵呵。。。。
提示出错了,
'zxqhang' is not a valid integer value.
所以从这儿看出,我输入的zxqhang 是无效的。
重新输入一下,
数字:123456789
出现:“注册码不正确,无法注册。”
打开W32DASM8.93+
在串中找到上面的错误信息
双击,从中找到代码行。做个标记。
然后再多次双击,发现只有这一处用到。
向上滚动代码行,找到关键JUMP
代码如下:
:00567A9A B8C4CAA7B0 mov eax, B0A7CAC4
:00567A9F DCA3A1000053 fsub qword ptr [ebx+530000A1]
:00567AA5 8BD8 mov ebx, eax
:00567AA7 8BC3 mov eax, ebx
:00567AA9 E812CCFFFF call 005646C0
:00567AAE 84C0 test al, al
:00567AB0 7409 je 00567ABB
:00567AB2 8BC3 mov eax, ebx
:00567AB4 E84FC9FFFF call 00564408
:00567AB9 5B pop ebx
:00567ABA C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00567AB0(C)
|
:00567ABB 6A20 push 00000020
* Possible StringData Ref from Data Obj ->"信息提示"
|
:00567ABD B9D87A5600 mov ecx, 00567AD8
* Possible StringData Ref from Data Obj ->"注册码不正确,无法注册"
|
:00567AC2 BAE47A5600 mov edx, 00567AE4
:00567AC7 A1CC715700 mov eax, dword ptr [005771CC]
:00567ACC 8B00 mov eax, dword ptr [eax]
:00567ACE E8B9F1EEFF call 00456C8C
:00567AD3 5B pop ebx
:00567AD4 C3 ret
我们来看je 00567abb这个关键跳转。其偏移地址为00167ab0
再用UEDIT32打开文件,找到这个地址
00167ab0: 74 09 8b .....
我们来爆破一下,74改为75另存。
然后打开软件,随便输入一组数字注册看看,“感谢您使用,注
册成功。” |
|