역코드난독화
코드 난독화
proguard
역난독화
dex2jar Jad
자바디컴파일러
classes.dex Dalvik
DeObfuscate
Obfuscate
Obfuscation
DeObfuscation
안드로이드 앱을 작성하고 업로드하면서 이 번에 코드 난독화에 대하여 생각해보았다.
3개월 이상 시간이 흘렀다. 개괄적인 형태로 살이 붙지 않는 앱이라 넓게 내놓기에는 다듬어야 할 부분이 많지만 기본은 다 갖춘 앱이다. 지금까지는 코드 난독화가 불필요했지만 이제는 심도있게 생각해볼 때 이다. 그래서 만들어 놓은 apk파일을 역코드난독화 했더니 일부 에러를 빼고는 그대로 나왔다. 역난독화를 처음 시도해보는 것이라 에러가 나왔으나 경험자가 했으면 100% 나왔으리. 이클립스에 안드로이드 개발툴 ADT가 제공하는기본적인 proguard도 적용하지 않았다. 지금부터는 적용하고 업하는 쪽으로 정책을 잡았다.
만들어놓은 코드를 난독화 해제하는 과정이다. 다음에 반복할 일을 간단히 정리하였다.
dex2jar
: Dalvik에서 작동하는 classes.dex 파일을 Class압축파일을 포함한 jar 파일로 변환
: https://code.google.com/p/dex2jar/downloads/list
Jad : 자바디컴파일러
http://varaneckas.com/jad/
디컴파일할 apk파일의 확장자를 zip으로 바꾸고 압축해제해서 classes.dex 파일을 얻는다.
콘솔 창에 d2j-dex2jar.bat classes.dex를 실행
또는
콘솔 창에 dex2jar.bat classes.dex를 실행
같은 폴더에 classes-dex2jar.jar 파일이 생성된다.
# d2j-dex2jar.bat과 dex2jar.bat의 결과는 비슷하다. 사용해보고 에러가 적은 쪽을 택하자.
class파일을 사람이 읽고 이해할 수 있는 java 텍스트 파일로 만들자.
콘솔 창에 jad -o -sjava MainActivity.class를 실행
MainActivity.java가 생긴다. 텍스트 편집기로 열어서 읽고 편집할 수 있다.
'Android 안드로이드' 카테고리의 다른 글
ClipboardManager, ClipData, ClipDescription, paste and copy (0) | 2014.11.22 |
---|---|
안드로이드 스튜디오 와 AVD (0) | 2014.11.22 |
EditText 특정 부분에 텍스트 붙여넣기 (0) | 2014.10.25 |
Message, Handler, obtain, Thread (0) | 2014.10.20 |
bindService : Main Thread에 서비스를 만들고 Activity와 통신 (0) | 2014.10.14 |