好的,这就是交易,我正在将一个DLL注入目标进程并让它读取其中的一些寄存器。问题是,无论何时调用我的函数,我必须抓取的内容的大小都在不断变化。
由于我不能使用向量,如果我要预先存储一个我不知道大小的字节数组,我该怎么办呢?
到目前为止,这是我的代码,由于C3068,显然无法编译。
__declspec(naked) void _LocalHandleMessage()
{
__asm {
// Here i obviously have to store the data i'm sending to HandlePaquet
sub esp, __LOCAL_SIZE
pushad
pushfd
}
{
DWORD opcode;
DWORD size;
std::vector<BYTE> packetContent;
HandlePaquet(opcode, size, packetContent, true);
}
__asm {
popfd
popad
add esp, __LOCAL_SIZE
retn
}
}
此外,我希望能够将类成员方法的地址注入目标进程,但似乎不可能,除非我没有足够的谷歌。
答案 0 :(得分:1)
关于注入地址 - 如果你正在谈论挂钩 - 是的,你可以,你需要修改virtual method table。你可以在任何开源游戏hack中找到例子。
如果成员方法不是虚方法且在vtable中不存在,则需要更改 调用 操作码,或者只需输入 jmp xxxxxxxx < / em> 在方法的开头。 查看here了解更多详情