如果不使用源代碼,只是基於二進制代碼,是否有一種方法(確定必須使用CodeDom,但如果沒有CodeDom,就會很好用)通過反射來判斷一個方法的body是否有if結構?從查看二進制代碼中檢測代碼片段
1
A
回答
0
如果是.Net,則抓取reflector。
更新
看到您的評論之後,我覺得有很多的信息,從你的問題遺漏。特別是,寫入二進制文件的語言是什麼?你在問如何反編譯給定的.Net二進制文件,或者你在問如何使用.net來反編譯用其他語言編寫的,不基於.Net框架的二進制文件?
如果是後者,那麼反射將不允許您確定存在哪些代碼。
如果前者,那麼我很疑惑。反射器的目的是反編譯.net二進制文件......在這一點上,您可以直觀地檢查if語句是否確實存在於所討論的方法中。
+0
我已經使用反射器多年了。這對我有什麼幫助? – 2010-06-23 18:50:04
0
- 反編譯(由Chris作爲決定)
- 運行通過代碼解析器的反編譯的代碼(C#2.0參見例如CS分析器:http://csparser.codeplex.com/
- 使用解析器輸出,以獲得信息所需的,如存在令牌Y在方法Z的體內
什麼平臺/語言?從上下文我會猜測.NET,但也可能是其他。 – Oded 2010-06-23 18:44:08
是的,一個「if」本質上是一個分支,這高度依賴於編程語言和建築,我的問題是最終目標是什麼? – BobbyShaftoe 2010-06-23 18:46:10
是的,它是.NET,語言是C#。 – 2010-06-23 18:49:39