在kernel32.dll查找Export函数地址时为什么其中imagebase和实际有出入

root_csdn 2017-10-07 11:43:44
在读《逆向工程核心原理》时,第13章寻找导出函数的虚拟地址时出了问题,问题如下:
NT头的可选头在文件中偏移地址为0x108,根据偏移imagebase的文件偏移地址为0x124
值为【0x77DE0000】可是OD里面全部是0x75开头的?
而且假如要找的函数名是AddAtomW。根据可选头的偏移量找到RVA of EXPORT Directory的值即IMAGE_EXPORT_DIRECTORY结构体的地址找到成员AddressOfNames的地址,根据AddAtomW在名字数组里面的索引找到ordinalarray数组相应的值,再根据ordinal的值作为索引找到函数的相对虚拟地址地址为【0x000430ED】,再在OD里面根据名字找到函数AddAtomW的虚拟地址
那么按这样来的话,正确的image=0x754F30ED-0x000430ED=0x754B0000和0x77DE0000不一样,这是为什么?请教一下各位大佬orz
...全文
1457 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2017-10-09
  • 打赏
  • 举报
回复
实际加载地址不一样,据说是高版本 windows 的防病毒木马等恶意软件的;你可以试试你的程序,每次加载的基址可能都是不一样的。

9,506

社区成员

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

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