我正在学习伊利诺伊州。
我喜欢 RedGate 的 .Net Reflector 工具(最初是 Lutz)。我已经有了 Serge Lidin 和 Ecma-335 的书。看起来这些东西就是我们必须使用 IL 的全部内容(当然,除了 ILAsm 和 ILDasm)。
我的任务是解析汇编二进制文件并获取 IL 代码。很明显,程序集是一个二进制文件;因此,它只是一个字节链。为了做我想做的事,我需要知道汇编结构:存在哪些标头,它们占用多少字节,字节偏移量以逐字节读取,等等。
Lidin 的书对此进行了描述,但对我来说并不是 100% 清楚。有没有人尝试将 DLL 解析为字节流?要将元数据和 IL 代码作为字节流,然后解析 IL 字节流以获取 IL 源?我不想在这里使用反射;我只想使用二进制文件,而不是。
单声道塞西尔做同样的事情吗?即使是这样,我也想知道该怎么做。
是的,我正在尝试创建另一个类似 .NET Reflector 的轮子,我想知道它是如何制作的。就像有人说的那样:“Lutz 不一定是世界上唯一知道如何制作它的人”。
顺便说一句,ISDasm 是如何工作的?它是用 .net 编码的吗?
有什么想法、资源、例子吗?
谢谢你。