第一步:下载detours3.0,安装detours
第二步:构建库文件,nmake编译

第三步:包含库文件和头文件
#include “detours.h” //载入头文件
#pragma comment(lib,”detours.lib”) //表明要使用静态库
第四步:定义旧函数指针指向原来的函数
static int (oldsystem)(const char _Command)=system;
第五步:声明一个和原函数参数相同的新函数
int newsystemA( char * _Command)
{
char *p=strstr(_Command,”tasklist”);
if(p==NULL)
{
oldsystem(_Command);
}
else
{
printf(“%s”,_Command); //找到了,禁止执行
return 0;
}
return 0;
}

第六步:开始拦截
//开始拦截
void Hook()
{

DetourRestoreAfterWith();//恢复原来状态,
DetourTransactionBegin();//拦截开始
DetourUpdateThread(GetCurrentThread());//刷新当前线程
//这里可以连续多次调用DetourAttach,表明HOOK多个函数DetourAttach((void **)&oldsystem, newsystemA);//实现函数拦截DetourTransactionCommit();//拦截生效

}
第七步:取消拦截
//取消拦截
void UnHook()
{

DetourTransactionBegin();//拦截开始
DetourUpdateThread(GetCurrentThread());//刷新当前线程
//这里可以连续多次调用DetourDetach,表明撤销多个函数HOOK
DetourDetach((void **)&oldsystem, newsystemA); //撤销拦截函数
DetourTransactionCommit();//拦截生效

}

第八步:main函数运行,大功告成
void main()
{
system(“calc”);
Hook();
system(“calc”);
system(“tasklist”);
//UnHook();
getchar();
}

注意:一定要在realse模式,而不是在debug模式下运行,不然得不到想要的结果。

使用detours实现劫持相关推荐

  1. c语言编写劫持dll,c语言-----劫持自己02

    在上一节 c语言-----劫持原理01 已经叙述了劫持原理,下边正式进入劫持实战 1. 需要实现的功能 在c语言中 system("notepad") 可以打开一个记事本 syst ...

  2. C/C++劫持技术(函数劫持、dll注入、动态库注入、HOOK)

    目录 劫持 detours 实现劫持 步骤: 1. 安装Detours 2. 编译Detours工程 3. 把静态库和头文件引入工程 4. 函数指针与函数的定义 5.拦截 劫持QQ 实现劫持syste ...

  3. C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)

    要实现下面程序,首先我们需要三个文件 detours.h ,detours.lib ,detver.h(可以去网上下载) 1. 首先让我们看看,一个最简单的C程序,如何劫持system函数. 1 #i ...

  4. 二进制分析工具自动发现DLL劫持漏洞

    aDLL简介 aDLL是一款功能强大的代码分析工具,可以帮助广大研究人员以自动化的方式识别并发现DLL劫持漏洞.该工具可以分析加载至内存中的源码镜像,并在加载过程中搜索DLL,并且利用了微软Detou ...

  5. 分析DLL搜索顺序劫持的原理

    Context的智能和响应团队已经看到DLL搜索命令被滥用,作为在真实环境中进行网络入侵的一种手段.滥用DLL搜索顺序并利用这种机制来加载一个流氓DLL而不是合法的被称为DLL预加载,或者在MITRE ...

  6. 【C/C++】劫持技术

    劫持 劫持的原理就是把目标函数的指针的指向修改为自定义函数的地址. 函数是放在内存中的代码区,所以劫持与代码区密切相关. 实现劫持需要使用detours. detours detours是微软亚洲研究 ...

  7. 黑客技术之移花接木(劫持)

    1.这里所说的移花接木分三个级别:@1对自己写的函数使用:@2对别的程序的函数使用:@3对操作系统程序使用. 简单地说就是让改变程序的走向,本来调用的函数不调用了,调用你写的函数,用你的花去接别的程序 ...

  8. 2345浏览器网址_2345网址导航回应“浏览器主页劫持”丨开发者日报

    1.2345网址导航回应"浏览器主页劫持" "浏览器主页被2345劫持怎么解决?""如何解决浏览器被2345主页劫持的问题?"--在网民吐槽 ...

  9. 首例利用智能路由网关犯罪嫌疑人被捕:罪名流量劫持

    首例利用智能路由网关犯罪嫌疑人被捕:罪名流量劫持 https://tech.sina.cn/digi/nb/2018-05-15/detail-ihapkuvm0295695.d.html 上海市徐汇 ...

最新文章

  1. 黑盒测试之功能分解法
  2. linux 搜索 文件 内容,Linux 文件查找及文件内容查找
  3. java按键发出声音代码_怎么在java中给按钮添加声音?
  4. ubuntu 安装PCL
  5. rank,dense_rank,row_number使用和区别
  6. python函数注解
  7. 带哨兵节点的链_BNC公链 | IPFS:区块链“不可能三角”的可能解
  8. Python_Tika
  9. 《Android高级进阶》— Android 书籍
  10. linux下开通ssh
  11. FireFly编辑器调用C语言,grasshopper的插件FireFly 萤火虫
  12. 冬瓜哥送你元宵大礼盒啦!!
  13. 第一次学游泳技巧_新手学游泳第一次下水,学会如何将身体进入水中
  14. 相册服务器维护,相册云服务器
  15. 在移动设备上使用M3G编程教程(转)
  16. Saas应用领域与行业前景
  17. 【C语言刷LeetCode】717. 1 比特与 2 比特字符(E)
  18. 第一次写计算机论文无从下手怎么办?(一) - 易智编译easeediting
  19. ORA-39346: data loss in character set conversion for object COMMENT
  20. redis的热key、大key

热门文章

  1. 论文浅尝 | 基于知识图谱的子图匹配回答自然语言问题
  2. jieba分词太慢,怎么办?找jieba_fast
  3. 剑指offer题目汇总
  4. CS224n学习笔记1-nlp介绍和词向量
  5. 07.MyBatis中的关联查询
  6. excel保存超过15位数据不变科学计数法的方法
  7. hihocoder1457
  8. Solr 访问 403 错误
  9. USACO 1.2 Milking Cows (枚举)
  10. Nim游戏(初谈博弈)