heing 发表于 2010-5-8 20:14

带壳追码和简单算法分析(附录像)

本帖最后由 heing 于 2010-5-8 22:02 编辑

【文章标题】: 带壳追码和简单算法分析(附录像)
【文章作者】: heing
【软件名称】: 文件夹加密大师3000钛金版
【下载地址】: 自己搜索下载
【加壳方式】: 无stolen code
【保护方式】: ASProtect 2.0x Registered -> Alexey Solo
【编写语言】: delphi
【使用工具】: OD
【操作平台】: xp
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
昨天看到52论坛上有位仁兄发,“文件夹加密大师3000钛金版”的追码教程,原文的地址是http://www.52pojie.cn/thread-40543-1-1.html。
我于是在网上下了这软件,自己来分析写个教程。我发现这个软件在防破解方面还是很弱的,仅仅是依靠壳来保护,虽然IAT加了密,但是带壳调试,发现却很好破解。
本人对IAT加密知之甚少,只能找到OEP处,不知道如果修复,本人只是个菜鸟!
我下面写用顺序是逆向,请注意看!!!
先打开软件,看看软件的注册机制,发现是有几个输入框,你会以为很难找到算法吧!呵呵~

方法利用F12堆栈法,找到这个两个出现错误的CALL

00467245   50                  push eax
00467246   E8 5504FAFF         call folderlo.004076A0          ; 错误提示
0046724B   8945 F8             mov dword ptr ss:,eax
*************************************************************************************************
004D8CCB   8B00                mov eax,dword ptr ds:
004D8CCD   E8 8EE4F8FF         call folderlo.00467160          ; ????调用错误提示框
004D8CD2   EB 6D               jmp short folderlo.004D8D41
*************************************************************************************************
004D8C9F   E8 D401FFFF         call folderlo.004C8E78          ; 算法CALL
004D8CA4   84C0                test al,al
004D8CA6   75 2C               jnz short folderlo.004D8CD4   ; 如果这个跳了的话,就注册成功了
*************************************************************************************************
004C8E87   894D F8             mov dword ptr ss:,ecx    ; 取公司名
004C8E8A   8955 FC             mov dword ptr ss:,edx    ; 取注册名   (这是F7进入算法CALL的代码)
004C8E8D   8BD8                mov ebx,eax
004C8E8F   8B45 FC             mov eax,dword ptr ss:
004C8E92   E8 71BDF3FF         call folderlo.00404C08
004C8E97   8B45 F8             mov eax,dword ptr ss:
004C8E9A   E8 69BDF3FF         call folderlo.00404C08
004C8E9F   8B45 08             mov eax,dword ptr ss:
004C8EA2   E8 61BDF3FF         call folderlo.00404C08
004C8EA7   33C0                xor eax,eax
004C8EA9   55                  push ebp
004C8EAA   68 628F4C00         push folderlo.004C8F62
004C8EAF   64:FF30             push dword ptr fs:
004C8EB2   64:8920             mov dword ptr fs:,esp
004C8EB5   8B45 FC             mov eax,dword ptr ss:    ; 注册名
004C8EB8   E8 63BBF3FF         call folderlo.00404A20
004C8EBD   3B43 4C             cmp eax,dword ptr ds:
004C8EC0   7F 19               jg short folderlo.004C8EDB      ; 没有跳,跳的话就提示错误了
***************************************************************************************************
004C8EFD   E8 46FBFFFF         call folderlo.004C8A48          ; 出真注册码CALL      (说明这里是真正的算法CALL)
004C8F02   8B45 F0             mov eax,dword ptr ss:   ; 这下面就出现真码了
004C8F05   8B55 08             mov edx,dword ptr ss:
004C8F08   E8 5FFCF3FF         call folderlo.00408B6C          ; 这个CALL是比较真假注册码的(我的注册码是02B77CA77C)
004C8F0D   85C0                test eax,eax
004C8F0F   74 04               je short folderlo.004C8F15      ; 没有跳哦
***************************************************************************************************

返回到下面的代码
***************************************************************************************************
004D8C9F   E8 D401FFFF         call folderlo.004C8E78          ; 算法CALL
004D8CA4   84C0                test al,al
004D8CA6   75 2C               jnz short folderlo.004D8CD4   ; 如果这个跳了的话,就注册成功了
004D8CA8   8D45 FC             lea eax,dword ptr ss:
004D8CAB   BA 7C8D4D00         mov edx,folderlo.004D8D7C
004D8CB0   E8 4BBBF2FF         call folderlo.00404800
004D8CB5   6A 40               push 40
004D8CB7   8B45 FC             mov eax,dword ptr ss:
004D8CBA   E8 59BFF2FF         call folderlo.00404C18
004D8CBF   8BD0                mov edx,eax
004D8CC1   B9 AC8D4D00         mov ecx,folderlo.004D8DAC
004D8CC6   A1 98814E00         mov eax,dword ptr ds:
004D8CCB   8B00                mov eax,dword ptr ds:
004D8CCD   E8 8EE4F8FF         call folderlo.00467160          ; ????调用错误提示框
004D8CD2   EB 6D               jmp short folderlo.004D8D41
004D8CD4   68 C08D4D00         push folderlo.004D8DC0
004D8CD9   8BB3 00030000       mov esi,dword ptr ds:
004D8CD2    /EB 6D               jmp short folderlo.004D8D41
004D8CD4    |68 C08D4D00         push folderlo.004D8DC0
004D8CD9    |8BB3 00030000       mov esi,dword ptr ds:
004D8CDF    |FF76 48             push dword ptr ds:
004D8CE2    |68 EC8D4D00         push folderlo.004D8DEC
004D8CE7    |68 F88D4D00         push folderlo.004D8DF8
004D8CEC    |FF76 54             push dword ptr ds:
004D8CEF    |68 EC8D4D00         push folderlo.004D8DEC
004D8CF4    |68 0C8E4D00         push folderlo.004D8E0C
004D8CF9    |68 208E4D00         push folderlo.004D8E20          ; ASCII "WSXC687423-"       (发现了什么???) 注册码的一部分???
*************************************************************************************************************************************

简单写一下注册码的算法分析(注册码=F(机器码+注册名))

这上面是部分代码,下面有附带录像,初次搞的录像教程,由于录像软件用的是免安装的,OD调试的时候有冲突。(录像中含有简单的算法分析)

录像的下载地址是:
1.   http://www.99pan.com/Invite?uid=104403   
2.   http://down.qiannao.com/space/file/hotwu/share/2010/5/8/-6559-7a0b.rar/.page            
不足之处,请大家谅解。大鸟直接飘过~~

--------------------------------------------------------------------------------
【经验总结】
一般强壳都会用硬件断点,我这个只用了一般的断点。先运行程序,再激活断点,按了后就能断下来!

--------------------------------------------------------------------------------
【版权声明】: 本文原创于heing, 转载请注明作者并保持文章的完整, 谢谢!
                                                       2010年05月08日 18:50:31

scorpiolxd 发表于 2010-5-8 20:20

我是来抢沙发的。虽然看不懂,但我是来膜拜大大的

k92002 发表于 2010-5-8 20:29

:)eee建议用51的盘

nituixian 发表于 2010-5-8 20:38

太强悍了 支持一个!我们要好好的学习下啊!

安东 发表于 2010-5-8 20:44

顶一个,强

long5866153 发表于 2010-5-8 20:53

似曾相识,貌似在哪儿看到过~~

依旧 发表于 2010-5-8 21:27

看不懂哦:sleepy:

showmetoo 发表于 2010-5-8 21:34

帮楼主顶一下

gry8686 发表于 2010-5-8 22:04

支持楼主的分享

331333 发表于 2010-5-8 22:10

真看不懂这类是什么东西。郁闷。。。
页: [1] 2
查看完整版本: 带壳追码和简单算法分析(附录像)