2013-04-09 8 views
1

이 훌륭한 기사 (http://eatplayhate.wordpress.com/2010/07/18/mono-cecil-vs-obfuscation-fight/)에서 저자는 Mono.Cecil이 완벽하지는 않지만 어떤 문제없이 기능의 90 %를 번역했다고 주장합니다.Mono.Cecil - 난독 화 코드

내 질문은 : 악의적 인 프로그래머가 Mono.Cecil을 사용하여 난독성을 일으킬 수없는 악성 코드를 난독 화하여 내 프로그램 (제 3 자 코드)에 심각한 위반을 야기 할 수 있습니까? 대답이 '예'인 경우, 해당 코드를 작성하는 데 사용할 수있는 기호 또는 이러한 코드에서 내 자신을 어떻게 보호 할 수 있는지 알고 있습니까?

+0

특히 난독증에 대비하여 보호하고 싶습니까? 또는 난독 화 반대? –

+0

에 대한 난독 화 – user2153949

+0

제 경우에는 제 3 자 코드를 얻었습니다. – user2153949

답변

2

물론 악의적 인 프로그래머는 코드를 해독 할 수없는 것보다 코드를 더 잘 모호하게 만들 수 있습니다. 결국 임의의 코드의 동작을 결정하는 것은 결정 불가능한 문제입니다.

더 실제적으로, 난독 화와 난독 화 싸움은 누가 더 많은 노력을 기울 였는가에 불과합니다. 난독 화는 난독 화보다 훨씬 쉽지만, 상업용 난독 화는 여러 가지 이유로 손으로 또는 사용자 정의 난독 화기로 작성할 수있는 것보다 훨씬 덜 정교한 경향이 있습니다. Mono Cecil이 많은 공통적 인 난독 화 도구를 디프 스 퓨싱하기에 충분하다는 사실은 나중에 할 일을 할 수 있다는 것을 의미하지는 않습니다.

난독 화 코드로 당길 수있는 몇 가지 트릭을보고 싶다면 this crackme을 살펴보십시오. 그것은 CLI보다는 Java 바이트 코드이지만 아이디어는 비슷합니다. 이 글을 쓰는 시점에서 아무도 단 하나의 클래스에서 하나의 메소드로 구성된 crackme에도 불구하고 그것을 해결하지 못했습니다. 그리고 리플렉션을 사용하지도 않습니다. 리플렉션을 사용하면 자동 해독이 불가능하지만 완전히 불가능합니다.

그러나 진짜 질문은 당신이 이것을하려는 것입니다. 임의 코드에서 악의적 인 동작을 확인하려고합니까? 미안 해요,하지만 그건 실제로 가능하지 않습니다. 샌드 박스에서 실행해야합니다.