zoukankan      html  css  js  c++  java
  • 25.Detours劫持技术

    Detours可以用来实现劫持,他是微软亚洲研究院开发出来的工具,要实现它首先需要安装Detours.

    安装地址链接:https://pan.baidu.com/s/1eTolVZs 密码:uy8x

    1 //取消拦截  
    2 _declspec(dllexport) void UnHook()
    3 {
    4     DetourTransactionBegin();//拦截开始  
    5     DetourUpdateThread(GetCurrentThread());//刷新当前线程  
    6     //这里可以连续多次调用DetourDetach,表明撤销多个函数HOOK  
    7     DetourDetach((void **)&oldsystem, newsystem); //撤销拦截函数  
    8     DetourTransactionCommit();//拦截生效  
    9 }
    • 劫持自己
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <Windows.h>
     4 #include "detours.h"//包含头文件必须包含detours.h
     5 #pragma comment(lib,"detours.lib") //包含库文件
     6 
     7 int  (*poldsystem)(const char * _Command) = system;//存放老的函数地址
     8 
     9 
    10 int my_system(const char * _Command)
    11 {
    12     printf("%s", _Command);//打印
    13     return 1;
    14 }
    15 
    16 void hook()
    17 {
    18     DetourRestoreAfterWith();//恢复之前的状态,避免反复拦截
    19     DetourTransactionBegin();//开始劫持
    20     DetourUpdateThread(GetCurrentThread());//刷新当前的线程
    21     DetourAttach((void **)&poldsystem,my_system);//劫持
    22     DetourTransactionCommit();//立刻生效
    23 }
    24 
    25 void main()
    26 {
    27     system("notepad");
    28     hook();
    29     system("notepad");
    30 
    31     getchar();
    32 }
    View Code
  • 相关阅读:
    46 Simple Python Exercises-Higher order functions and list comprehensions
    IDEA一些设置
    DDD建模案例----“视频课程”场景
    LA 4727
    uva 1377
    uva 1421
    UVA
    LA 4731
    uva 11404
    uva 11143
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8278545.html
Copyright © 2011-2022 走看看