gpt4 book ai didi

C++ 读取 LPCVOID 指针的值

转载 作者:行者123 更新时间:2023-11-28 01:59:30 26 4
gpt4 key购买 nike

我对 kernel32.dll 的 Writefile 命令有兴趣。正在触发 Hook ,但是,我无法读取缓冲区内容。

目标: Msgbox 显示正在发送到 com 端口的缓冲区的内容。

问题:msgbox 正在打印一系列看似随机的数字,我假设这是内存地址,而不是 lpBuffer 的实际内容。

C++代码:

void hookedFunc(HANDLE hfile, LPCVOID * lpBuffer, DWORD nNumberBytesToWrite, LPWORD lpNumberofBytesWritten, LPOVERLAPPED lpOverlapped) {

char *pString = reinterpret_cast<char *>(lpBuffer);

//Msgbox - arg 1//////////////////////////////////////////////////////////////////////////////
WCHAR szTest[45];
swprintf_s(szTest, 45, L"%d|\n", pString);
MessageBox(NULL, szTest, L"BUFFER CONTENTS", MB_OK);
swprintf_s(szTest, 45, L"%d", nNumberBytesToWrite);
MessageBox(NULL, szTest, L"TEST", MB_OK);

}

最佳答案

LPCVOID 是一个指针(指向一个常量),lpBuffer 是一个指向那个指针的指针。我想

const char* pString = reinterpret_cast<const char *>(*lpBuffer);

就是你想要的。

关于C++ 读取 LPCVOID 指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063283/

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