gpt4 book ai didi

c++ - 裸函数中的动态大小数组

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:23 24 4
gpt4 key购买 nike

好的,事情就是这样,我将一个 DLL 注入(inject)目标进程并让它读取其中的一些寄存器。问题是,每当我的函数被调用时,我必须抓取的内容的大小不断变化。

由于我不能使用 vector ,如果我要存储一个我事先不知道其大小的字节数组,我该怎么办?

到目前为止,这是我的代码,显然由于 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
}
}

另外,我希望能够将类成员方法的地址注入(inject)到目标进程中,但似乎不可能,除非我没有足够的google。

最佳答案

  • 要存储数据,您可以使用非常简单的方法 - VirtualAlloc
  • 或者您可以尝试在您的 dll 中使用静态 vector 变量。

关于注入(inject)地址 - 如果你在谈论 Hook - 是的你可以,你需要修改 virtual method table .您可以在任何开源游戏黑客中找到示例。

如果成员方法不是虚方法并且不存在于 vtable 中,则需要更改 call 操作码,或者只输入 jmp xxxxxxxx 在方法的开头。看here了解更多详情

关于c++ - 裸函数中的动态大小数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12838078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com