2013년 8월 22일 목요일

reverse_engineering

apktool

  • http://code.google.com/p/android-apktool/
    위 링크는 v1.4.3 까지 공개된 후 개발이 중지된 것 같고 (혹은 google이 apk를 지나치게 노출하는 것을 꺼려하는 것일지도… )
    https://github.com/ApkMultiTools/APK-Multi-Tool-Linux
    여기 소스를 git clone 해서 받아보면 other folder에서 v1.4.9 (JellyBean 지원)를 받을 수 있습니다.
    그런데 v1.4.9 역시 JB plus에서 추가된 ldrtl resource qualifier 는 지원이 안되네요. ㅡ.ㅜ)
  • apk로부터 resource 추출 가능
  • code는 smali code로 추출
  • framework resource가 있다면 먼저 설치
  • $ cd system/framework
    $ apktool if framework-res.apk
    $ apktool if com.htc.resources.apk
    $ cd ../app
    $ apktool d Browser.apk

smali

  • assembler/disassembler for the dex format used by dalvik
  • resource는 추출하지 못하므로 apktool과 병행해 사용
  • odex도 지원(init.rc의 BOOTCLASSPATH를 참조해 -c 옵션을 작성)
  • ICS는 1.3.0 버전 사용할 것.
  • $ baksmali -a 10 -c core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -x twframework.odex -o twframework
  • $ baksmali -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:filterfw.jar:sechardware.jar:kafdex.jar -x framework.odex -o framework
최신버전의 경우 default로 ICS로 인식한다. GB 라면 -a 10 옵션을 추가해야 한다.

dex2jar

jar -> class

  • .jar 파일에서 .class 파일 추출
  • $ jar -xvf .jar
  • .class → .jar 생성 (src 디렉토리 밑에 생성) - (jad)
  • $ jad -o -r -sjava -dsrc **/*.class

jd-gui

댓글 없음:

댓글 쓰기