我有结构的地址(我认为它很好)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:访问冲突读取位置 0x443de713。
答案 0 :(得分:0)
您引用的第一个地址是DLL数据部分中struct 的地址,但您尝试取消引用的地址是进程内存中的地址 。这两个地址是不是的同类,所以不可能像你那样使用它们。
实际上,您尝试取消引用一段内存,其中应用程序可能存储或不存储某些数据,并将此内存视为lua_State
(很可能不是这样)。这导致了未定义的行为,以AV结束。
在内存中找到一个位置是很困难的(甚至是不可能的),这个位置存储在进程的内存中。建议采用另一种方法。