公司多年前交付的系统如今需要修复几个漏洞,但是源代码已经丢失,只能获取到IIS上的运行文件。我使用dotpeek进行反编译,得到的代码有两万五千多个错误。代码是.NET mvc的。
将dll反编译后得到的代码有大量反编译工具生成的类似<>o__3.<>p__0的成员变量引用,希望有高手能快速得到正确的可运行的代码。
公司多年前交付的系统如今需要修复几个漏洞,但是源代码已经丢失,只能获取到IIS上的运行文件。我使用dotpeek进行反编译,得到的代码有两万五千多个错误。代码是.NET mvc的。
将dll反编译后得到的代码有大量反编译工具生成的类似<>o__3.<>p__0的成员变量引用,希望有高手能快速得到正确的可运行的代码。
在.NET中,反编译工具(如dotPeek)可以帮助你获取程序集的源代码,但由于编译时优化、元数据丢失、IL到C#转换的复杂性等因素,生成的代码通常包含错误、警告以及不完整的符号(如匿名方法和本地变量等),导致难以直接编译或运行。
处理这种大量错误的情况需要一系列复杂的步骤和技巧,没有快速且保证得到完全正确代码的方法。以下是一些建议,帮助你尽可能接近原始代码:
清理反编译代码:
使用其他反编译工具:
依赖第三方库:
分析程序集元数据:
逐步修复和测试:
考虑聘请专家:
安全性考虑:
请注意,即使经过上述步骤,你也可能无法完全恢复原始代码的所有功能和性能。此外,由于源代码丢失,可能存在一些无法修复的问题,尤其是如果原始代码使用了特定的编译器优化或特定的运行时行为。
最后,提供报酬作为寻求帮助的动机是可以的,但请注意在公共平台上(如Stack Overflow)讨论报酬可能不是最佳做法。你可以考虑在专业的开发者社区、论坛或平台上发布相关信息,以寻找愿意帮助你解决问题的专家。同时,请确保遵守所有相关的法律和道德规定,特别是在处理公司资产和敏感信息时。
建议直接上waf,不要考虑反编译来修补漏洞了