请教pe文件的问题

wwwxxb40000 2009-02-12 01:47:34

1 做PE装载器的时候,要实现重定位,请教一下,重定位是不是修改PE内函数的地址呀?修改的是RVR吗?

2 PE文件里,输入表是干什么用的?里面存储了哪些数据呀?
...全文
247 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shineboy1034 2009-02-13
  • 打赏
  • 举报
回复
学习
xiaopoy 2009-02-13
  • 打赏
  • 举报
回复
推荐matt专栏的文章。
chimney88 2009-02-12
  • 打赏
  • 举报
回复
去看雪论坛转转,你会学到不少的!bbs.pediy.com
killbug2004 2009-02-12
  • 打赏
  • 举报
回复
不小心回车了。。。。。。

1 做PE装载器的时候,要实现重定位,请教一下,重定位是不是修改PE内函数的地址呀?修改的是RVR吗?
重定位表对dll很重要,因为dll装载到内存中不能保证装载默认的基址,可能别的模块已占用,而程序中的数据等的引用是使用
[默认基址+RVA]的方法,实际装载基址和默认基址不同时,就要修正这个访问地址[默认基址+RVA+(实际基址-默认基址)],重
定位表就记录哪些地方需要修正,装载器来作这个事情,而exe一般都可以装载到默认的基址,很多优化工具将exe的重定位表擦
除掉

2 PE文件里,输入表是干什么用的?里面存储了哪些数据呀?
比如你调用MessageBox这个函数,它在user32.dll中,那么输入表就记录动态链接库的名字user32.dll函数MessageBoxA
(ASICC版的)还有其他信息,方便装载器找到dll获取导入函数的地址,这样程序才能调用

具体各个表的结构要了解PE文件的信息,给个链接吧

PE结构图 http://www.pediy.com/document/PE.rar
输入表http://www.win32asm.com.cn/view.asp?file=117

网上有很多,自己google下
killbug2004 2009-02-12
  • 打赏
  • 举报
回复
1 做PE装载器的时候,要实现重定位,请教一下,重定位是不是修改PE内函数的地址呀?修改的是RVR吗?


2 PE文件里,输入表是干什么用的?里面存储了哪些数据呀?
cnzdgs 2009-02-12
  • 打赏
  • 举报
回复
重定位是修改程序中所使用的地址。
输入表储存的是程序导入外部库的信息(例如DLL的导出函数)。

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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