簡體   English   中英

裸函數中的動態大小的數組

[英]dynamic sized arrays in a naked function

好的,這就是問題所在,我正在將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
    }
}

另外,我希望能夠將類成員方法的地址注入到目標進程中,但似乎不可能,除非我對Google不夠了解。

  • 存儲數據的方法非常簡單-VirtualAlloc
  • 或者,您可以嘗試在dll中使用靜態矢量變量。

關於注入地址-如果您正在談論掛鈎-是的,可以,您需要修改虛擬方法表 您可以在任何開源游戲黑客中找到示例。

如果成員方法不是虛擬方法,並且在vtable中不存在,則需要更改調用操作碼,或者只是將jmp xxxxxxxx放在方法的開頭。 在這里查看更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM