微软Detours库可以从:http://ftp.research.microsoft.com/downloads/d36340fb-4d3c-4ddd-bf5b-1db25d03713d/DetoursExpress.msi? 下载到,现在的最新版本应该是2.1版本。
只说两点卡过我的地方:
1、如何编译。
网上一般的解释是只要安装过VC或者VS的计算机,在detours的src目录下使用nmake就可以成功编译。我想,这样实验的人可能会有不少会得到这么一句话:nmake不是内部命令,也不是外部命令。。。这是因为VS(仅限2008,其它版本不清楚)安装后,并没有将nmake所在的bin目录添加到环境变量中。这个好解决,在执行的时候使用全路径或者干脆就把nmake拷贝到detours的src目录中行不行?实验了下,果然可以,nmake是跑起了,但是碰到rc detoured.rc的时候,又会报个错误出来:rc 不是内部命令也不是外部命令。明显,rc.exe又找不到了。。。。
rc.exe在哪里嘞?默认情况下应该是在C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin下。。若继续将该路径加为环境变量,就好了。。所幸的是微软提供了一个添加环境变量的批处理,可以直接使用和nmake.exe在同一文件夹下的vcvars32.bat。由此得到,完整编译的方法如下:
1、cmd下定位到detours下src文件夹里面。
2、执行vcvars32.bat批处理,可以使用全路径,但是执行过后切记不要关闭cmd(批处理添加环境变量为临时环境变量,关掉cmd窗体即失效)。
3、nmake。。。
这样应该就可以完成编译了。。。至少我完成了。。。
2、如何静态引用
如果按常规的办法来引入库的话,在生成的文件中,都会引入一个叫detoured的库。如何才能去除这个库呢?微软给出的资料中看了半天也没有看懂。。。
网上有人说是,不要引入detoured的lib文件。可是不引用的话,就会报一个大大的链接错误——找不到一个叫detoured的函数。
网上有人说要修改一下detours.cpp文件,但是又没有几个人给出修改的方法(或许我查找的办法不对,有人说网上资料很多,可我就是没找到)。看一看detoured都做了些什么:
detoured源码:
可以看出这个函数只是返回了一个HMODULE。DisableThreadLibraryCalls也是没什么用处。
微软官方帮助中给出的解释是:这是一个标志,如果你使用了detours库。。。。。(无语)
看了看detours的源代码,又测试了下,发现修改这几个地方,就可以达到目的:
一下都是在src/detours.cpp文件中:
1、注释掉:#include "detoured.h"
2、注释掉:
3、注释掉:
(上面这一段在DetourGetDetouredMarker函数中。)
另外还要再返回一个HMODULE,就返回当前的:
return GetModuleHandle(NULL);
编译,把生成的detours.lib加到我的工程中,编译,搞定。。。。。。
分享到:
相关推荐
已编译好的detours静态库,使用方法请查看我的博客文章。
Detours x86 与 x64 位编译好的静态库
易语言微软detours库演示源码,微软detours库演示,取函数地址Ex,Call,asm_CALLSub,UnHOOK,HOOKFunc,HOOKAPI,CallFunc,LoadLibraryA,GetProcAddress,LocalSize_STARTUPINFO,NewMSGB
微软detours劫持库
detours 3.0编译好的express,samples齐全
Detours ver2.1 的静态库, 仅支持 Win32 程序(你懂的),记得写评论哦!
谷歌浏览器劫持,使用微软detours。包含进程注入程序(testcpp3)和apihook程序(MSNDetourDLL),还包含detours32/64位库。vs2010工程下载即可用。要注意的是,如果是windows64位系统,必须编译64位的程序。
编译好的detours 3.0 express,samples齐全。自己编译弄了半天,先是在xp上编译,一直报错。后来发现直接win7就行。
易语言源码微软detours库易语言演示源码.rar
7.附件中提供了编译好的detours.lib和系统源代码 注意:需要在没有安装SDK的环境编译,如果安装过SDK,请把SDK的顺序调到最后 detour_2.1 为源码 detours_bin 为BIN hook_send 为例子 2012-7-12 冷风 QQ ...
包含detours.h、detoured.lib、detours.lib、detoured.dll
在64位系统下编译Detours会报错。本资源是帮助那些编译遇到困难...包内包含Detours需要修改的代码,以及一个编译用的批处理文件,一个readme。 详情请参阅 http://blog.csdn.net/genesisbible/article/details/6771988
Detours是微软开发的一个函数库,可用于捕获系统API。 HOOK函数 注入DLL 包含lib和.h
微软Detours3.0. 下载地址: http://research.microsoft.com/en-us/projects/detours/
2024.03.28,今天下载当前github上最新版Detours-4.0.1源码,使用vs2012编译的静态lib库文件,包括x86和x64版本
64位的听说微软商店卖9999美元,也不清楚怎么弄来的.包含32位和64位的cpp h 和编译好的lib文件,直接#pragma comment(lib, "Detours.lib")就可以使用! 完全支持64位模式编译64位的EXE,LIB和DLL!
Detours Express 3 0 微软官方下在
微软开发Detours函数库相关说明~以及距离~
Detours 是一个在x86平台上截获任意Win32函数调用的工具库。中断代码可以在运行时动态加载。编译好的detours静态库可直接使用vs系列的IDE加载使用