갓해커 "문노익"에게 배운 지식.
사용된 툴:
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 |