본문 바로가기
# technic/- reversing

[Android] SDK 버전 패치.

by ddddh 2017. 4. 27.

갓해커 "문노익"에게 배운 지식.


사용된 툴:

Android Stdudio

APK manager


예제 apk:

angstrom ctf 2017 - PASSCODE.apk 






동적 분석을 위해 APK를 설치하려고 하면 한 번씩 위와 같은 에러를 뿜을 때가 있다.


"Failed to start adb. check settings to verify your chosen adb path is valid."


위 에러는 architecture가 맞지 않거나 sdk version 호환이 되지 않기 때문에 나는 에러다.



http://stackoverflow.com/questions/41337336/android-studio-failed-to-start-adb


이럴 경우 architecture를 맞춰주거나 sdk version을 강제로 낮춰주면 해결할 수 있다.


sdk version을 낮추려면 "AndroidManifest.xml"을 수정해줘야 하는데 "Decompiler apk -> edit -> Compile apk -> Sign apk" 과정을 거쳐야 한다.


이 모든 것을 간단하게 해결할 수 있는 툴이 "apk manager"다.



"apk manager"가 설치된 경로에 존재하는 "place-apk-here-for-modding" 폴더안에 수정해줄 apk를 넣어주고 "Script.cmd"를 실행해준다.




매우 친절하고 간단한 툴임을 사진 한 장으로 알 수 있다.


지금은 자동으로 Target apk가 지정되었지만 "place-apk-here-for-modding" 폴더 안에 apk가 여러 개 존재할 경우 "22번"으로 대상을 선택해줘야 한다.


9번을 눌러 Decompile 과정을 끝내면 "projects" 폴더에 디컴파일 된 파일들을 확인할 수 있다.




디컴파일 된 "AndroidManifest.xml" 정상적인 xml 형식을 가지게 되었으며 editor로 열어 "platformBuildVersionCode="24""의 value를 수정해준다. 


*문노익님이 말씀으로는 17 버전이면 웬만한 요즘 폰으로는 다 설치된다고 한다. 




"platformBuildVersionCode" 값을 17로 바꿔 준 후 다시 프롬프트 창으로 넘어가 11(Compile apk) -> 12(Sign apk) 과정을 끝내면 Patch된 apk가 생기는 걸 확인할 수 있다.




Patch 된 apk를 실행해보면 정상적으로 잘 설치됨을 확인할 수 있다.




'# technic > - reversing' 카테고리의 다른 글

ARM 32bit  (0) 2018.09.29
Reversing a gameboy binary(*.gb)  (0) 2018.09.28
[python] RSA - chiper text decoe  (0) 2017.04.20
PE(Portable Executable) File Format  (0) 2017.02.28
windows java script shell 32bit 및 분석  (0) 2016.11.30