在DLL中使用的结构地址

Struct address to use in DLL

本文关键字:结构 地址 DLL      更新时间:2023-10-16

我已经得到了结构体的地址(我认为它是好的)0040336C我试图在DLL中使用它,我正在注入一些程序(地址在哪里)

这真的是实验性的,因为我试图获得lua_State地址。

data:0040336C ?L@@3PAUlua_State@@A dd ?               ; DATA XREF: _main+Cw
lua_State* L = (lua_State*)0x0040336C;

我尝试了这种方法,但是程序在我注入它之后就崩溃了。

(调试器显示)

在0x003a19e8中的未处理异常midaslua.exe: 0xC0000005:访问冲突读取位置0 x443de713。

您引用的第一个地址是DLL数据段内的结构体的地址,但您试图解引用的地址是进程内存中的地址。这两个地址不是同一类型的,所以不可能像你那样使用它们。

实际上,您尝试解引用一块内存,其中应用程序可能存储了一些数据,也可能没有存储一些数据,并将这块内存视为lua_State(很可能不是)。这导致了未定义的行为,最终导致AV。

很难(甚至不可能)在内存中找到一个位置,这个变量存储在进程的内存中。