dnSpy 是一款在游戏模组汉化圈中非常流行的工具,主要用于修改那些基于 .NET 框架开发的游戏模组。
下面是对它以及其汉化用法的详细介绍。
🔧 什么是 dnSpy?
简单来说,dnSpy 是一个功能强大的 .NET 程序反编译工具。它能把编译好的程序(如 .dll 文件)“翻译”回人类可读的 C# 代码,让没有源代码的开发者也能分析、调试甚至修改程序逻辑。
需要留意的是,dnSpy 的原始项目已于2020年停止更新,目前社区维护的是其非官方分支 dnSpyEx,它支持更新的 .NET Core 和 Unity 程序。
🎮 dnSpy 如何用于汉化模组?
许多游戏模组(Mod)的核心是一个或多个 .dll 文件。模组中的文本(如界面文字、物品名称等)通常以字符串的形式存储在这些文件里。汉化的基本原理,就是使用 dnSpy 找到这些英文文本,并将其替换为中文。
📝 汉化操作步骤
下载与准备:从 GitHub 下载 dnSpy 或 dnSpyEx。它是一个绿色软件,解压后直接运行
dnSpy.exe即可。操作前,请务必备份原始的.dll文件。打开模组文件:在 dnSpy 中,将目标模组文件夹下的
.dll文件直接拖拽到左侧的“程序集列表”中。定位文本:在左侧列表中展开并找到你要修改的
.dll文件。通常需要寻找名称包含“Mod”、“Modinfo”或具体模组名的条目。查找并修改文本:
搜索:你可以使用
Ctrl+Shift+K快捷键打开搜索功能,输入英文关键词来快速定位。修改:找到目标字符串后,右键点击并选择“编辑方法”(Edit Method)或“编辑IL指令”(Edit IL Instructions)。
核心原则:在代码编辑器中,只修改双引号
""内部的、用户可见的英文文本。千万不要改动代码逻辑、变量名、\n(换行)等特殊字符,否则模组可能会崩溃。
编译与保存:修改完成后,点击编译。编译时可能需要依赖其他库文件,如果报错,需将这些依赖的
.dll也一同拖入 dnSpy。最后,点击“保存模块”(Save Module)来生成修改后的.dll文件。特殊情况:有些模组支持多语言,文本可能不直接在代码里,而在独立的资源文件中(如
.resources或.txt)。这种情况下,找到对应的语言文件直接修改文本即可。
⚠️ 注意事项
适用性:此方法最适合文本量不大的小型模组。对于大型模组,手动修改会非常繁琐。
风险:修改代码存在一定风险,任何不当操作都可能导致模组无法运行。因此,提前备份是必须的。
合法性:在修改和分发汉化前,请留意模组作者的授权许可,尊重其知识产权。
总的来说,dnSpy 是模组汉化者的利器,它将看似复杂的汉化工作,变成了在指导下可以完成的、有规律可循的文本替换任务。
dnSpy 是一个调试器和 .NET 汇编编辑器。即使没有源代码,你也可以用它来编辑和调试汇编。主要特点:
调试 .NET 和 Unity 汇编
编辑 .NET 和 Unity 汇编
光明与黑暗主题
更多专题请见下文


调试器
调试.NET Framework、.NET和Unity游戏汇编,无需源代码
设置断点并进入任何装配
本地车,手表,汽车窗户
变量窗口支持将变量(例如解密后的字节数组)保存到磁盘或在十六进制编辑器(内存窗口)中查看
对象ID
多个进程可以同时调试
模块负载断开
迹点与条件断点
导出/导入断点与trace点
调用栈、线程、模块、进程窗口
投掷例外时的突破(第一次机会)
变量窗口支持评估C# / Visual Basic表达式
动态模块可以调试(但由于 CLR 限制,不能进行动态方法调试)
输出窗口记录各种调试事件,默认显示时间戳:)
运行时自我解密的汇编可以被调试,dnSpy 会使用内存中的映像。你也可以强制 dnSpy 始终使用内存镜像而不是磁盘文件。
公共 API,你可以写扩展,或者用 C# 交互窗口来控制调试器
组装编辑
所有元数据都可以编辑
使用 C# 或 Visual Basic 与 IntelliSense 进行编辑方法和类,无需源代码
在C#或Visual Basic中添加新的方法、类或成员
用于低层IL方法正文编辑的IL编辑器
底层元数据表可以被编辑。这在内部使用十六进制编辑器。
十六进制编辑器
点击反编译代码中的地址,即可进入十六进制编辑器中的IL代码
与上述相反,在十六进制编辑器中按下IL主体中的F12,即可进入反编译代码或其他高层比特表示。知道补丁修改了哪条语句真是太好了。
重点介绍.NET元数据结构和PE结构
工具提示显示所选.NET元数据/PE字段的更多信息
进入定位,归档,重新开始
去.NET元数据令牌、方法主体、#Blob / #Strings / #US 堆偏移量或 #GUID 堆索引
跟随参考文献(Ctrl+F12)
其他
BAML 反编译器
蓝色、浅色和深色主题(以及深色高对比度主题)
书签
C# 交互窗口可用于编写 dnSpy 脚本
在装束中搜索类、方法、字符串等
分析类和方法的使用情况,查找调用者等
多标签和标签组
引用被高亮显示,使用Tab / Shift+Tab切换到下一个引用
进入点和模块初始化器命令
前往metadata token或metadata row命令
代码提示(C# 和 Visual Basic)
导出到项目
下载文件后,才可以评论。
没有评论。