【发布时间】:2011-12-26 15:34:17
【问题描述】:
我正在尝试在正在运行的(旧)Win32 Borland 应用程序中执行一个函数(Window 具有类 OLW_WINDOW)。通过使用 OllyDbg,我发现该函数有一个参数,即内存地址。该函数使用的一个变量/值存储在该地址的偏移量处。我的想法是找到该内存地址(在内存块中处于恒定偏移量),将变量/值更改为我想要的,然后执行该函数。使用 WriteProcessMemory 和 CreateRemoteThread 执行是可以的,但问题是如何找到内存地址/块?在 OllyDbg 中打开“内存映射”时,内存块没有所有者、节或包含。是否可以获得由指定线程创建的内存块列表?或者我可以以某种方式从应用程序中获取它吗?顺便说一句:该函数通常在单击按钮时执行,并且我要设置的变量/值是列表视图(或等效项)中(按名称)列出的数据库 ID。
【问题讨论】:
-
如果内存地址是函数的参数,就不能提供任何你喜欢的地址吗?
-
我可以,但我担心内存地址还包含函数使用的其他变量,如数据库连接句柄。但我找到了一个(部分)答案here
标签: windows memory ollydbg createremotethread