好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 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:[ebp-8],eax
*************************************************************************************************
004D8CCB 8B00 mov eax,dword ptr ds:[eax]
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:[ebp-8],ecx ; 取公司名
004C8E8A 8955 FC mov dword ptr ss:[ebp-4],edx ; 取注册名 (这是F7进入算法CALL的代码)
004C8E8D 8BD8 mov ebx,eax
004C8E8F 8B45 FC mov eax,dword ptr ss:[ebp-4]
004C8E92 E8 71BDF3FF call folderlo.00404C08
004C8E97 8B45 F8 mov eax,dword ptr ss:[ebp-8]
004C8E9A E8 69BDF3FF call folderlo.00404C08
004C8E9F 8B45 08 mov eax,dword ptr ss:[ebp+8]
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:[eax]
004C8EB2 64:8920 mov dword ptr fs:[eax],esp
004C8EB5 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 注册名
004C8EB8 E8 63BBF3FF call folderlo.00404A20
004C8EBD 3B43 4C cmp eax,dword ptr ds:[ebx+4C]
004C8EC0 7F 19 jg short folderlo.004C8EDB ; 没有跳,跳的话就提示错误了
***************************************************************************************************
004C8EFD E8 46FBFFFF call folderlo.004C8A48 ; 出真注册码CALL (说明这里是真正的算法CALL)
004C8F02 8B45 F0 mov eax,dword ptr ss:[ebp-10] ; 这下面就出现真码了
004C8F05 8B55 08 mov edx,dword ptr ss:[ebp+8]
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:[ebp-4]
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:[ebp-4]
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:[4E8198]
004D8CCB 8B00 mov eax,dword ptr ds:[eax]
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:[ebx+300]
004D8CD2 /EB 6D jmp short folderlo.004D8D41
004D8CD4 |68 C08D4D00 push folderlo.004D8DC0
004D8CD9 |8BB3 00030000 mov esi,dword ptr ds:[ebx+300]
004D8CDF |FF76 48 push dword ptr ds:[esi+48]
004D8CE2 |68 EC8D4D00 push folderlo.004D8DEC
004D8CE7 |68 F88D4D00 push folderlo.004D8DF8
004D8CEC |FF76 54 push dword ptr ds:[esi+54]
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 |
-
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|