pe中的基址重定位问题

朽木可雕 2013-09-16 08:41:26
pe中的基址重定位

typedef struct {
DWORD virtualAddress;
DWORD sizeOfBlock;
WORD typeOffset;
}IMAGE_BASE_RELOCATION;
为什么要用virtualAddress和typeOffset相加的方式来确定要改变的地址在exe文件中的file offset,而不直接指向file offset 或者只用一个RVA不就可以了么?





demo:

.......
call dword ptr [40200E]
......

如果dll默认被转载在0x400000地址,想在windows决定将它加载到0x870000,windows将如何转换这条指令到指定的内存,在内存中的dump中这条指令会发生变化么,如果变了是如何变的,讲解下原理。
...全文
269 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
朽木可雕 2013-10-09
  • 打赏
  • 举报
回复
引用 3 楼 u012213421 的回复:
未重定位前是call dword ptr [200E]
哦明白了
狠人大帝_ 2013-09-23
  • 打赏
  • 举报
回复
未重定位前是call dword ptr [200E]
朽木可雕 2013-09-18
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
这样做通常情况下比较节省重定位数据的空间吧,尤其是导入函数,将它们集中在一起时,基本上一个项就一个 word 表示了,否则一个项要有一个 dword 即两个 word 了
明白了。确实是
zara 2013-09-17
  • 打赏
  • 举报
回复
这样做通常情况下比较节省重定位数据的空间吧,尤其是导入函数,将它们集中在一起时,基本上一个项就一个 word 表示了,否则一个项要有一个 dword 即两个 word 了
本课程主要以口袋西游为例,学习一个网络游戏是怎么通过游戏服务器与玩家客户端进行通信交互的,通过OD,CE等工具对游戏进行调试,找到各个数据基址(例如角色基址,背包基址等),找出游戏里面的功能CALL(例如寻路CALL,打坐CALL等)及参数分析,并且编码实现功能。本课程可以带领你游戏逆向入门可以学会 CE,OD,找游戏基址,功能CALL等实现变态功能可以更深入的理解从高级语言到汇编语言的一个对应过程可以学会 逆向软件  外挂与反外挂 破解防破解  游戏安全的基础知识可以为以后的及逆向高级课程 打下良好的基础可以自己分析游戏数据,用C语言实现游戏外挂功能等重点:  本套课程的重点就是带领大家分析游戏数据,毫不客气的说,各位学完此套课程对分析游戏数据这块会有一个质的飞跃。课程目录  01.课程简介及功能演示  02.CE找人物基址及人物属性偏移  03.OD找人物基址及人物属性偏移  04.创建MFC DLL项目  05.代码实现输出人物信息  06.发包函数概述  07.怎么看待重写的发包函数  08.普通发包与线程发包  09.找打坐CALL及参数分析  10.代码实现打坐CALL  11.喊话CALL及参数分析  12.代码实现喊话CALL  13.找寻路CALL及参数分析  14.代码编写寻路CALL  15.穿装备CALL及参数分析  16.代码实现穿装备CALL  17.NPC对话CALL  18.代码实现NPC对话CALL  19.唤出宠物  20.宠物合体  21.收回宠物  22.取下宠物
原创易语言 版_EXE分析器[PE解析]_可分析DLL函数_导入函数_分析软件三大头_移动表 a.可分进程shuj: 1.进程列表 2.进程模块 模块名 模块句柄 模块基址 模块大小 模块路径 3.通过特征码扫描易语言的程序 b.移动EXE文件到分析器即可对这个软件进行分析         1.可以快速分析PE的一些信息 比如         当前选程序路径:D:\Program Files (x86)\Tencent\WeChat\WeChat.exe         模块句柄:0x00400000         主模块地址:0x00400000         主模块大小:0x00005000         模块数量:74         内存镜像基址:0x00400000         内存镜像大小:0x00079000         节数量:6         所有头大小:1024 c.分析DOS头:         PE标志 标志PE头的地址 d.分析NT头 e.可以分析标准PE头         1.机器码         2.节的数量         3.PE文件的特征值         4.可选PE头的大小         5.符号的数量         ... f.分析可选PE头         1.机器型号         2.链接器版本         3.代码节的RVa         4.shuj节rva         5.内存节对其和文件对其值         6.ImaeBase 镜像基址         7.SizeOfImage 整个程序在内存占用的空间         8.所有头大小         9.程序入口点         ..... g.可以分析shuj目录地址         1.导入表         2.导出表         3.zy表         4.IAT表         5.绑定导入表         ...... j.可以分析节表         Name:  .text          [节名称]         VirtualSize[内存大小(对齐前的长度)]         VirtualAddress[节区在内存的偏移地址(RVA)]         SizeOfRawData[文件大小(对齐后的长度)]         PointerToRawData [文件偏移(OffSet)]         Characteristics[标志(块属性)] l.可以分析DLL软件到哪些函数,可以分析DLL导出了哪些函数 p.可以分析软件的重定位表 以及移动导出表操作,移动导入表操作,偏移转换器。

9,505

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧