2010-09-01 105 views
3

我想構建一個能夠使用.Net類的應用程序。如果我選擇C#,我知道像Refactor這樣的工具能夠對代碼進行逆向工程(直到我不付出昂貴的工具才能避免這種情況)。Can Reflector能夠逆向工程C++/CLI應用程序

你知不知道當我的應用程序是用Visual C++開發的時候(使用/ clr)。 您可以輕鬆地將託管代碼與非託管代碼混合,直接調用我需要的所有.Net類。

你知道結果是否仍然可以用Reflector進行逆向工程?

我真的不知道最終的應用程序是否編譯爲一個普通的二進制文件(如非託管應用程序)直接在CPU上運行,或者如果仍然有一些IL是在加載時使用JIT生成的,所以可以反向設計?

+0

反射器,而不是重構 – Andrey 2010-09-01 10:48:37

+0

您可以逆向工程任何應用程序。 – Kugel 2010-09-01 11:05:44

+0

你可以,並不意味着反射器可以 – 2010-09-01 11:31:11

回答

4

答案是兩者。使用CLR的方法將被編譯爲il,而不使用clr的方法將被編譯爲本地代碼。但最好的答案是編寫一些示例函數,編譯dll並在Refelctor中打開它。

+0

使用'/ clr:pure',即使不使用CLR的函數也會被編譯爲MSIL。 – MSalters 2010-09-01 11:52:14

+0

謝謝!還有一件事。一切都似乎沸騰到一個獨特的解決方案:使用.net作爲COM和我的所有代碼將完全不受管理的C++。 在這種情況下,是否有人知道IL是否仍然存在以及應用程序是否更安全? – 2010-09-01 13:04:42

+0

COM將是.Net,並將在反射器中可見。非託管C++將保持非託管C++。 – 2010-09-01 14:38:55