C 语言游戏外挂 (五):简单 DLL 劫持

2-E56cAO2viglED8AO

通过 C 语言编写一个游戏要加载的系统 DLL 文件 (lpk.dll),其中假 DLL 包含劫持功能和作弊功能且拥有相同的导出函数,将该假 DLL 放入游戏相同目录下,游戏打开时会自动加载该假 DLL,使游戏直接包含作弊功能

  • 设计思路分析
  • 对象分析
  • 要用的函数介绍
  • 编写测试效果
  • 总体评价

设计思路分析

  1. 构造一个与系统目录下 LPK.DLL 一样的导出表
  2. 加载系统目录下的 LPK.DLL
  3. 将导出函数转发到系统目录下的 LPK.DLL 上
  4. 在初始化函数中加入我们要执行的代码

对象分析

2-8xQKLKOTYMks8fZG

本次游戏对象为 Super Mario XP
没有更新所以可用任意版本
试玩发现人物血量最大为 10,心最大为 99,命最大为 99

要用的函数介绍

__asm{ }
执行括号内的汇编代码
JMP EAX
将 EIP 跳转到 EAX 执行,劫持 DLL 后要获取真正的原函数地址,使用时要进行跳转

编写测试效果

2-oIipwbYuXjtLq8wc

将生成的 mylpk 和作弊模块放入游戏目录,并改 mylpk 名为 lpk

2-E56cAO2viglED8AO

2-NRIt5crGPJEayY8K

打开游戏
直接打开游戏即可, 发现此时游戏已具备作弊效果 (锁定血量)

2-qy2UOfYcjIUSnqn1

工具查看加载模块
发现 cheatDLL 模块已加载入游戏,说明 lpk 劫持成功

2-Njgwe8ZKLQiIHdPC

WIN7 下劫持
在 WIN7 下要劫持只需稍修改注册表即可

2-2WcI90PlQIuX6oSv


 

总体评价

DLL 劫持可以在不用手动加载外挂, 在运行游戏时自动加载作弊功能

评论 (6)
  1. 沙发
    增达网QQ-33092290 2017-03-21 06:32

    真是时光荏苒!

  2. 板凳
    增达网QQ-65590052 2017-03-26 01:39

    感觉不错哦,认真拜读咯!

  3. 地板
    衣皇后 2017-03-31 05:49

    学习使人进步,到此拜读!

  4. 4 楼
    爱CSS 2017-05-17 13:19

    看来你C语言好历害哦

  5. 5 楼
    afafafqwe 2017-05-26 07:29

    win10呢 求游戏文件