您的位置:首页精文荟萃破解文章 → 超级电脑伴侣 1.14

超级电脑伴侣 1.14

时间:2004/10/15 1:03:00来源:本站整理作者:蓝点我要评论(0)

 





 








下载地址http://www.onlinedown.net/soft/2878.htm
工具:dede,peid,upx,ollydbg
平台:windows 2000 professional
声明:本文只作学习目的,如果需要此软件,请购买正版软件

最近好像ollydbg比较流行,softice有点被大家冷落了,:) 特别是由于windows2000的流行,hmemcpy断点的失效,使softice在2000下调试的难度更大了。其实,softice毕竟还是王牌级的工具。即时中断的功能,我觉得还是比ollydbg强的。本文介绍一下动态跟踪幻影,取得其注册码的思路。

不太喜欢爆破,所以,这篇破文还采用动态分析,来取得软件的注册码。

还是用peid检测一下,呵呵,是upx加的壳。用upx shell脱了壳。观察窗口的类名,得知程序是delphi编的。那当然得请出dede了,哈哈!打开注册窗口,此软件是采用机器码+用户名+注册码的方式注册的,机器码已经生成。打开注册窗口,用winsight得知这个窗口的类名是TfrmReg。呵呵,T开头的类名,97%是delphi的程序了,:)。用dede打开脱壳后的程序。找到这个窗口的代码Regform单元,查看它的button2click事件代码,也就是按下确定按钮时执行的代码,至于确定按钮为什么是button2,而不是button1,button3,其实很简单的,看dfm的坐标就可以了,不过,我是直接看了三个button的代码,一下就看出来,哪个是判断注册码的按钮了,呵呵。

这个时间的汇编代码如下,dede反编译的真整齐!整个过程不长,我就全贴出来吧。

* Reference to control edRegCode : TEdit
|
004D5A45 8B8320030000 mov eax, [ebx+$0320]

* Reference to: controls.TControl.GetText(TControl):System.String;
|
004D5A4B E8E44BF9FF call 0046A634 //delphi中vcl类的取控件文本方法,从TControl继承
004D5A50 8B45FC mov eax, [ebp-$04] //取得输入的假注册码
004D5A53 50 push eax
004D5A54 8D55F4 lea edx, [ebp-$0C]

* Reference to control edRegID : TEdit
|
004D5A57 8B831C030000 mov eax, [ebx+$031C]

* Reference to: controls.TControl.GetText(TControl):System.String;
|
004D5A5D E8D24BF9FF call 0046A634
004D5A62 8B45F4 mov eax, [ebp-$0C] //取得生成的机器码
004D5A65 50 push eax
004D5A66 8D55F0 lea edx, [ebp-$10]

* Reference to control edRegName : TEdit
|
004D5A69 8B8318030000 mov eax, [ebx+$0318]

* Reference to: controls.TControl.GetText(TControl):System.String;
|
004D5A6F E8C04BF9FF call 0046A634
004D5A74 8B45F0 mov eax, [ebp-$10] //取得注册名称
004D5A77 8D4DF8 lea ecx, [ebp-$08]
004D5A7A 5A pop edx

* Reference to : TfrmReg._PROC_004D51CC()
|
004D5A7B E84CF7FFFF call 004D51CC //根据机器码和注册名生成真正的注册码
004D5A80 8B55F8 mov edx, [ebp-$08] //edx中存放真正的注册码
004D5A83 58 pop eax //将假注册码取出来

* Reference to: system.@LStrCmp;
|
004D5A84 E8BBF2F2FF call 00404D44 //比较之
004D5A89 0F8515010000 jnz 004D5BA4 //不等的话,就去见鬼吧,:)
004D5A8F B201 mov dl, $01
004D5A91 A10CC34300 mov eax, dword ptr [$0043C30C]

|
004D5A96 E87169F6FF call 0043C40C
004D5A9B 8BF0 mov esi, eax
004D5A9D BA02000080 mov edx, $80000002
004D5AA2 8BC6 mov eax, esi

* Reference to: registry.TRegistry.SetRootKey(TRegistry;Windows.HKEY);
|
004D5AA4 E8036AF6FF call 0043C4AC
004D5AA9 B101 mov cl, $01

* Possible String Reference to: 'SOFTWARE\Super Computer Companion'
|
004D5AAB BA2C5C4D00 mov edx, $004D5C2C
004D5AB0 8BC6 mov eax, esi

...............
...........

004D5B6A 687C5C4D00 push $004D5C7C
004D5B6F 6A00 push $00
004D5B71 6A01 push $01
004D5B73 6A00 push $00
004D5B75 6A00 push $00
004D5B77 8D55E0 lea edx, [ebp-$20]
004D5B7A A1087F5000 mov eax, dword ptr [$00507F08]
004D5B7F 8B00 mov eax, [eax]

* Reference to : TApplication._PROC_0048A164()
|
004D5B81 E8DE45FBFF call 0048A164
004D5B86 8D45E0 lea eax, [ebp-$20]

* Possible String Reference to: '-注册成功'
|
004D5B89 BA8C5C4D00 mov edx, $004D5C8C

* Reference to: system.@LStrCat;
|
004D5B8E E86DF0F2FF call 00404C00
004D5B93 8B55E0 mov edx, [ebp-$20]
004D5B96 33C9 xor ecx, ecx

* Possible String Reference to: ' 感谢你对超级电脑伴侣的支持!希?
|
004D5B98 B8A05C4D00 mov eax, $004D5CA0

|
004D5B9D E86651FFFF call 004CAD08
004D5BA2 EB38 jmp 004D5BDC

* Possible String Reference to: '确定'
|
004D5BA4 687C5C4D00 push $004D5C7C //注册码不对时,跳到这
004D5BA9 6A00 push $00 //下面将弹出一个窗口,提示错误
004D5BAB 6A01 push $01 //可不是简单的messagebox哦,:)
004D5BAD 6A00 push $00
004D5BAF 6A00 push $00
004D5BB1 8D55DC lea edx, [ebp-$24]
004D5BB4 A1087F5000 mov eax, dword ptr [$00507F08]
004D5BB9 8B00 mov eax, [eax]

* Reference to : TApplication._PROC_0048A164()
|
004D5BBB E8A445FBFF call 0048A164
004D5BC0 8D45DC lea eax, [ebp-$24]

* Possible String Reference to: '-输入错误'
|
004D5BC3 BAE85C4D00 mov edx, $004D5CE8

* Reference to: system.@LStrCat;
|
004D5BC8 E833F0F2FF call 00404C00
004D5BCD 8B55DC mov edx, [ebp-$24]
004D5BD0 33C9 xor ecx, ecx

* Possible String Reference to: ' 注册码错误,请重新输入注册码!'
|
004D5BD2 B8FC5C4D00 mov eax, $004D5CFC
004D5BD7 E82C51FFFF call 004CAD08
004D5BDC 33C0 xor eax, eax
004D5BDE 5A pop edx
004D5BDF 59 pop ecx
004D5BE0 59 pop ecx
004D5BE1 648910 mov fs:[eax], edx

用ollydbg加载程序,随便输入一个密码,34343434,注册名cby,在004D5A4B 处下断点,点击确定,程序被拦下来了,边单步执行,边分析。分析结果,看上面。执行到004D5A80 时,d ecx 就可以看到可爱的注册码了。我的机器上是SCC-1273319695192326899922242331022116027104。如果要知道注册码的算法,到004D5A7B 跟进去,分析就可以了。
由于这个程序是delphi编的,而且错误提示不采用messgebox,又是在2000下调试,如果不对症下药,用dede调试,将麻烦不少。

ollydbg还是个好东西哦,好好利用吧~~~

written by coolbaby
2003-06
http://coolbaby.delphibbs.com

    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程