在文件中查找静态地址.exe



我有一些软件可以从另一个软件的内存中读出一个值。我可以在每次更新时完美地找到它的静态偏移量。我的问题如下:

假设该软件使用基本指针为 0x00123456.. 的 ASLR。所需值的静态偏移量将为基数 + 0x00006666。我想自动找到它们,因此在每次更新时解析.exe文件。在 theorey 中,地址应该在程序集中。问题是:它们是如何编码的?

如果我打开.exe文件,十六进制编辑器并搜索偏移量或基数+偏移量,则文件中不包含任何内容。当我想找到它们在汇编代码中使用的位置时,我需要如何转换我的地址?

大多数.DLL文件和许多.EXE文件都包含基本重定位表。

此表包含.EXE文件中使用的所有绝对地址的列表。

它通常存储在名为".reloc"的部分中。但是,Windows会忽略该部分名称;PE EXE 文件头包含对基本重定位表的引用。

但是,并非所有.EXE文件都包含此类基本重定位表。如果不存在这样的表,则.EXE文件始终加载到同一地址中 - 即使 ASLR 处于活动状态也是如此。

GNU 链接器创建的大多数 32 位 EXE 文件都是这种情况。

最新更新