.NET外挂系列:1. harmony 基本原理和骨架分析
💡
原文中文,约6900字,阅读约需17分钟。
📝
内容提要
Harmony是一个跨平台的.NET方法修补和替换库,通过前缀、后缀和转译器补丁动态注入代码,帮助调试和解决程序问题。本文介绍了如何使用Harmony监控线程启动,分析代码逻辑,提高调试效率。
🎯
关键要点
- Harmony是一个跨平台的.NET方法修补和替换库,适用于调试和解决程序问题。
- Harmony支持在运行时修补、替换和装饰.NET方法,兼容PC、Mac和Linux等主流平台。
- Harmony的注入点包括前缀补丁、后缀补丁、转译器补丁、终结器补丁和反向补丁。
- 前缀补丁在原始方法执行前运行,后缀补丁在原始方法执行后运行。
- 转译器补丁允许对IL代码进行更精细的控制,终结器补丁用于屏蔽异常。
- 反向补丁用于在DynamicMethod方法之前生成动态代码,进行横向扩展。
- 通过观察线程的启动情况,可以使用Harmony监控Thread.Start方法,找出导致线程暴涨的原因。
- 使用Harmony的PatchAll方法可以自动应用所有标记为HarmonyPatch的补丁。
- 通过输出调用栈,可以追踪到导致线程启动的具体代码。
- 理解Harmony的底层原理需要查看汇编代码,识别钩子代码的生成过程。
- 灵活运用.NET外挂技术是.NET高级调试师的基本功,可以有效提高调试效率。
➡️