首页
社区
课程
招聘
[原创]手查PE重定向
2015-11-26 10:27 10032

[原创]手查PE重定向

2015-11-26 10:27
10032
建议先看这篇文章
手查PE导出表:http://bbs.pediy.com/showthread.php?t=205989

工具:010editor  计算器...

既然是手查重定位 那么就要先找到重定位表
得到  地址029000 大小09F8


判断落在哪个区段

区段大小   地址
10000      1000
e8ca       011000
4248       20000
0a54       025000
11dc       026000
08c9       028000
0c56       029000              015200

                    029000-029000+015200=015200
计算及判定方法在“手查PE导出表”一文中 在此就不赘述了。

根据数据结构:

typedef struct _IMAGE_BASE_RELOCTION{
  DWORD VirtualAddress;    //需要重定位的位置
  DWORD SizeOfBlock;      //这个结构体的大小
  WORD TypeOffset[1];      //一个特殊数据存放相对于第一个元素描述的位置的偏移
}


CTRL+G  15200

得到 011000   0C    3FD0 

需要重定位的个数 n=(SizeOfBlock-8(结构体的大小))/2;
                     (0C+8)/2=2H

第三个成员高4位描述属性 低12位描述的才是一个偏移 
我们可以用计算器得到 高四位为0011 即0x0003  低12位*111111010000‬ 即 0xFD0

我们便可以得到需要重定位的虚拟地址RVA
    11000+fd0=11fd0;

按照上篇帖子所述方法 我们仍需要查落在哪个区段  
由之前查到区段可知
落在第二个区段 所以我们可以按照公式 :11fd0-11000+0400=13d0

ctrl +G     13D0

                          取出数据(无论如何都是4个字节) 得100209fc

我们再去扩展头(可选头)找到默认加载基址 

                   得到   10000000

根据公式   得到 100209fc-1000000=209FC   这个数据就是需要重定位的虚拟地址(VA)

很显然 落在第三个区段   
再计算 :      209FC-20000+ee00=F7FC

CTRL +G F7FC
得到内容 也就是 lordpe里面的数据解释  


然后对照LORDPE  就会发现 这个上面的所需数据 我们都查到了!!!!


好了   重定位大概就是这些  
至于自我重定位  有了这些思路那还难吗?
这篇文章是因论坛网友的需求  再加之我有空  就写出来吧   
还有 我为什么从来没被加过精华  或者优秀也是好的啊  (哭     
我哪里有欠缺  大家指出来 我好改正啊  

-----------------------------------
样本:
MFCLibrary1Dll.rar

[培训]《安卓高级研修班(网课)》月薪三万计划

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (10)
雪    币: 299
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
孤小鱼 2015-11-26 10:31
2
0
正在学PE结构,顶个
雪    币: 216
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Gkey 2015-11-26 11:56
3
0
没什么用,我看了半天,你突出说的都是虚拟地址转物理地址的过程。
没有说重定位表是在Image_optional_header的DataDirectory中的第几个,直接工具找的
还有typeOffset是一个WORD数组,(SizeOfBlock-8(结构体的大小))/2;就是因为这个。
typeOffset的元素高4位是重定位类型,一般为3
另外重定位信息按页分割,1000H为一段~
雪    币: 6
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
影子不寂寞 2015-11-26 12:58
4
0
学习一下。
雪    币: 1176
活跃值: (1219)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
Tennn 5 2015-11-26 13:28
5
0
你没看第一篇吧
雪    币: 44
活跃值: (242)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
qweasdasde 1 2015-11-26 13:46
6
0
******
雪    币: 1176
活跃值: (1219)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
Tennn 5 2015-11-26 14:13
7
0
不是 我也玩LOL  但我想打出好成绩来不是  然后青铜上白银 上黄金 就能赢得朋友们对自己肯定  不会再说 你个辣鸡。。。。。。
虽然没精华优秀我还是会有空就写写的 我把这当博客了  哈哈  
还有 杀毒太大是因为资源问题。。。。。
雪    币: 44
活跃值: (242)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
qweasdasde 1 2015-11-26 14:20
8
0
一起加油吧
雪    币: 93
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
anyscai 2015-12-1 11:35
9
0
优秀的教程值得学习的,谢谢!
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
patrriot 2016-1-8 08:53
10
0
这个顶一个,正在学习,谢谢楼主
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
若世浮屠 2018-6-12 22:15
11
0
围观。。。。。。
游客
登录 | 注册 方可回帖
返回