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目录就解决了
  • 相关阅读:
    Pytorch版本yolov3源码阅读
    Darknet卷基层浅层特征可视化教程
    YOLOv3-darknet 内容解析
    YOLOv2-darknet 内容解析
    YOLOv1-darknet 内容解析
    Qt5.2+opencv2.4.9配置安装过程
    Android程序示例
    【Cuda编程】加法归约
    算法设计与分析课程的时间空间复杂度
    【算法分析】实验 4. 回溯法求解0-1背包等问题
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3931405.html
Copyright © 2011-2022 走看看