13.5.4 构造重定位表
对于DLL的动态链接库文件来说,重定位数据一般是必需的。外壳很可能破坏了原始的重定位表,将原始的重定位表换个形式存储,运行时模拟PE加载器的重定位功能,对相关代码重定位。脱壳必须根据PE文档的重定位表的定义,重新构造一份新的重定位表。
先来回顾一下重定位表的结构:
IMAGE_BASE_RELOCATION STRUCT |
|
图13.48 重定位表结构示意图 |
外壳重定位相关数据时,会根据外壳转储的重定位表确定要重定位的RVA,再加上当前的基址,完成代码重定位工作。本节构造重定位原理就是将这些要重定位的RVA提取出来,再将这些RVA根据重定位表的定义重新生成一份新的重定位表。根据这个原理,笔者写了一款工具来完成这个重建功能,详见光盘映像文件中的ReloREC。
OllyDbg加载EdrLib.dll,来到重定位初始化的地方,代码如下:
003E01F6 mov esi, dword ptr [ebp+299] ;取原重定位表RVA |
003E022C movzx eax, byte ptr [esi] |
003E0289 pushad ;保存各寄存器的值 |
这段补丁代码读者必须根据本机情况调整一些参数,例如E20000h这是外壳被加载后的基址,3F0000h这个地址是OllyDbg的插件HideOD分配的,如图13.49所示。
|
| 图13.49 利用OllyDbg插件分配临时空间 |
| (点击查看大图)图13.50 利用一个全局变量当地址指针 |
|
| (点击查看大图)图13.51 获得需要重定位地址的RVA |
0000101D |
|
| 图13.52 WinHex里以ASCII Hex粘贴 |
|
| 图13.53 ReloREC工具界面 |
| 回书目 上一节 下一节 |
|
· Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. |
· 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. |
|
||||
| · 网络工程师职业规划与.. · 浏览器的战国时代 · 运营商封堵ADSL共享 中.. · 微软出价446亿美元收购.. · 技术人求职简历完备手册 · 开源虚拟化技术Xen · Windows Server 2008专.. · 隐私保护技术探讨 |
· 绿色IT人健康生存手册 · 杀毒软件评测专题 · 访问控制列表(ACL)介绍 · Vista SP1对决XP SP3 · 华为员工自杀频频拷问.. · 2008中国互联网大会 · 勇闯IT培训黑色围城 · CISSP认证成长之路 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 |
· PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. · 访问控制列表(ACL)介绍 · 反垃圾邮件技术应用 · ASP.NET 2.0基础开发指.. |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · 三层交换技术专题 · Apache技术专题 · 企业数据恢复指南 · 路由器设置与口令恢复 |
· SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 · 专题:AIX操作系统管理.. · 交换机故障解决指南 · 三层交换技术专题 |
|||