学家电亚博体育安卓下载网

 找回密码
 真诚注册

QQ登录

只需一步,快速开始

搜索
查看: 171|回复: 0
打印 上一主题 下一主题
收起左侧

Windows 网络编程: 地址转换器

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

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

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

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


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

本版积分规则

QQ|家电亚博体育安卓下载|门户地图|论坛地图|手机版|家电亚博体育安卓下载社 ( 蜀ICP备19011473号 )

GMT+8, 2019-11-10 10:37 , Processed in 0.094262 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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