网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 破解技术 > 文章  
系统安全系列之浅谈程序脱壳后的优化
文章来源: 赛迪网安全社区 文章作者: hackmaster 发布时间: 2007-01-30   字体: [ ]
 

  我们可以在 ImportREC 中看到新建输入表的大小是 18CH,根据区段的对齐粒度 1000H,我这里就选大小为 1000H,已经够用了。这里要留一点余量,有时脱一些壳修复时,余量留的过小则修复的输入表不完全,这时可以从文件中删除这个区段,再按 1000H 的对齐粒度新建一个大一点的区段,重新修复输入表。现在继续我们前面的话题,在区段编辑器中右键点击,选择添加区段菜单项,在弹出的对话框上进行设置。

  PETools 默认添加区段的名称是 .NewSH,为了便于识别这个段是用于存放输入表信息的,我们把名称选为 idata。其他的 RAW 数据及虚拟数据大小我们都填 1000,选择用 0x00 填充区段,现在点确定,一个新区段就添加进来了。

  我们可以看出 .idata 段的虚拟偏移是 13000,这肯定不正确,我们应该保证各个段的虚拟地址都是连续的。.text 段的虚拟偏移是 1000H,虚拟大小是 1000H,这样虚拟偏移+ 虚拟大小 = 1000H + 1000H = 2000H,可知下一个区段的虚拟偏移应该是 2000H。同样道理 RAW 偏移也应该是连续的,虽然有时候我们看到有类似这样的:第一个区段:RAW 偏移:400H,RAW 大小:1D0;第二个区段:RAW 偏移:600H,RAW 大小:1B8,这样看起来好像并不连续啊。因为 400 + 1D0 = 5D0,下一个区段应该从 5D0 开始才对。但如果你用16进制工具打开文件看一下就知道了。这种情况是文件粒度按 200H 对齐,区段中的实际数据没有 200,这里显示的只是实际的数据大小,剩下的按 200H 对齐的部分用 0x00 填充了。所以下一个区段还是按文件对齐粒度设置偏移的。同样,文件对齐粒度是其他数值时也存在这种情况。说了这么多,大家应该也明白了,编辑一下 .idata 的区段头,把虚拟偏移 13000 改成 2000。至于后面那个特征值为什么可以改成 C0000040,我就不多说了,在编辑区段的时候点一下特征值后面那个 ... 按钮,上面应该可以看到详细的说明。

  6、修正输入表

  现在我们的前期工作暂告一个段落,保存好我们的修改退出 PETools,现在轮到 ImportREC 上场了。你的 ImportREC 应该没关吧?我们把添加一个新的节前面的勾去掉,在新建输入表信息中 RVA 填 00002000(就是我们新建的那个 ,idata 段的偏移地址),点击修复转存文件,选择我们刚才修改的 dumped.exe 进行修复,得到 dumped_.exe。

  7、修正资源

  到这还有两个重要的事别忘了,一个是我们保存的那个数据段(data.bin)要放进程序里来,还有个就是资源还没有。现在我们先把资源弄出来。拿出 dREAMtHEATER 兄的 FixRes,选择我们原来备份的那个 dumped.exe,使用 FixRes 的 Dump 功能,把资源段按我们定义的 RVA Dump 出来。

  因为前面还有一个数据段 RVA 是 3000,大小是 1000,所以我们把新建资源段的 RVA 设为 4000。按上面那样设置好后我们就可以点击 Dump Resource 按钮来 Dump 资源了,文件被保存为 rsrc.bin。

  8、装配文件

  现在进入最后的装配工作了,用 LordPE 的 PE 编辑器打开 dumped_.exe,点击区段按钮,进入区段编辑功能中。

  现在我们要把磁盘上的 data.bin 和 rsrc.bin 都添加到程序中来,右键选择从磁盘载入段,按顺序添加 data.bin 和 rsrc.bin,添加好后改一下区段名和标志。

  现在退出区段编辑,点目录按钮,修正一下资源及其他的目录。在这个程序中输入表目录已经不需要我们再改了,我们要改的就是资源目录的 RVA 及大小,把其他没用到的目录 RVA 和 大小清零。我们再用一个 LordPE 的 PE 编辑器打开备份的 dumped.exe 文件来做参考。

  9、修正可选头及最终优化

  保存以上工作后关掉 LordPE,我们可以看到 dumped_.exe 的图标已经出来了,说明资源已经修复。现在再用 PETools 的 PE 编辑器打开 dumped_.exe(这里换 PETools 的原因是因为 PETools 编辑 PE 头的功能比较强),点击可选头按钮,进入可选头编辑器。现在主要要修改的就是代码基址和数据基址,代码基址一般就是第一个区段(我们这里是 .text 段)的 RVA,所以这里应该填 1000,数据基址一般指除了代码外的部分开始的 RVA,我们这里代码部分 RVA 是 1000,大小是 1000,加起来就知道除了代码外的数据 RVA 是 2000,就是我们第二个段 .idata 的 RVA。修改完这些内容后最后要纠正一下镜像大小,否则程序还是不能运行。

 
推荐文章
·不用返厂维修,实战破解交换机密
·破解高手常用的破解工具介绍
·经典 常见计算机密码破解实用手
·愚公移山 文档密码全面暴力破解
·解密宝典——十招教你学会软件破
·“猫和老鼠”的较量 软件破解大
 

 
共4页: 上一页 [1] [2] 3 [4] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·破解QQ密码保护的方法
·USB软件狗的设计及反破
·软件狗[Dongles]的加密
·经典 常见计算机密码破
·破解高手常用的破解工具
·愚公移山 文档密码全面
·解密宝典——十招教你学
·“猫和老鼠”的较量 软
相关分类
相关文章
·系统安全之各类脱壳方法
·顶尖网络高手写的alexa
·强力破解E-mail密码三种
·软件狗[Dongles]的加密
·破解高手常用的破解工具
·经典 常见计算机密码破
·解密宝典——十招教你学
·“猫和老鼠”的较量 软
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $