使用detours hook HeapAlloc失败
c吧
全部回复
仅看楼主
level 1
sli_airen
楼主
我在使用vs2019时,试图监测堆的申请。但发现一旦使用挂钩了heapAlloc,整个进程就会崩溃退出。即使我在新的myHeapAlloc中仅仅调用了老的HeapAlloc,也会同样地崩溃退出。有人指点一下吗
2022年09月13日 05点09分
1
level 10
w34rt67u
有点怀疑知道怎么回事故意问的 …… 怀疑这吧主几年前就是大佬 ……
我最近正好准备看一下Windows程序调试 …… 这是想考谁
2022年09月13日 06点09分
3
w34rt67u
虽然不是很清楚具体怎么回事,但是提供个通用解决思路,网上搜索解决方案,或换工具 …… 比如WinDbg …… 以前VS貌似不支持内核相关的调试,但是WinDbg可以 …… 或试试OllyDbg之类的工具 ……
2022年09月13日 06点09分
level 1
sli_airen
楼主
static LPVOID(WINAPI* OldHeapAlloc)(HANDLE hHeap, DWORD dwflags, SIZE_T dwbytes) = HeapAlloc;
extern "C" __dec
lsp
ec(dllexport)LPVOID WINAPI NewHeapAlloc(HANDLE hHeap, DWORD dwflags, SIZE_T dwbytes)
{
std::cout << "worinige" << std::endl;
LPVOID heap = HeapAlloc(hHeap, dwflags, dwbytes);
return heap;
}
这是我定义的NewHeapAlloc,结果是被注入的exe程序会输出一次,然后进程就结束了
2022年09月13日 07点09分
4
w34rt67u
我看不懂
等吧主回来再说 ……
2022年09月13日 07点09分
sli_airen
@w34rt67u
好的,也谢谢你
2022年09月13日 07点09分
w34rt67u
@sli_airen
您打算什么时候公布答案?
2022年09月13日 07点09分
sli_airen
@w34rt67u
我不知道答案啊,也不知道为什么会异常
2022年09月13日 07点09分
level 1
sli_airen
楼主
刚刚在隔壁吧有人解答了,是因为我在NewHeapAlloc里调用了HeapAlloc导致死循环,应该使用OldHeapAlloc。另外cout也会导致异常中断,可能是cout也调用了HeapAlloc。
2022年09月13日 07点09分
5
w34rt67u
好厉害
2022年09月13日 08点09分
1