从可执行文件获取程序集

时间:2019-07-28 19:38:43

标签: c# .net-assembly

我正在努力编写一个程序,该程序将能够从指定的.exe读取汇编代码。我想做的是读取可执行文件的汇编代码,以便找到可以用等效指令替换的指令,以获得不同的字节码。

通常将其称为源加扰器/签名加扰器,它修改汇编代码以便获得导致不同签名的不同字节码。

我正在阅读有关C#中的Assembly类的信息,但没有找到任何可能返回诸如IEnumerable之类的东西的信息,其中IEnumerable包含来自.exe的汇编代码。

有人可以教育我吗?这有可能吗?不同的方法?

1 个答案:

答案 0 :(得分:1)

.NET并没有真正处理字节码。所有.NET程序都转换为MSIL,由.NET运行时执行,然后才转换为字节码。整个过程与JavaBytecode的工作原理非常相似。

因此,您可以完全访问任何名称。您甚至可以像.DLL文件一样使用.NEt Executeables。但是在继承或替换文件之外,替换内容并不容易。

您可能需要的按位操作需要使用裸指针。而.NET开发人员则不费吹灰之力,因此您永远不必使用裸露的指针。您仍然可以使用Unsface代码使用它们,但是这听起来像是程序的主要用途,所以从本地C ++之类的东西开始可能会更好。实际上,所有这些内容都使用裸指针作为默认指针,而不是后备指针。