본문 바로가기

조금은 전문적인 이야기/IT

C# 난독화 코드 만들기

저번에 포스팅 한 리플렉터에 이어서 이번엔 그걸 조금이라도 힘들게 만들 수 있는 난독화에 대해서 포스트를 한다. 


리플렉터의 글에도 남겼듯이 C#은 디컴파일을 하면 아주 치명적이다. 그래서 C++이나 MFC로 만든 DLL을 링크해서 사용하기도 하고 지금 쓰는 것 처럼 난독화를 하기도 한다. 전자의 경우는 Google신에게 물어보면 잘 알려주니 나중에 시간이 남을 때 포스팅을 할 지도 모르겠다. 




가장 손쉽게 대비를 하는 방법중의 하나가 난독화를 통한 코드 보호인데, 솔직히 말하면 100% 막을 수 있다고는 말 할 수 없다. 




예를 들어서 지금 난독화를 한 코드를 보면 난독화 전에는 변수나 이런 것들이 그냥 그대로 보여서 코드를 해석하기가 정말 쉬운데, 난독화를 하면 변수들이 알아보기 힘든 모양으로 변하기 때문에 추적을 하기도 쉽지 않고, 해석을 하기도 쉽지 않다. 물론 예를 든 프로그램의 경우 5분 이내에 짠 간단한 소스이기 때문에 난독화를 해도 알아보는데 큰 이상은 없었다.(아마 내가 짠 코드이기 떄문일 것이다...)



 C#으로 약간만 복잡한 코딩을 해주게 되고 그걸 난독화를 하게 되면, 해석하기는 정말 안드로 메다로 가는데, 난족화 툴도 여러가지가 있으니 찾아서 사용을 해보고 사용하기 편한 툴을 고르면 된다. 아예 모든걸 난독화 해주는 프로그램도 있으나, 대부분 강력한 기능을 가진 것들은 상용프로그램 들이다. 내가 쓰는 간단한 난독화 툴은 가볍고 무엇보다 공짜며....나름 만족할 만한 수준의 난독화를 해준다. 만일을 위해 링크를 놓는데, 필요한 분들은 받아서 쓰시길 바란다. 


물론!! 코드를 정말 더럽게 짜면(내가 그런다....난독화 안되어 있어도 난독화 수준으로 해석 불가....ㅜㅜ) 해석하기가 정말 어렵다. 

Phoenix_Protector.msi