如何更改通过 ReadFile 函数读取的文本
Posted
技术标签:
【中文标题】如何更改通过 ReadFile 函数读取的文本【英文标题】:How can I change text that is read via ReadFile function 【发布时间】:2014-05-25 21:34:58 【问题描述】:?我正在使用 detour 来挂钩 ReadFile 函数调用。它工作正常(我认为是因为调试消息框),但我无法更改从文件中读取的文本。
static BOOL(WINAPI * true_read_file)(
HANDLE hFile
, LPVOID lpBuffer
, DWORD nNumberOfBytesToRead
, LPDWORD lpNumberOfBytesRead
, LPOVERLAPPED lpOverlapped) = ReadFile;
BOOL WINAPI my_read_file(
HANDLE hFile
, LPVOID lpBuffer
, DWORD nNumberOfBytesToRead
, LPDWORD lpNumberOfBytesRead
, LPOVERLAPPED lpOverlapped)
MessageBoxA(NULL, "my_read_file", "Some caption", MB_OK);
std::strcpy((char*)lpBuffer, "str"); // It doesn't work
return TRUE;
我做错了什么?我该如何解决?
提前致谢。
【问题讨论】:
【参考方案1】:错误1:你应该检查nNumberOfBytesToRead,有可能是1,所以你的代码溢出了缓冲区。
错误 2:您错过了填写 lpNumberOfBytesRead。
【讨论】:
以上是关于如何更改通过 ReadFile 函数读取的文本的主要内容,如果未能解决你的问题,请参考以下文章