首页
社区
课程
招聘
[旧帖] [原创]自己写个重定位表重建工具 0.00雪花
发表于: 2010-12-28 18:58 2724

[旧帖] [原创]自己写个重定位表重建工具 0.00雪花

2010-12-28 18:58
2724

菜鸟最近在努力学习《加密》,
在DLL脱壳的重建重定位表环节遇到个坎。。。。。。
为了突破者坎,
跟着13章的思路自己写了个重定位工具,
其中也参考了《加密》的PE分析工具源码 。
*************************************
下面写下大概的思路。。。

这个工具需要输入带有重定位RVA的BIN文件,每个RVA以DWORD对齐,最后以一个为0的DWORD结束

程序循环读取每个重定位RVA,计算得到IMAGE_BASE_RELOCATION中的VirtualAddress、TypeOffset和SizeOfBlock;

typedef struct _IMAGE_BASE_RELOCATION {
    DWORD   VirtualAddress;
    DWORD   SizeOfBlock;
//  WORD    TypeOffset[1];
} IMAGE_BASE_RELOCATION;

其中,
VirtualAddress=重定位RVA/0x1000*0x1000;
TypeOffset=重定位RVA%0x1000+0x3000;     0x3000表示高 4位的标志
SizeOfBlock为整个重定位块的大小

以链表的形式储存以上数据

再写入到文件的指定RVA处

最后修改下OPTIONAL_HEADER中的重定位数据目录的地址和偏移;

总之,菜鸟表示很努力学习,求鼓励,求邀请码。。。。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用loderpe加的iai该怎么办啊?
2010-12-28 22:27
0
雪    币: 137
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
那个输入表不是用imageREC来修复就可以了么?
2010-12-28 23:49
0
游客
登录 | 注册 方可回帖
返回
//