zoukankan      html  css  js  c++  java
  • Detour3.0 win7 64bit下的安装

    最近在做API hook相关的东西,用了inline hook后感觉不错,但是查找资料发现inline hook并不稳定

    inline hook 的原理是在系统访问一个函数的时候先替换原函数入口处的内容跳转到自己设计的hook函数中,然后在自己函数中进行hook工作。可是在并行系统中,很可能有个线程就在这个时候调用了被自己改掉的系统函数,出现我们无法预期的结果。

    所以打算学习一下inline hook升级版:detour库hook,其实hook过程原理基本一样,只是微软做了封装和相关的冲突检查,所以这种api hook稳定些。

    (当然其他apihook方式还有modifying the Import Address Table (link provided later),using proxy DLLs and manifest files

    用detour库进行hook必须先部署Detour,

    电脑环境:win7 64bit

    1.从http://research.microsoft.com/sn/detours下载detour professional 3.0!!!不是Express版的哈~

    2.安装(此流程无脑)

    3.生成detour.lib:安装detour后,目录中有src文件夹,把文件夹拷贝到Microsoft Visual Studio 10.0VC下

    3.1打开cmd进入Microsoft Visual Studio 10.0VCin目录输入命令vcvars32.bat,运行后可以设置好编译环境

    3.2切换到Microsoft Visual Studio10.0VCSRC,然后输入nmake指令(这里可能会有错误 未找到文件“..system.mak”,解决方法在下面)

    4.部署lib文件,上一步Microsoft Visual Studio10.0VClib中会生成lib文件,将Microsoft Visual Studio10.0VCsrc中的detours.h复制到..include目录下(如果include中没有该头文件)

    整个部署完成了

    detour的使用:

    自己写的源码中添加如下内容就可以使用detour了:

    #include <detours .h> //*IMPORTANT: Look at path if compiler error

    #pragma comment(lib, "detoured.lib")

    #pragma comment(lib, "detours.lib")

    未找到文件“..system.mak”解决方法:
    将detours安装目录中的system.makMakefile复制到Microsoft Visual Studio 10.0VC目录就解决了
  • 相关阅读:
    Spring自定义注解简单使用四步走
    关于Mybaits映射一点心得
    设置UIButton文字大小颜色不同
    AFNetworking上传文件
    解决UITableView头部空白
    iOS获取文件和文件夹大小
    编译ffmpeg(iOS)
    让MySql支持Emoji表情
    MySQL重置密码(OSX)
    iOS多线程总结
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3931405.html
Copyright © 2011-2022 走看看