网络安全编程:PE编程实例之地址转换器
番茄系统家园 · 2022-05-23 03:19:02

PE文件的3种地址,分别是VA(虚拟地址)、RVA(相对虚拟地址)和FileOffset(文件偏移地址)。这3种地址的转换如果始终使用手动来计算会非常累,因此通常的做法是借助工具来完成。这里编写一个对这3种地址进行转换的工具。该工具如图1所示。

图1 地址转换器
这个工具是在前两个工具的基础上完成的。因此,在进行计算的时候,应该先要进行“查看”,再进行“计算”。否则,该获取的指针还没有获取到。
在界面上,左边的3个按钮是“单选框”,单选框的设置方法如图2所示。

图2 对单选框的设置
3个单选框中只能有一个是选中状态,为了记录哪个单选框是选中状态,在类中定义一个成员变量m_nSelect。对3个单选框,分别使m_nSelect值为1、2和3。下面来看主要的代码。
在单击“计算”按钮后,响应该按钮的代码如下:
分别看一下GetAddr()、GetAddrInSecNum()和CalcAddr()的实现。
获取该地址所属的第几个节的代码如下:
计算其他地址的代码如下:
代码都不复杂,关键就是CalcAddr()中3种地址的转换。
免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/wlaq/331966nEcJ8Z.html。猜你喜欢
最新应用
热门应用

