안드로이드 어플리케이션 리버싱을 처음 시도 할 때 대부분의 유저들이 정적 분석을 시도하게 되는데


이때 Smali(Dalvik code) 코드로 변환 하여 


해석 하시는 방법으로 진행 하는 분이 많은데요.


좀더 쉽게!


직관적으로!


얍삽하게




java 코드를 원시코드에 가깝게 보면서 리버싱을 진행 하시게 되면 쉽게 코드 해석을 할 수 있게되어 빠르게 진행이 가능 한데요.


해당 툴들을 소개 해드리려고 합니다.






Dex2jar / JD-GUI


Dex2jar : .dex 을 smali / .jar 등으로 변환을 시켜주는 프로그램


JD-GUI : .jar 파일로 압축된 .class 파일들을 java 코드로 보여주는 프로그램




구동 환경


Window, linux( + mac)

/** window 는 .bat   linux 는 .sh 파일로 존재 **/


으로 다들 가지고 계신 컴퓨터 환경에서는 대부분 돌아가실듯 합니다!



다운로드


Dex2jar


github : https://github.com/pxb1988/dex2jar


SourceForge : https://sourceforge.net/projects/dex2jar/files/



JD-GUI


공식 : http://jd.benow.ca/


사용 방법


* 해당 시연은 직접 제작중인 안드로이드 어플리케이션 기반으로 테스트 하였습니다.

** java 소스코드 보안기법에 따라 특정 부분이 보이지 않을 수도 있습니다.




Dex2jar



1. 역공학을 진행할 어플리케이션을 압축 해제 프로그램을 사용하여 미리보기 한후 


classes.dex 파일을 다운받은 Dex2jar 폴더에 집어 넣는다





2. dex2jar 폴더에 넣은 classes.dex 를 drag & drop으로 .jar 파일을 생성 합니다.




3. 추출한 classes.jar 파일을 JD-GUI 프로그램을 사용하여 열기




요로코롬 하시면 모든 소스코드가 원시코드에 가깝게 출력되게 됩니다!


뭐.. 이정도 하셨으면 Dalvik 와 비교하여 쉽게 해석을 하실 수 있습니다 :)





작성자 : Nyaong

+ Recent posts