C#简易外挂制作

article/2025/9/23 23:43:09

【外挂修改器简单介绍

游戏外挂分为很多种类型,例如本地客户端的内存修改、远程服务器的封包破解。

一般的网游由于服务器的机能限制,并不会将游戏产生的所有数据、计算都提供给服务器来承担。经常的,服务器只会将玩家人物的属性、血量、加点、金钱、装备等重要信息储存在服务器本地,计算结果和数据传递则是通过加密封包来和客户端传输。

因此网游如果封包被破解而被用户发送伪造的封包数据将造成非常严重的后果。

 

【C#本地修改器

 

如上所述,虽然封包的一般无法破解,但是利用服务器无法储存所有的信息这个特点,我们可以通过修改本地客户端的内存数据来制作一些建议的外挂,如修改坐标达到穿墙、加速的效果。

修改这类的本地数据,一般我们使用到 Cheatgine 来搜索内存特定数值。关于这个这工具网上已经有很多完善的教程,这边就不赘述了。

这边通过QQ连连看的示例来教程一般的C#的外挂制作。 

 

通过Cheatgine搜索到时间、罗盘、重列的数量、本机座位的内存基址偏移量,再绘制出界面就可以开始制作。

(CheatEngine)

 

(简易的界面UI)

 

 

这边提供一个C#的内存修改读取抽象类

  1     public abstract class Helper  //内存读写核心
2 {
3 [DllImportAttribute("kernel32.dll", EntryPoint = "ReadProcessMemory")]
4 public static extern bool ReadProcessMemory
5 (
6 IntPtr hProcess,
7 IntPtr lpBaseAddress,
8 IntPtr lpBuffer,
9 int nSize,
10 IntPtr lpNumberOfBytesRead
11 );
12
13 [DllImportAttribute("kernel32.dll", EntryPoint = "OpenProcess")]
14 public static extern IntPtr OpenProcess
15 (
16 int dwDesiredAccess,
17 bool bInheritHandle,
18 int dwProcessId
19 );
20
21 [DllImport("kernel32.dll")]
22 private static extern void CloseHandle
23 (
24 IntPtr hObject
25 );
26
27 //写内存
28 [DllImportAttribute("kernel32.dll", EntryPoint = "WriteProcessMemory")]
29 public static extern bool WriteProcessMemory
30 (
31 IntPtr hProcess,
32 IntPtr lpBaseAddress,
33 int[] lpBuffer,
34 int nSize,
35 IntPtr lpNumberOfBytesWritten
36 );
37
38 //获取窗体的进程标识ID
39 public static int GetPid(string windowTitle)
40 {
41 int rs = 0;
42 Process[] arrayProcess = Process.GetProcesses();
43 foreach (Process p in arrayProcess)
44 {
45 if (p.MainWindowTitle.IndexOf(windowTitle) != -1)
46 {
47 rs = p.Id;
48 break;
49 }
50 }
51
52 return rs;
53 }
54
55 //根据进程名获取PID
56 public static int GetPidByProcessName(string processName)
57 {
58 Process[] arrayProcess = Process.GetProcessesByName(processName);
59
60 foreach (Process p in arrayProcess)
61 {
62 return p.Id;
63 }
64 return 0;
65 }
66
67 //根据窗体标题查找窗口句柄(支持模糊匹配)
68 public static IntPtr FindWindow(string title)
69 {
70 Process[] ps = Process.GetProcesses();
71 foreach (Process p in ps)
72 {
73 if (p.MainWindowTitle.IndexOf(title) != -1)
74 {
75 return p.MainWindowHandle;
76 }
77 }
78 return IntPtr.Zero;
79 }
80
81 //读取内存中的值
82 public static int ReadMemoryValue(int baseAddress, string processName)
83 {
84 try
85 {
86 byte[] buffer = new byte[4];
87 IntPtr byteAddress = Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0); //获取缓冲区地址
88 IntPtr hProcess = OpenProcess(0x1F0FFF, false, GetPid(processName));
89 ReadProcessMemory(hProcess, (IntPtr)baseAddress, byteAddress, 4, IntPtr.Zero); //将制定内存中的值读入缓冲区
90 CloseHandle(hProcess);
91 return Marshal.ReadInt32(byteAddress);
92 }
93 catch
94 {
95 return 0;
96 }
97 }
98
99 //将值写入指定内存地址中
100 public static void WriteMemoryValue(int baseAddress, string processName, int value)
101 {
102 IntPtr hProcess = OpenProcess(0x1F0FFF, false, GetPid(processName)); //0x1F0FFF 最高权限
103 WriteProcessMemory(hProcess, (IntPtr)baseAddress, new int[] { value }, 4, IntPtr.Zero);
104 CloseHandle(hProcess);
105 }
106
107 }


 

 将找到的内存基址定义好

 1         //将值写入指定内存中
2 public void WriteMemory(int baseAdd, int value)
3 {
4 Helper.WriteMemoryValue(baseAdd, processName, value);
5 }
6
7 private int baseAddress = 0x00111DEC; //游戏内存基址
8 private string processName = "QQ游戏 - 连连看角色版"; //游戏进程名字
9
10 int temp = 0; int sit = 0;
11

 

 利用所提供的内存读写抽象类写入内存,并利用一个timer持续写入这个内存数值以达到锁定数值的目的。

 1         private void timer1_Tick(object sender, EventArgs e) //冻结时间
2 {
3 int address = ReadMemoryValue(baseAddress);
4 address += 0x49d8;
5
6 if (checkBox1.Checked == true)
7 {
8 timer1.Enabled = true;
9 WriteMemory(address, 700);
10 label1.Text = "已冻结";
11
12 }
13
14 if (checkBox1.Checked != true) label1.Text = "未冻结";
15 }


 

以上就是一个例子,一般的单机游戏修改器也可以用这样的方法制作完成。

当然现在有不少网游有保护盾,可以防止游戏客户端内存被修改,这类的技术一般是用驱动、内核、进程挂钩完成,可以利用XT手动解除这些保护。

转载于:https://www.cnblogs.com/maybreath/archive/2012/03/10/2389374.html


http://chatgpt.dhexx.cn/article/TIJT6X6h.shtml

相关文章

旧手机改电脑外挂,文本补充

时间:2022/11/18 作者:二本双非小白 该文章主要针对小白 事情开始: 2022-06-02 某位华为大佬发布视频-----------旧手机改电脑外挂 视频链接:旧手机改电脑外挂-效率或将“提升300%?”_哔哩哔哩_bilibili 随着时间推移&…

利用Python做绝地科学家(外挂篇)

前言 玩吃鸡时间长的小盆友,应该晓得这游戏的体验非常差,特别是高端局,神仙满天飞。 所有今天我也要用Python写一个外挂,开始我的报复科学实验。 但是,要是。。。。。。要是被封号了,那就,那就…

外挂制作必备工具下载.

外挂制作必备工具下载. 工具下载: peid 0.94 用于查壳,知道什么壳就可以脱壳拉. http://www.pediy.com/tools/unpack/File_analysers/peid/peid.rar OllyDbg调试器 调试游戏. http://www.pediy.com/tools/Debuggers/ollydbg/OllyICE.rar OD脱壳脚本 用于脱壳. http:/…

游戏反外挂技术原理讲解

永远在路上 没有破解不了的反外挂系统,反外挂是一个对抗过程,需要不断升级。我们反外挂小组会采取对抗方式提升防御,也会研究竞品来获取灵感。反外挂也是非常有意思的,可以学到很多很多底层知识。 善战者无赫赫之功 反外挂&#x…

游戏外挂:用Python做个小游戏的开挂

小游戏开挂之路 一、工具的准备1.截屏和图像处理工具2.编辑器3.游戏原理分析二、开挂步骤1.移动鼠标2.点击鼠标3.相似图像查找原理4.实现开挂,自动做菜玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过外挂怎么制作出来的呢?现在来看一下怎么制作一个外…

网游外挂之制作流程

很多人都对网游外挂的制作很感兴趣,在这篇文章里,我向大家简单介绍一下一款网游外挂的大致制作流程。 首先,我想说明几点: 第一,这篇文章并不是具体教你如何写外挂,只是带你大致浏览一下网游外挂的制作流程…

干货!什么是游戏外挂,外挂的种类及实现原理

外挂,原指一切用来破坏游戏程序正常游戏数据和逻辑的工具或破解版。比如可以修改游戏内存数据的修改器,又比如可以修改网络数据包的抓包工具。这类外挂或多或少会影响游戏的内存数据、文件数据、网络数据,甚至代码逻辑。 但随着外挂市场的发…

各网游的外挂是如何做出来的?

每一个致力于学习黑客技术的人,最后都分为三种人。 第一种:入侵,各种入侵,玩的就是入侵的快感,或者恶作剧的喜感,或者那种有特殊“窥视”癖好的人……别误会,小编我是喜欢“恶作剧,…

shift后门入侵步骤

shift后门入侵 步骤 找到 C:\WINDOWS\system32\sethc.exe 文件并将其删除 在工具文件夹选项——查看中红圈中的更改了 将 C:\WINDOWS\system32\dllcache\sethc.exe删除,这个文件夹中放着缓存,如果不删除就会自动变回去找到 C:\WINDOWS\system32\cmd.exe…

windows操作系统常见持久性后门

作者: h0we777 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。 0x00 简介 ​ 当我们拿到域中最高权限之后,就需要将自己的权限进行巩固,进行权限持久化操作。 0x01 隐藏账户 1…

权限持久化---映像劫持检测(Shift后门)

映像劫持说白了还是利用了windows的一些特性,当你点击可执行文件进行执行时,系统并不会直接就对可执行文件进行执行,而是首先对注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options&…

渗透测试模拟实战——暴力破解、留后门隐藏账户与shift粘贴键后门、植入WaKuang程序(靶机系统:Windows2008)

本次实验主要是为了应急响应打基础,从攻击者的角度出发,知己知彼,百战不殆 一、环境搭建 靶机: Windwos Server 2008 系统 靶机IP地址: 192.168.226.137 攻击IP地址: 192.168.226.1 二、模拟攻击 2.1 …

搞死虚拟机-永恒之蓝和shift后门

扫描端口:发现开启了445端口可能存在永恒之蓝(ms17_010)漏洞 nmap -sV -p- -A -v 192.168.206.129 开启msf msfconsole 搜素 search ms17_010 使用msf验证脚本,验证是否存在ms17_010 use auxiliary/scanner/smb/smb_ms17_010…

shift后门的一个分析

有关shift后门的激活方式,目前发现的就这么几种1.使用键盘事件通过快捷键激活2.使用鼠标事件通过单击或双击界面某处激活3.使用键盘事件及鼠标事件相结合的方式激活  以上所说的是高防后门的激活方式,rar自解压的不在此范围之内,后门的编程语言目前发现以vb,delphi和c等语言为…

创建隐藏用户和shift后门制作

目录 创建隐藏用户 shift后门制作 创建隐藏用户 1、创建隐藏用户kiku$,并加入到管理员组 2、利用cmd命令行(命令net user)和计算机管理 查看结果 3、打开注册表 4、导出administrator和隐藏用户kiku$的文件 5、将隐藏用户删除(一定要使用…

后渗透篇:Windows 2008 server提权之突破系统权限安装shift后门

当你的才华 还撑不起你的野心时 那你就应该静下心来学习 目录 Windows 2008 server提权之突破系统权限安装shift后门 0x01 前言 0x02 主要操作部分 0x03 主要命令组成部分 Windows 2008 server提权之突破系统权限安装shift后门 0x01 前言 大家都知道08权限的系统权限设置…

各式各样的shift后门

经常会看到一些服务器被入侵后,入侵者会留下一些各式各样的shift后门,五花八门的,各位网络管理员也看看自己的服务器的setch.exe是否被人替换了。 这个直接5次shift后进入分区 这个比较巧妙了,正常的最后那个按钮是灰色的&#xf…

网络安全实验十二 window 2003 Shift后门实验

一、实验目的 1、了解windows系统中的漏洞 2、了解windows系统漏洞的危害 3、了解windows系统如何预防漏洞带来的危害 4、了解利用windows 2003系统粘滞键漏洞建立后门程序并利用该后门 二、实验环境 实验主机:Windows Server 2003 实验目标服务器&#xff1a…

创建shift后门

一、实验目的及要求 1. 学会创建Shift后门 2.掌握shift后门的原理 二、实验设备(环境)及要求 PC机, VC等,虚拟云平台 三、实验内容与步骤 1.在192.168.1.3的虚拟机上打开cmd命令指示符; 2.输入“ cd c:\WINDOWS\system32”,进入该文件夹…

Windows留置后门——隐藏用户+Shift后门

文章目录 前言一、创建隐藏用户1. 创建用户2. 隐藏账号 二、Shift后门1. 后门制作2. 防御 总结 前言 后门是攻击者出入系统的通道,惟其如此它隐蔽而危险,攻击者利用后门技术如入无人之境 一、创建隐藏用户 1. 创建用户 1.1、攻击者控制某台机器&#…