본문바로가기

 Reverse Engineering ODEX to DEC

 개발관련  2014. 4. 8. 09:26  창조컨서턴트

 

 

Reverse Engineering ODEX to DEC

 

 

우선 ODEX라는 것이 무엇일까?
http://mylifewithandroid.blogspot.com/2009/02/optimized-dex-files.html
위 블로그에 보면 아주 내용이 잘 정리 되어있다. Optimized dex 로써 성능향상을 위해 Hardware에 최적화되어 만들어진 dex file이다. HTC의 단말기들에 있는 app들을 까보면 apk파일과 odex 파일 두개로 이루어져있다.
(그리고 apk file을 압축을 풀어 확인해보면 classes.dex 파일이 존재 하지 않는다.)

 

ODEX를 classes.dex로 바꿔보자!
1. http://code.google.com/p/smali/downloads/list 사이트에서 smali.jar와 baksmali.jar를 다운로드한다.
1. Android Phone을 Android SDK가 깔려있는 PC에 연결

2. mkdir framework

3. cd framework

4. adb pull system/framework (폰으로 부터 system/framework 폴더 가져옮)

5. cd ..
6. java -jar baksmali.jar -d framework -x temp.odex(odex파일 경로)
(참조: http://code.google.com/p/smali/wiki/DeodexInstructions)
이렇게 하면 out이라는 폴더 안에 smali format으로 odex가 풀려있게 된다.
7. java -jar smali.jar -o classes.dex out
이렇게 해서 우리가 원하는 classes.dex 파일이 생성되었다.