使用Visual Studio 2019 Visual Basic 正确获取目标程序PE镜像基址
Visual Basic 目标进程PE镜像基址获取异常
开发场景说明
- 开发环境:Visual Studio 2019
- 开发语言:Visual Basic
- 核心开发目标:自主编写代码自动识别、获取指定目标程序的PE镜像基址。目前已掌握目标程序的固定镜像基址参考值,仍需落地自动获取功能。
已实现的枚举逻辑
当前已编写代码用于枚举目标进程加载的所有模块基址,核心代码如下:
Dim target As Process = Process.GetProcessesByName("The Program")(0) For Each mo As ProcessModule In target.Modules ListBox1.Items.Add(mo.BaseAddress.ToString()) 'MsgBox(Hex(mo.BaseAddress.ToString())) Next
注:代码中对目标程序名称做了脱敏处理,规避版权相关问题。
异常问题描述
- 参考参数来源:通过GitHub平台发布的PE Tools v1.9.762版本查询得到目标程序的原生Image Base(镜像基址),参考值为十六进制
00007FF7BE6B0000,对应十进制值140702028333056 - 实际运行效果:运行上述枚举代码后,输出的所有模块基址数值均与上述参考值不匹配
- 待解决需求:调整编写正确的代码逻辑,实现对该PE文件镜像基址的准确获取
内容的提问来源于stack exchange,提问作者Link Zelda
相关产品推荐
相关产品推荐

