《挺进地牢》修改器开发技术揭秘
创作时间:
作者:
@小白创作中心
《挺进地牢》修改器开发技术揭秘
引用
百度
等
12
来源
1.
https://baike.baidu.com/item/%E6%8C%BA%E8%BF%9B%E5%9C%B0%E7%89%A2/19519746
2.
https://www.18183.com/gonglue/202211/4273732.html
3.
https://www.gamersky.com/handbook/201604/738105.shtml
4.
https://blog.csdn.net/weixin_43166958/article/details/113628773
5.
https://store.steampowered.com/app/311690/_/?l=schinese
6.
https://blog.csdn.net/shulianghan/article/details/121314138
7.
https://blog.csdn.net/qq_20173195/article/details/126119851
8.
https://www.bilibili.com/video/BV1Ui4y1b7zb/
9.
https://www.cnblogs.com/LyShark/p/10799926.html
10.
https://zh.wikipedia.org/wiki/%E6%8C%BA%E9%80%B2%E5%9C%B0%E7%89%A2
11.
https://www.bilibili.com/read/cv3459856/
12.
https://www.cnblogs.com/LyShark/p/17727115.html
《挺进地牢》(Enter the Gungeon)是由Dodge Roll开发的一款射击冒险游戏,玩家需要控制角色进行地牢式的RPG探险。游戏采用像素风格画面,给人一种复古的感觉。虽然游戏看上去没有大作酷炫,但游戏内容非常有趣,玩家需要充分利用场景中的各种要素,如引爆炸药桶、推倒桌子当做掩护等。
在游戏开发和测试过程中,修改器是一个非常有用的工具。它可以帮助开发者调试游戏逻辑,测试不同场景下的游戏表现,甚至用于游戏玩法的研究和分析。本文将详细介绍如何使用Cheat Engine和C++开发《挺进地牢》的修改器。
使用Cheat Engine进行内存扫描
Cheat Engine(简称CE)是一个功能强大的开源作弊工具,它集成了内存扫描、十六进制编辑和动态调试等功能。CE可以帮助我们定位游戏中关键数据的内存地址,这是开发修改器的第一步。
环境准备
- 下载并解压Cheat Engine,运行
Cheat Engine.exe(32位系统使用cheatengine-i386.exe)。 - 选择
Edit -> Settings,将语言设置为中文,重启软件。 - 以管理员权限运行CE修改器。
精确扫描数值
以《挺进地牢》为例,假设我们需要找到玩家的生命值地址:
- 启动游戏,进入游戏界面。
- 在CE中点击
打开进程,选择游戏的进程。 - 在CE的主界面,输入玩家当前的生命值(例如100),选择
4字节类型,点击首次扫描。 - 每次玩家生命值发生变化时(例如减少到95),在CE中输入新的数值,点击
再次扫描。 - 重复上述步骤,直到找到唯一的地址。
未知数值扫描
如果游戏中的数值是未知的(例如血条形式),可以使用未知数值扫描:
- 在CE中选择
新扫描 -> 未知初始数值。 - 每次数值发生变化时(例如点击"打我"按钮),在CE中选择相应的变化类型(增加、减少或不变)进行扫描。
- 通过反复筛选,最终找到目标地址。
浮点数扫描
有些游戏使用浮点数存储数值,例如生命值或弹药:
- 在CE中选择
浮点数类型。 - 输入观察到的浮点数值(例如97.0000),点击
首次扫描。 - 数值发生变化后,再次扫描,直到找到目标地址。
C++代码实现进程读写
找到关键数据的内存地址后,我们可以通过C++代码实现对游戏进程的读写操作。以下是一个简单的示例,展示如何使用Windows API实现进程读写:
#include <windows.h>
#include <iostream>
// 进程名
const char* processName = "EnterTheGungeon.exe";
// 需要修改的地址和值
DWORD address = 0x12345678; // 替换为实际地址
int newValue = 1000; // 新的生命值
int main() {
// 获取游戏进程ID
DWORD processId = 0;
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot != INVALID_HANDLE_VALUE) {
PROCESSENTRY32 processEntry;
processEntry.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(snapshot, &processEntry)) {
do {
if (strcmp(processEntry.szExeFile, processName) == 0) {
processId = processEntry.th32ProcessID;
break;
}
} while (Process32Next(snapshot, &processEntry));
}
CloseHandle(snapshot);
}
if (processId == 0) {
std::cout << "未找到游戏进程" << std::endl;
return 1;
}
// 打开游戏进程
HANDLE processHandle = OpenProcess(PROCESS_VM_WRITE | PROCESS_VM_OPERATION, FALSE, processId);
if (processHandle == NULL) {
std::cout << "无法打开游戏进程" << std::endl;
return 1;
}
// 写入新值
if (WriteProcessMemory(processHandle, (LPVOID)address, &newValue, sizeof(newValue), NULL)) {
std::cout << "修改成功" << std::endl;
} else {
std::cout << "修改失败" << std::endl;
}
// 关闭句柄
CloseHandle(processHandle);
return 0;
}
合法性和伦理性
虽然修改器开发是一项有趣的技术活动,但我们也需要明确其合法边界:
- 开发修改器用于个人学习和游戏测试是合法的,但将其用于商业用途或在线作弊是违法的。
- 分享和传播修改器可能侵犯游戏开发商的权益,需要谨慎处理。
- 在使用修改器时,要确保不损害其他玩家的游戏体验。
通过合法和负责任的方式使用技术,我们才能在探索游戏世界的同时,保持对法律和道德的尊重。
通过本文的介绍,相信你已经对《挺进地牢》修改器的开发有了基本的了解。无论是出于学习目的还是游戏测试需求,掌握这些技术都能帮助你更好地理解游戏开发的底层逻辑。记住,技术本身是中立的,关键在于我们如何使用它。在探索游戏世界的同时,也要遵守法律和道德规范,做一个负责任的技术使用者。
热门推荐
太原地铁2号线票价政策及优惠政策详解
一文看懂空气悬架系统的结构与工作原理
生辰八字预测婚姻准吗?
湖北省十大旅游景点
清朝未完全沦为殖民地的背后原因,背景又是什么样的?
民事诉讼代理人资格条件是什么
坐标:济南!春节带娃嗨玩攻略来了!
高铁与动车:速度背后的差异解密
胎儿超大是什么原因
淀粉样蛋白A高,是身体出了什么问题?
2024年报考国家公务员指南:条件与流程
追“星”三十载 电子科技稳护行 | 北斗系统建设应用三十年
不锈钢管与铜管:制冷系统管道材料选择指南
锦带花(Weigela florida):庭院中的缤纷使者
厦门大学:依山傍海的最美校园
八字火炎土燥女命的命理特征及生活调适建议
梅花的分类及形状
追求“修辞立其诚”的同时彰显散文的个性品质
V70A4R10X V70A3R10X 液压柱塞泵不上油原因分析
杠杆收购的风险分析与法律应对
NBA历史超级球队回顾:四支珍贵入选全明星阵容的传奇之路
汤姆猫激进收购10年亏2.6亿 股东减持套现50亿股价跌60%
青海到山西自驾游攻略:最佳路线详解与行程安排
深度解析:离岸贸易所得税的影响与应对策略
肿瘤领域也有罕见病——医保药品目录中的罕见肿瘤药品
磁力看不见摸不着,到底是靠什么媒介来传递的?
房建工程桩基础施工质量的控制方法
精神科检查需要多少钱
SDK软件开发工具包如何做
记忆力提升的科学方法