游戏外挂:劫持技术

简介: 1.  安装DetoursExpress30.msi,点击安装,安装后的目录结构如下: 在sample里面有例子,可供查看使用 2.第一步,打开VS2013开发人员命令提示(E:\Installed\MicrosoftVisual Studio 12.0\Common7\Tools\Shortcuts\VS2013 开发人员命令提示),进入Detours安装目录下的src目录,

1.  安装DetoursExpress30.msi,点击安装,安装后的目录结构如下:


在sample里面有例子,可供查看使用

2.第一步,打开VS2013开发人员命令提示(E:\Installed\MicrosoftVisual Studio 12.0\Common7\Tools\Shortcuts\VS2013 开发人员命令提示),进入Detours安装目录下的src目录,效果图如下:


2.新建项目,暂定项目名称是“劫持”

3.lib知识点

选中解决翻案à添加à新建项目à常规,输入lib名称


创建一个1.c文件


同理,添加一个1.h,内容如下

void msg();

添加一个1.c,内容如下:

#include<Windows.h>

 

void msg()

{

    MessageBoxA(0, "11111", "2222", 0);

}

右击项目à属性à常规à配置类型à静态库.lib

 

然后,生成à生成lib,执行完成后发现资源目录里面的Debug目录下就有lib.lib文件了。

 

如果想在劫持项目中使用自己写的静态链接库。右击劫持项目à属性à链接器à常规à输入à附加依赖库,在最前面添加   lib.lib;  截图如下:

 

将lib.lib文件放到源文件同级目录下,截图如下:

 

在劫持项目里的hello.c文件中添加函数声明

#include <stdio.h>

#include <stdlib.h>

voidmsg();

 

void main()

{

    printf("hello world");

    getchar();

}

这时候运行的时候就可以调用了lib.lib了。

 

动态库随时加载,随时注入。

静态库只有在编译的时候才可以调用。

 

4.使用detours做劫持(将项目改成release模式),其中项目结构如下(下面是劫持自己的过程):

A放文件有:

detours.h   (src下)

detours.lib  (lib.X86下)

detver.h    (src下)

将上面的文件放在源文件目录下即可

B.添加

#include"detours.h"  //载入头文件

#pragma comment(lib, "detours.lib")//表明要使用静态库

 

C:定义一个新的函数取代旧的函数。

int  newsystem(const char *_Command) //新的函数

{

    return 0;

}

 

D:添加Hook()方法和UnHook();

 

E:设置上detours.lib,方法是:右击项目à属性à链接器à输入à附加依赖项。截图:

 

#include<stdio.h>

#include<stdlib.h>

#include<Windows.h>

#include "detours.h" //载入头文件

#pragma comment(lib,"detours.lib")//表明要使用的静态库

//detour在realse模式生效

//创建函数指针等于地址,加上静态防止影响其它的源文件

static int(*oldsystem)(constchar* _Command) =system;

 

int newsystem(constchar * _Command) //新的函数

{

    return 0;

}

 

//开始拦截

void Hook()

{

    DetourRestoreAfterWith();//恢复原来状态,

    DetourTransactionBegin();//拦截开始

    DetourUpdateThread(GetCurrentThread());//刷新当前线程

    //这里可以连续多次调用DetourAttach,表明HOOK多个函数

 

    DetourAttach((void **)&oldsystem,newsystem);//实现函数拦截

    DetourTransactionCommit();//拦截生效

}

 

//取消拦截

void UnHook()

{

    DetourTransactionBegin();//拦截开始

    DetourUpdateThread(GetCurrentThread());//刷新当前线程

    //这里可以连续多次调用DetourDetach,表明撤销多个函数HOOK

    DetourDetach((void **)&oldsystem,newsystem); //撤销拦截函数

    DetourTransactionCommit();//拦截生效

}

 

 

void main()

{

    system("calc");

    printf("%p,%p,%p",system, newsystem, oldsystem);

    Hook();

    printf("\n%p,%p,%p",system, newsystem, oldsystem);

    system("calc");

    getchar();

}

 

现象是加了Hook()之后只弹出了一次计算机窗口,如果去掉了Hook()方法,则出现两个计算器窗口。

 

5、劫持应用

A:创建一个基于窗口的MFC的应用程序->然后拖一个button->双击buttonà添加代码,事件代码如下:

void C劫持测试2Dlg::OnBnClickedButton1()

{

     // TODO:  在此添加控件通知处理程序代码

     #include<stdlib.h>

     system("calc");

}

窗口截图如下:


B:选中解决方案,新建一个常规空项目(项目名称:劫持其他程序),这时候要写一个库劫持MFC程序

将detours中的各种相关文件放到源文件下面。截图如下:


C:修改项目的依赖项:右击项目-->属性-->链接器-->输入-->附加依赖项-


D:将项目改成dll项目,也就是,修改配置属性里面的常规的目标文件名和配置类型,截图如下:


1、编写dll内容:

#include<stdio.h>

#include<stdlib.h>

#include<Windows.h>

#include<string.h>

 

#include"detours.h"

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

 

static int(*poldsystem)(constchar * _Command) =system;//存储函数指针地址

 

int  newsystem(const char *_Command)

{

    //tasklist

    printf("%s",_Command); //禁止你干活

    return 0;

}

//开始拦截

void Hook()

{

    DetourRestoreAfterWith();//恢复原来状态

    DetourTransactionBegin();//拦截开始

    DetourUpdateThread(GetCurrentThread());//刷新当前线程

    //这里可以连续多次调用DetourAttach,表明HOOK多个函数

    DetourAttach((void **)&poldsystem,newsystem);//实现函数拦截

    DetourTransactionCommit();//拦截生效

}

 

//导出函数,可以加载的时候调用

_declspec(dllexport)void  go()

{

    MessageBoxA(0, "1", "2", 0);

    Hook();

}

E:生成dll文件,然后使用dllInject工具将它注入到应用里面。

 

6:劫持系统的原理是劫持CreateProcess()函数。同样也是编写dll文件。

 

 

 

目录
相关文章
|
1月前
|
云安全 安全 网络协议
游戏服务器被攻击,游戏盾防护具有哪些作用
在数字化时代蓬勃发展,但也面临着黑客攻击、DDoS和CC攻击等网络安全威胁。游戏盾防护应运而生,专为游戏行业提供全面的网络安全解决方案,不仅有效防御大型DDoS攻击,还能精准抵御特有TCP协议的CC攻击,同时通过智能行为分析和业务安全防护,确保游戏服务器的稳定运行,提升用户体验,维护游戏生态和品牌声誉,助力游戏行业健康发展。
|
5月前
|
云安全 监控 安全
什么是游戏盾,能为游戏安全提供哪些帮助
游戏盾是一种专为游戏行业量身定制的网络安全防护解决方案。随着网络游戏的普及和玩家数量的激增,游戏服务器面临的网络威胁也日益增多,包括但不限于分布式拒绝服务攻击(DDoS攻击)、挑战碰撞(CC)攻击等。为了应对这些挑战,游戏盾应运而生,旨在为游戏运营商提供全方位、高效能的网络安全解决方案。
|
7月前
|
SQL 云安全 安全
游戏遇到攻击有什么办法解决
游戏行业在繁荣中遭遇严峻网络安全挑战,如DDoS、SQL注入和恶意软件等攻击。有效防护策略包括使用高性价比的安全解决方案,如德迅云的安全应用加速产品,它提供无视DDoS攻击的防御、快速配置、优质网络体验及经济的计费模式。游戏盾通过隐藏服务节点、数据加密和WAF等手段,增强抗DDoS、CC防护和业务安全,确保游戏运行流畅,提升玩家体验。
|
8月前
|
安全 算法 程序员
【软件逆向】软件破解?病毒木马?游戏外挂?
【软件逆向】软件破解?病毒木马?游戏外挂?
150 0
|
8月前
|
网络协议 安全 网络安全
游戏被攻击该怎么办?游戏盾该如何使用,游戏盾如何防护攻击
游戏被攻击该怎么办?游戏盾该如何使用,游戏盾如何防护攻击
|
网络协议 安全 数据安全/隐私保护
渗透小姐姐的心系列-劫持小姐姐电脑表白(2)
渗透小姐姐的心系列-劫持小姐姐电脑表白(2)
|
编解码 缓存 资源调度
揭密浏览器指纹:原来我们一直被互联网巨头监视,隐私在网上裸奔、无处可藏
今天讲⼀些让您按捺不住和欲求不满的反浏览器追踪技术,揭开你是如果被互联网巨头监控的。
383 0
揭密浏览器指纹:原来我们一直被互联网巨头监视,隐私在网上裸奔、无处可藏
|
云安全 网络协议 安全
如何有效处理游戏被攻击问题
游戏行业一直是网络攻击的重灾区,游戏遭受网络攻击是比较常遇到的,那么该怎么有效处理游戏被攻击问题
|
Web App开发 安全
戴尔推免费浏览器安全工具 可隔离恶意软件
据国外媒体报道,戴尔于周一推出一款免费的网页浏览器安全软件,通过在桌面创建一个“sandbox”的方式,隔离浏览网页过程中可能遇到的恶意软件和其它恶意行为。 戴尔旗下的系统管理工具部门Kace总裁鲍勃·梅因哈特(Bob Meinhardt)表示:“众所周知,浏览器是恶意行为针对的重要目标。
844 0
|
安全
微软称在线游戏玩家仍是蠕虫主要攻击目标
2月22日消息,互联网上最常见的恶意软件是什么?僵死网络代码?旨在危害在线游戏玩家的窃取口令的蠕虫如何? 微软2月19日称,它在2月份的上半个月删除了将近100万个专门窃取口令的蠕虫病毒。微软的恶意软件清除工具发现了98.1万个名为“Win32/Taterf”的恶意软件。
796 0