3、如何让你的ida 地址就是RVA
如何让你的ida 地址就是RVA
原理:首先软件进入ida中的时候,其实就相当于把应用程序载入了内存中,RVA其实就是虚拟的便宜地址,也就是在内存中的地址,所以这里的RVA就是在ida中看到的地址-Imagebase Imagebase 其实就是基址。所以我们只需要把imagebase 设置为0即可拿到我们所需要的结果了。
设置方法:
-
打开 IDA Pro 并加载目标文件。
-
进入“Edit -> Segments -> Rebase Program” :
- 在菜单栏中,点击 Edit。
- 选择 Segments,然后点击 Rebase Program。
-
设置新的 ImageBase:
- 在弹出的 Rebase Program 对话框中,你会看到当前的
ImageBase
。 - 将 New base address 设置为
0
。
-
确认并应用:
- 点击 OK,IDA 会重新计算所有地址,并将
ImageBase
设置为 0。
- 点击 OK,IDA 会重新计算所有地址,并将
- 在弹出的 Rebase Program 对话框中,你会看到当前的
效果:
原Imagebase是:7FF7D96F0000 但是我们的地址并没有去加上这个值,而是直接从0x1000开始的,原因是因为:0x1000
是第一个节的偏移量,通常是代码段(.text段)的起始位置。PE文件中的节(如代码段、数据段)按内存页对齐(通常为4KB,即0x1000字节),因此第一个节的起始地址通常是ImageBase + 0x1000
。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库