前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)

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

作者头像
Gxjun
发布2018-03-26 16:07:55
1.1K0
发布2018-03-26 16:07:55
举报
文章被收录于专栏:ml

  要实现下面程序,首先我们需要三个文件 detours.h ,detours.lib ,detver.h(可以去网上下载)

  1. 首先让我们看看,一个最简单的C程序,如何劫持system函数.

代码语言:javascript
复制
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #include<windows.h>
 5 #include"detours.h"
 6 //#include"detver.h"
 7 #pragma comment(lib , "detours.lib")
 8 
 9 // 存储函数指针地址
10 //指针分为:一般指针,多级指针。 指针函数,函数指针,指针数组 。数组指针。
11 //static int(*poldsystem) (const char * _Command)=system;
12 static int( *poldsystem )(const char * _Command) = system;
13 //自己实现一个system函数
14 int mysystem( const char *    _Command){
15     const char * ps = NULL;
16          ps = strstr(_Command ,"calc");
17     if (ps != NULL)
18         printf("%s 已经被劫持啦!\n", _Command);
19     else
20         printf("run run run 北鼻 !");
21     return 1;
22 };
23 
24 //开始拦截
25 void Hook(){
26     DetourRestoreAfterWith();   //恢复初始状态
27     DetourTransactionBegin();   //拦截开始
28     DetourUpdateThread(GetCurrentThread()); //刷新当前线程
29     //此处下面填写自己想要拦截的函数
30     DetourAttach((void **)&poldsystem, mysystem);    //实现函数拦截
31     DetourTransactionCommit(); //提交事务,拦截生效
32 }
33 
34 //撤销拦截
35 void UnHook() {
36     DetourTransactionBegin();   //拦截开始
37     DetourUpdateThread(GetCurrentThread()); //刷新当前线程
38     DetourDetach((void **)&poldsystem, mysystem);
39     DetourTransactionCommit();
40 }
41 int main( void ) {
42 
43     system("calc");
44     Hook();
45     system("tasklist");
46     UnHook();
47     getchar();
48     //system("pause");
49  return 0;
50 }

截图:

   结果显示。第一个system实现了,但是第二个system被劫持,无法执行、 

2.   如果相对其他的程序或者软件劫持的话,只需要生成动态库(.dll)形式。注入到该程序或者软件模块中,这样就可以了!!  做到这儿,是不是再加上一点点线程的知识,就有想做一个桌面锁的冲动呀!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档