gpt4 book ai didi

c++ - 用于测试的 IAT Hook

转载 作者:行者123 更新时间:2023-11-30 02:06:58 25 4
gpt4 key购买 nike

我正在尝试将函数挂接到 cmd.exe 进程dll注入(inject)很好问题是我无法让cmd.exe调用我的函数当我试图在命令提示符下输入单词“dir”时,它向我展示了将名字更改为“dan”的相同结果我做错了什么?

HANDLE WINAPI newFindFirstFileA(__in   LPCTSTR lpFileName, __out  LPWIN32_FIND_DATA lpFindFileData) 
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile(lpFileName, &FindFileData);
*FindFileData.cFileName = L'Dan';
lpFindFileData = &FindFileData;
return hFind;
}


BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL,L"DLL Was injected!", L"Message" ,NULL);

/* Hooking function */
DWORD* dw = (DWORD*)GetProcAddress( GetModuleHandleA("kernel32.dll"), "FindFirstFileA" );
*dw = (DWORD)newFindFirstFileA;
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}

最佳答案

GetProcAddress 不返回指向 IAT 条目的指针。相反,它返回实际函数的位置。因此,*dw = (DWORD) newFindFirstFileA 将覆盖 FindFirstFileA 函数的序言,这将是灾难性的。引用this有关 Hook API 的详细说明的文章

关于c++ - 用于测试的 IAT Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332781/

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