跳转到帖子
受突发性CC攻击流量影响,本站已开启人机验证,校验通过即可恢复访问。

[汇编编辑器] dnSpy 6.1.8

(0篇评论)

1张截图


dnSpy 是一款在游戏模组汉化圈中非常流行的工具,主要用于修改那些基于 .NET 框架开发的游戏模组。

下面是对它以及其汉化用法的详细介绍。

🔧 什么是 dnSpy?

简单来说,dnSpy 是一个功能强大的 .NET 程序反编译工具。它能把编译好的程序(如 .dll 文件)“翻译”回人类可读的 C# 代码,让没有源代码的开发者也能分析、调试甚至修改程序逻辑。

需要留意的是,dnSpy 的原始项目已于2020年停止更新,目前社区维护的是其非官方分支 dnSpyEx,它支持更新的 .NET Core 和 Unity 程序。

🎮 dnSpy 如何用于汉化模组?

许多游戏模组(Mod)的核心是一个或多个 .dll 文件。模组中的文本(如界面文字、物品名称等)通常以字符串的形式存储在这些文件里。汉化的基本原理,就是使用 dnSpy 找到这些英文文本,并将其替换为中文。

📝 汉化操作步骤

  1. 下载与准备:从 GitHub 下载 dnSpy 或 dnSpyEx。它是一个绿色软件,解压后直接运行 dnSpy.exe 即可。操作前,请务必备份原始的 .dll 文件

  2. 打开模组文件:在 dnSpy 中,将目标模组文件夹下的 .dll 文件直接拖拽到左侧的“程序集列表”中。

  3. 定位文本:在左侧列表中展开并找到你要修改的 .dll 文件。通常需要寻找名称包含“Mod”、“Modinfo”或具体模组名的条目。

  4. 查找并修改文本

    • 搜索:你可以使用 Ctrl+Shift+K 快捷键打开搜索功能,输入英文关键词来快速定位。

    • 修改:找到目标字符串后,右键点击并选择“编辑方法”(Edit Method)或“编辑IL指令”(Edit IL Instructions)。

    • 核心原则:在代码编辑器中,只修改双引号 "" 内部的、用户可见的英文文本千万不要改动代码逻辑、变量名、\n(换行)等特殊字符,否则模组可能会崩溃。

  5. 编译与保存:修改完成后,点击编译。编译时可能需要依赖其他库文件,如果报错,需将这些依赖的 .dll 也一同拖入 dnSpy。最后,点击“保存模块”(Save Module)来生成修改后的 .dll 文件。

  6. 特殊情况:有些模组支持多语言,文本可能不直接在代码里,而在独立的资源文件中(如 .resources 或 .txt)。这种情况下,找到对应的语言文件直接修改文本即可。

⚠️ 注意事项

  • 适用性:此方法最适合文本量不大的小型模组。对于大型模组,手动修改会非常繁琐。

  • 风险:修改代码存在一定风险,任何不当操作都可能导致模组无法运行。因此,提前备份是必须的。

  • 合法性:在修改和分发汉化前,请留意模组作者的授权许可,尊重其知识产权。

总的来说,dnSpy 是模组汉化者的利器,它将看似复杂的汉化工作,变成了在指导下可以完成的、有规律可循的文本替换任务。



dnSpy 是一个调试器和 .NET 汇编编辑器。即使没有源代码,你也可以用它来编辑和调试汇编。主要特点:

  • 调试 .NET 和 Unity 汇编

  • 编辑 .NET 和 Unity 汇编

  • 光明与黑暗主题

更多专题请见下文

debug-animated.gif

edit-code-animated.gif

调试器

  • 调试.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)

  • 导出到项目

用户反馈

下载文件后,才可以评论。

没有评论。


© 2022-2026 HUNTER社区 版权所有 Powered by Invision Community

帐户

导航

搜索

搜索

配置浏览器推送通知

Chrome (安卓)
  1. 轻敲地址栏旁的锁形图标。
  2. 轻敲权限 → 通知。
  3. 调整你的偏好。
Chrome (台式电脑)
  1. 点击地址栏中的挂锁图标。
  2. 选择网站设置。
  3. 找到通知选项并调整你的偏好。