《挺进地牢》修改器开发技术揭秘
创作时间:
作者:
@小白创作中心
《挺进地牢》修改器开发技术揭秘
引用
百度
等
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;
}
合法性和伦理性
虽然修改器开发是一项有趣的技术活动,但我们也需要明确其合法边界:
- 开发修改器用于个人学习和游戏测试是合法的,但将其用于商业用途或在线作弊是违法的。
- 分享和传播修改器可能侵犯游戏开发商的权益,需要谨慎处理。
- 在使用修改器时,要确保不损害其他玩家的游戏体验。
通过合法和负责任的方式使用技术,我们才能在探索游戏世界的同时,保持对法律和道德的尊重。
通过本文的介绍,相信你已经对《挺进地牢》修改器的开发有了基本的了解。无论是出于学习目的还是游戏测试需求,掌握这些技术都能帮助你更好地理解游戏开发的底层逻辑。记住,技术本身是中立的,关键在于我们如何使用它。在探索游戏世界的同时,也要遵守法律和道德规范,做一个负责任的技术使用者。
热门推荐
2024年全球固定收益指数化投资发展年度报告
BBA音响系统升级,哪款最适合你?
笔记本薄散热的技术进展与挑战
微波炉蒸鸡蛋糕:水和蛋的比例全攻略
“kw”的多重含义解析:从电功率到网络交流的缩写使用探索
拼音:提升中文ASR纠错的秘密武器
如何顺利完成离职社保的转移?这种转移方式有什么优势?
身份证过期能否购买高铁票?相关法律规定与实名制管理分析
跨境电商仓储解决方案指南与实践
“冥”字的意思和解释,“冥”字的成语和组词
中央空调出回风口布局方式解析:下出下回、侧出侧回与侧出下回的全面探讨
中国海军2024年下水9艘舰艇 总吨位达11万余吨
十强债标的分析:博23转债(已清仓)
逆水寒手游各门派禁令是什么,各派禁忌简述
吃羊就去大西北?贵州羊肉的美味你根本不懂!
大脑神经受损的5种症状
鲨鱼裤与袜套搭配指南:时尚显瘦又保暖的秋冬穿搭方案
花店库存管理有哪些程序
如何正确保养和维修打印机(提高打印机使用寿命的关键方法和技巧)
帕金森和阿尔茨海默症有什么区别
罗汉鱼互动性训练:让罗汉鱼成为你的亲密伙伴
四大主流加密货币简介及特性分析
“医路相伴”志愿陪诊服务,温暖患者就医路
镇墓兽在中国古代史中是如何发展演变的?
流感病毒也分“正”“副”?!看这篇就够了.....
怎么用excel做洛伦兹曲线图
减肥期间晚上少吃容易饿怎么办?6个实用建议帮你缓解饥饿感
【健康科普】做好保暖工作还是手脚冰凉?不妨试试这几招
这7个时段千万别忘开窗
区分软组织疼痛和神经病理性疼痛:疼痛类型的分类与临床应用