从查看二进制文件中检测代码片段

时间:2010-06-23 18:43:12

标签: c# .net reflection

没有处理源代码,只是基于二进制文件,有没有办法(肯定必须使用CodeDom,但如果没有CodeDom可能会很好)来判断方法的主体是否有如果构造,使用反射?

2 个答案:

答案 0 :(得分:0)

如果是.Net,请抓住reflector

<强>更新
看到你的评论后,我认为你的问题中缺少很多信息。特别是,写入的二进制文件是什么语言?您是否在询问如何对给定的.Net二进制文件进行反编译?或者您是否在询问如何使用.net来反编译以其他语言编写的二进制文件而不是基于.Net框架?

如果是后者,那么不,反射将不允许您确定存在什么代码。

如果是前者,那我就很困惑。反射器的目的是反编译.net二进制文件......此时你可以直观地检查if语句是否确实存在于相关方法中。

答案 1 :(得分:0)

  1. 反编译(由Chris建议)
  2. 通过代码解析器运行反编译代码(例如参见CS Parser for C#2.0:http://csparser.codeplex.com/
  3. 使用解析器输出来获取所需的信息,例如在方法Z的主体内存在标记Y.