我想制作一个混淆器

1 .net cil edit

这是一个两部分问题.但它都与同样的事情有关.

我想使用应用程序的IL代码来应用补丁.我想知道什么是正确的方法.显然我可以反编译它并读取和编辑il代码文件然后重新编译.但有没有办法在文件中将其作为msil代码读取.并且可能实时编辑它.

我试图编辑可执行文件的反编译代码.但每次我重新编译它都会导致执行问题.就像它再也找不到它的切入点了.我该如何计算?我猜我需要知道命令及其参数的长度,或者使入口点成为Label或其他东西.如果有像这样的东西的Visual Studio模板,我会很高兴.

Sam*_*ell 6

作为已经多次阅读ECMA-335规范并且用两种不同语言实现CLI图像加载器的人(在一次完整的IL分析中),我会说这对我来说仍然是一项具有挑战性的任务.我这样说是因为看起来两者都是1)你没有这样做2)你正在寻找一个简单的答案.规范绝对应该是你的起点.

最小的程序是:

  • 加载PE映像(exe或dll)
  • 解析所有方法的字节码并解析符号
  • 应用代码转换(当然最小化是单个转换,例如重命名私有方法)
  • 将结果保存为新的PE图像

编辑:这不会让您不必了解.NET程序集的详细结构,但它可以节省您在实际实现中的一些时间,并有助于保持您的混淆器逻辑与加载器完全分离.