游戏外挂:劫持技术

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文件。

 

 

 

时间: 2024-08-11 11:53:15

游戏外挂:劫持技术的相关文章

游戏外挂网站暗藏病毒:下个外挂,电脑秒变“毒窝”

本文讲的是游戏外挂网站暗藏病毒:下个外挂,电脑秒变"毒窝", 一.综述 近期,火绒安全团队截获一批捆绑在<地下城与勇士>游戏外挂上的首页劫持病毒.根据技术分析追溯,我们确定这些病毒的主要传播源是一个游戏外挂网站,进而发现,这个外挂站是一个巨大的"病毒窝点",传播的电脑病毒种类之多.数量之大,令人惊讶. 总体说来,该网站暗藏三类病毒,一类是游戏用户深恶痛绝的括盗号木马,二类是控制用户电脑,劫持首页的后门病毒,三类是强制捆绑安装软件的下载器病毒.该网站的用户

教你用python制作游戏外挂

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~ 为啥这么有难度?8种菜单记不清,点点就点错,鼠标还不好使肌肉劳损啥的伤不起啊-- 首先要声明,这里的游戏外挂的概念,和那些大型网游里的外挂可不同,不能自动打怪,不能喝药不能躲避GM-- 那

关于游戏外挂的一个帖子

//------------- 我主要对外挂的技术进行分析,至于游戏里面的内部结构每个都不一样,这里就不做讲解了,我也没有那么厉害,所有的都知道,呵呵! 1 首先游戏外挂的原理 外挂现在分为好多种,比如模拟键盘的,鼠标的,修改数据包的,还有修改本地内存的,但好像没有修改服务器内存的哦,呵呵!其实修改服务器也是有办法的,只是技术太高一般人没有办法入手而已!(比如请GM去夜总会,送礼,收黑钱等等办法都可以修改服务器数据,哈哈) 修改游戏无非是修改一下本地内存的数据,或者截获api函数等等,这里我把所

“灵隐”木马黑吃灰:绑架数十款游戏外挂实现恶意推广

本文讲的是"灵隐"木马黑吃灰:绑架数十款游戏外挂实现恶意推广,今年6月,360安全卫士对"灵隐"木马做了预警.最近一段时间,这伙木马又开始活跃,我们也接到不少网友反馈称受到木马干扰,浏览器被篡改,部分软件被删除.我们对这个木马的最新一批传播源做了一次分析. 传播 此类木马传播,仍然是通过打包修改各种外挂,捆绑木马程序,再通过网盘和各类游戏论坛传播. 通过分析传播者的文件列表可以看到作者打包了几十款外挂用来传播这一木马: 图1 有近400多个文件分享记录: 图2 安装

游戏外挂分析_漏洞研究

我主要对外挂的技术进行分析,至于游戏里面的内部结构每个都不一样,这里就不做讲解了,我也没有那么厉害,所有的都知道,呵呵!  1 首先游戏外挂的原理  外挂现在分为好多种,比如模拟键盘的,鼠标的,修改数据包的,还有修改本地内存的,但好像没有修改服务器内存的哦,呵呵!其实修改服务器也是有办法的,只是技术太高一般人没有办法入手而已!(比如请GM去夜总会,送礼,收黑钱等等办法都可以修改服务器数据,哈哈)    修改游戏无非是修改一下本地内存的数据,或者截获api函数等等,这里我把所能想到的方法都作一个介

网页游戏外挂是怎么编的

问题描述 现在开心网校内网的网页游戏外挂都是用什么编的?是用JAVA吗,需要什么技术?麻烦告诉告诉我 解决方案 解决方案二:用什么都可以吧,拦截http消息,分析出各种动作的url然后用程序来发送请求解决方案三:呵呵,用程序编的,用什么语言都一样.

版署:游戏外挂与文库侵权将有详细司法释意

中介交易 SEO诊断 淘宝客 云主机 技术大厅 每经网 北京1月7日电 日前,全国十几个部委正联合进行一场打击侵犯知识产权和制售假冒伪劣商品的专项行动.<每日经济新闻>记者今日(7日)从新闻出版总署获悉,1月11日,最高法院.最高检察院.公安部将联合出台一份<关于办理侵犯知识产权刑事案件适用法律若干问题的意见>,并重点介绍对网络侵犯知识产权行为判定及量刑标准. 百度文库"侵权门"事件是网络侵权著作权的典型案例.不久前,中国文著协.盛大文学.磨铁图书三方共同发布&

AV终结者采用重定向劫持技术

该病毒利用了IFEO重定向劫持技术,使大量的杀毒软件和安全相关工具无法运行:会破坏安全模式,使中毒用户无法在安全模式下查杀病毒:会下载大量病毒到用户计算机来盗取用户有价值的信息和某些帐号:能通过可移动存储介质传播. 1.生成文件 %programfiles%\Common Files\Microsoft Shared\MSInfo\{随机8位字母+数字名字}.datC:\Program Files\Common Files\Microsoft Shared\MSInfo\{随机8位字母+数字名字

求一本介绍游戏开发常用技术的书

问题描述 求一本介绍游戏开发常用技术的书 求一本介绍游戏开发常用技术的书,就是那些诸如异步加载 预加载 缓冲池什么的,要能够从理论到实现机理都能介绍道的 解决方案 有游戏编程精粹和Windows游戏编程大师等等的. 这个你可以在网上书店搜一下,然后对照着买书,一般书中都会告诉你游戏开发用什么技术的. 有个9秒社团网站和蛮牛网站,这两个是游戏开发网站,有游戏代码和其他的资源,你有时间可以上去逛逛的. 至于其它的只有你慢慢去搜集和学习了.

Windows 下的 7 种 DLL 劫持技术

本文讲的是Windows 下的 7 种 DLL 劫持技术,在本文中,我将列出半打可以在Windows运行用户模式的进程中使用DLL注入技术.也许可能会有更多类似的技术,但我正在和你分享的是我所拥有的第一手的技术. AppInit_DLLs 人们以前往往依赖于AppInit_DLLs注册表项.它是操作系统加载程序查询此值并加载创建进程时指定的DLL.我在很长一段时间没有使用这种技术(最后一次我使用它在Windows XP上),而且我听说现在受到恶意软件的广泛使用,所以它也受到限制或被停止使用了.