[컴][자바] 소스 deobfuscating

난독화 / 역난독화 / reverse obfuscated code / dex decompiler / 안드로이드 코드 난독화



DeObfuscating

요새 안드로이드 project 가 gradle 로 넘어간 덕분인지, obfuscate 한 code 들이 많이 보인다. 이런 code 들은 아무래도 분석하기가 어려워 진다.
이런 녀석들에 대해 deobfuscating tool 들이 존재한다. 물론 이 녀석들이 정확히 obfuscated 이름을 원래대로 돌려주지는 못하지만, 아주 좋은 hint 를 주고 JDO 같은 경우는 원하는 이름으로 변화해 준다.

JDO

가장 대표적인 tool 로 JDO 가 있다. 간단하고, class 이름을 원하는 이름으로 바꿀 수 있는 기능을 제공한다. gui 가 그리 화려하지는 않지만 가장 필요한 기능을 가지고 있는 듯 하다.

그냥 모든 class 를 load 해서 Deobfuscate 버튼을 누르면, a, b 등으로 되어 있는 녀석 앞에 prefix 로 class, var 등을 붙여준다.


Decompiler

이제 deobfuscated 된 class 를 가지고 기존의 decompiler 를 이용하면 된다. 개인적으로 jd-gui 를 많이 활용했는데, 더이상 update 가 안되는 느낌이었고, 간혹 decompile 이 안되는 녀석들이 있었는데, stackoverflow 에서 아래 decompiler 를 새로 찾았다.
위의 site 에서 procyon 을 사용하는 gui 몇개를 소개해 주고 있다. 대체로 나쁘지 않지만, 개인적으로 jd-gui 가 제일 편한 느낌이다.

개인적인 의견

JDO 를 사용하고, 그것을 jd-gui 로 열어서 보는 등의 방법을 사용하면 될 듯 하다.

추가로, jd-gui 에서 src 를 저장할 수 있게 해주는데, 이녀석을 저장해서 IDE 에서 열어서 봐도 좋을 듯 하다.


See Also




댓글 없음:

댓글 쓰기