用myhook,detours的64位版本还不开源
解决方案 »
- 请问VC里release程序能调用debug版的dll吗?
- 关于DSDK2007 no such file的问题
- vc生成的exe可执行文件怎么样可以做成一个可安装程序?
- vc基础知识询问
- 谁有从把CListCtrl中的项目拖曳到CTreeCtrl的例子。多谢!!
- 为什么GetWindowRect(用mfc)不正确?
- 刚学VC++,那位大哥帮个忙。
- 各位大侠快来帮忙!在对话框模式下,窗口最小化状态下,怎样拦截RBUTTONUP消息?
- 怎么使用VC显示一个JPG文件?
- 各位大侠,小弟在开发程序中遇到一个问题,请问在vc++6中是否有显示JPG图片的控件,要求该控件加载的JPG能自动适用控件的大小,而非显示jpg的一部分,如果没用该控件的话,用编程又如何实现,请赐教!
- MFC 问题 怎么在CView里添加 WM_BUTTONDOWN消息?目前我只会在对话框里添加鼠标点击消息,求帮助,新手求助!!!
- 自己写HTTP服务器如何实现外网连接,让你们也可以访问我的服务器?
----
无论是线程钩子还是全局钩子,都可以hook到其他线程的CreateFileW等WINAPI函数。
可以hook到本线程的memcpy
detours2.1 detours3.0都是这样
--
你的意思 是各dll memcpy的地址不一样?
Copymemcpy = (memcpyFunType)DetourFindFunction("MSVCRT.DLL","memcpy");
{
char sz[100] = {0};
sprintf(sz,"0X%x",Copymemcpy);
MessageBox(NULL,sz,"ee",MB_OK);
}
被hook线程,hook线程的结果一样
---------------------------
ee
---------------------------
0X77c16f70
---------------------------
确定
---------------------------
有问题的代码如下:http://pan.baidu.com/s/1gdd1hvXdebug编译不过,Release版加了调试信息也编译不过。
如果exedofile已经启动,则只勾取exedofile,否则勾取所有线程。
我的开发工具是VC6,所以memcpy在"MSVCRT.DLL",VC7的memcpy好像在"MSVCRT7.DLL"中。
以下三种情况,MessageBoxA都勾取成功了,英文标题变成了“hook测试”。
情况一:
Copymemcpy = memcpy;
直接在DllMain 中DetourAttach(&(PVOID&)Copymemcpy, SNmemcpy);
不会勾取任何线程的memcpy,SNmemcpy也不会被调用
情况二,
Copymemcpy = (memcpyFunType)DetourFindFunction("MSVCRT.DLL","memcpy");
直接在DllMain 中DetourAttach(&(PVOID&)Copymemcpy, SNmemcpy);
不会勾取任何线程的memcpy,SNmemcpy会被调用
情况三,
CopyEnt如何hook进入点(DetourGetEntryPoint),如何hook memcpy?
有问题的代码如下:http://pan.baidu.com/s/1gdd1hvXdebug编译不过,Release版加了调试信息也编译不过。
如果exedofile已经启动,则只勾取exedofile,否则勾取所有线程。
我的开发工具是VC6,所以memcpy在"MSVCRT.DLL",VC7的memcpy好像在"MSVCRT7.DLL"中。
以下三种情况,MessageBoxA都勾取成功了,英文标题变成了“hook测试”。
情况一:
Copymemcpy = memcpy;
直接在DllMain 中DetourAttach(&(PVOID&)Copymemcpy, SNmemcpy);
不会勾取任何线程的memcpy,SNmemcpy也不会被调用
情况二,
Copymemcpy = (memcpyFunType)DetourFindFunction("MSVCRT.DLL","memcpy");
直接在DllMain 中DetourAttach(&(PVOID&)Copymemcpy, SNmemcpy);
不会勾取任何线程的memcpy,SNmemcpy会被调用
情况三,
CopyEntryPoint = (int (WINAPI *)(VOID))DetourGetEntryPoint(NULL);
CopyEntryPoint的值非空。
但SNEntryPoint根本没被调用。ryPoint = (int (WINAPI *)(VOID))DetourGetEntryPoint(NULL);
CopyEntryPoint的值非空。
但SNEntryPoint根本没被调用。
CopyEntryPoint = (int (WINAPI *)(VOID))DetourGetEntryPoint((HMODULE)hModule);
testhook.exe关闭的时候会调用 SNEntryPoint,应该是hook的时候调用
vc6源码
http://pan.baidu.com/s/1o66ZGvS大家帮我看看是什么情况。