2013-04-09 4 views
1

В этой замечательной статье (http://eatplayhate.wordpress.com/2010/07/18/mono-cecil-vs-obfuscation-fight/) автор утверждает, что Mono.Cecil не совершенен, но он перевел 90% всех функций без каких-либо проблем.Mono.Cecil - обфускация вредоносного кода

Мой вопрос к вам, ребята: Может ли злой программист запутать вредоносный код, который нельзя было деобфассировать с помощью Mono.Cecil и, следовательно, вызвать серьезное нарушение в моей программе (сторонний код)? Если да, знаете ли вы, какие символы я могу использовать для написания такого кода, или как я могу защитить себя от такого кода?

+0

Вы хотите защитить себя от деобфускации? или против обфускации? –

+0

против obfuscation – user2153949

+0

в моем случае Я получаю сторонний код, который Im deobfuscated его – user2153949

ответ

2

Конечно, программист-злобщик может всегда обфускать код лучше, чем вы можете деобфусить его. Определить поведение произвольного кода заранее - это неразрешимая проблема.

Более практично, сражение с обфускацией против деобфускации только что закончилось тем, кто прилагает больше усилий. Обфускация намного проще, чем деобфускация, но коммерческие обфускаторы, как правило, намного менее сложны, чем то, что вы можете написать вручную или с помощью специального обфускатора по разным причинам. Тот факт, что Моно Сесил достаточно хорош для дебюрования многих распространенных инструментов обфускации, не означает, что он может что-то сделать по поводу более позднего.

Если вы хотите увидеть некоторые из трюков, которые вы можете потянуть с зафусмированным кодом, взгляните на this crackme. Это байт-код Java, а не CLI, но идея похожа. На момент написания этой статьи никто даже не решил ее, несмотря на то, что трещины, состоящие из одного метода в одном классе. И он даже не использует Reflection, правильное использование которого делает автоматическую деобфускацию практически невозможной.

Реальный вопрос, однако, это то, что вы пытаетесь сделать с этим. Вы пытаетесь проверить произвольный код на наличие вредоносного поведения? Извините, но это действительно невозможно. Вам нужно запустить его в песочнице.