2013-04-09 76 views
1

在這篇偉大的文章(http://eatplayhate.wordpress.com/2010/07/18/mono-cecil-vs-obfuscation-fight/)中,作者聲稱Mono.Cecil並不完美,但是它翻譯了良好的90%功能,沒有任何問題。Mono.Cecil - 混淆的惡意代碼

我給你們的問題是:邪惡的程序員能夠混淆使用Mono.Cecil無法反混淆的惡意代碼,從而導致我的程序(第三方代碼)嚴重違反? 如果答案是肯定的,你知道我可以使用什麼符號來編寫這樣的代碼,或者我可以如何保護自己免受這些代碼的侵害?

+0

你想專門防止反混淆?或反對混淆? – 2013-04-09 12:31:41

+0

針對obfuscation – user2153949 2013-04-09 12:47:52

+0

在我的情況下,我得到了第三方代碼,我進行了反混淆處理 – user2153949 2013-04-09 12:54:15

回答

2

當然,邪惡的程序員總是可以對代碼進行混淆,而不是對其進行反混淆處理。畢竟,確定任意代碼的行爲是一個不可判定的問題。

實際上,混淆vs反混淆的鬥爭正在結束,誰付出更多的努力。混淆比反混淆容易得多,但由於各種原因,商用混淆器往往不如手動或自定義混淆器編寫的複雜。 Mono Cecil足以勝任許多常見混淆工具的事實並不意味着它可以對後者做任何事情。

如果您想查看一些可以用手混淆代碼的技巧,請查看this crackme。它是Java字節碼而不是CLI,但這個想法很相似。截至撰寫本文時,儘管在單一課堂中由單一方法組成的裂縫,但沒有人解決它。它甚至不使用反射,正確使用反射使得自動反混淆幾乎不可能。

然而,真正的問題是你想要做什麼。你是否試圖檢查惡意行爲的任意代碼?對不起,但那不太可能。您需要在沙箱中運行它。