学家电维修网

 找回密码
 真诚注册

QQ登录

只需一步,快速开始

搜索
查看: 81|回复: 0
收起左侧

Windows 网络编程: 地址转换器

[复制链接]
发表于 2019-2-7 16:18:44 | 显示全部楼层 |阅读模式
Windows 网络编程: 地址转换器
PE文件有3种地址,分别是VA(虚拟地址)、RVA(相对虚拟地址)和FileOffset(文件偏移地址)。3种地址转换如果始终使用手动来计算那是非常累的,因此通常的做法是借助工具来完成。可以使用LordPE来计算这3种地址的转换,现在来编写一个对这3种地址进行转换的工具。该工具如图1所示。
20190207_164031_001.jpg
图1  地址转换器
在进行计算的时候,先进行“查看”,然后再进行“计算”。否则,该获取的指针还没有获取到。

在界面上,左边的3个按钮是“单选框”,单选框的设置方法如图2所示。
20190207_164031_002.jpg
图2  对单选框的设置
3个单选框中只能有一个是选中状态,为记录哪个单选框是选中状态,在类中定义一个成员变量m_nSelect。分别对3个单选框使m_nSelect为1、2和3三个值。下面来看主要的代码。

在单击“计算”按钮后,响应该按钮的代码如下:
20190207_164031_003.jpg
分别看一下GetAddr()、GetAddrInSecNum()和CalcAddr()的实现。

获取在编辑框中输入的地址内容的代码:
20190207_164031_004.jpg
获取该地址所属的第几个节的代码:
20190207_164031_005.jpg
计算其他地址的代码:
20190207_164031_006.jpg
代码都不复杂,关键就是在CalcAddr()中3种地址的转换。地址转换小工具的编写就介绍到这里。


您需要登录后才可以回帖 登录 | 真诚注册

本版积分规则

QQ|hwp|家电维修|地图|zvg|lda|yil|ine|doc|app|hot|app|门户地图|论坛地图|手机版|家电维修社 ( 浙ICP备08013691号-1 )

GMT+8, 2019-6-27 09:04 , Processed in 0.214645 second(s), 23 queries .

快速回复 返回顶部 返回列表