通过 Visual Basic 代码查找程序的基地址

问题描述

我使用的是 Visual Studio 2019 - Visual Basic。

我正在尝试通过代码查找程序的基地址。我已经知道基地址,但我需要我正在制作的程序来自行查找它。

我使用它,它显示了模块中的很多地址:

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

(我从上面的代码重命名了程序的名称,以防程序存在版权问题。)

我正在尝试获取基地址 我的基地址是:

Base Address in Hex = 00007FF7BE6B0000
Base Address in Dec = 140702028333056

当我运行上面的代码时,它列出的地址没有是我拥有的基地址。

我用PE编辑器查看了程序的基地址。我使用了来自 GitHub 的名为 PE Tools 的程序。

那么我如何编码以获取此图像基地址?

解决方法

我让它与此代码一起工作:

Dim p As Process = Process.GetProcessesByName(GetCurrentProcessName)(0)
For Each moz As System.Diagnostics.ProcessModule In p.Modules
    If moz.FileName.IndexOf(GetCurrentProcessName) <> -1 Then
      Hex(moz.BaseAddress.ToString)
    End If
Next