상세 컨텐츠

본문 제목

[Android] JEB를 이용한 APP 동적 디버깅(Android Studio)

기술보안/Mobile:Android

by about_SC 2019. 1. 17. 17:33

본문

아래의 경로에서 받은 level1.apk 앱으로 테스트를 진행한다.
https://github.com/OWASP/owasp-mstg/tree/master/Crackmes


1. 디버깅을 할 APP을 APKTOOL로 디컴파일



2. 디컴파일한 폴더의 AndroidManifest.xml 파일을 열어 application 태그에 디버그 활성화 설정 추가
android:debuggable="true"



3. 수정된 내용의 앱을 다시 .apk 파일로 컴파일 후 단말기에 설치



4. 디버거 연결 대기 설정
1) 디바이스에서 설정 > 개발자 옵션 > USB 디버깅 ON > 디버깅할 앱 선택 > 해당 앱에 debugaable 옵션 설정




5. Smalidea 다운로드 : https://github.com/JesusFreke/smali/wiki/smalidea
Android studio에서 동적 디버깅 진행 시 필요한 외부 플러그인으로 설치해줘야 한다.



6. FILE > Setting > Plugin > Install plugin from disk 버튼을 클릭하여 이전에 설치한 Smalidea를 안드로이드 스튜디오에 설치해준다.



7. 안드로이드 스튜디오 실행 시 Open an existing Android Studio project를 클릭하여 디버깅할 smali 폴더를 지정하고 실행한다.
좌측 네비게이션에 파일들이 보이지 않을 경우 상단의 Android라고 되어 있는 부분을 클릭하여 Project로 view를 설정해준다.



8. Run > Edit Configurations > + > Remote 선택하여 나온 탭에서 Settings의 Port를 8700으로 변경 후 저장



9. SDK 설치 폴더 - tools - monitor.bat 실행 후 진단 앱 실행 시 디버거 대기 창이 뜨고, mornitor에서 빨간색 디버깅 모양이 뜨면 정상
정상적으로 앱이 디버깅 모드로 실행되지 않을 경우, am start -D -n [패키지명/액티비티명] adb 명령을 이용하여 진행이 가능하다.

//해당 패키지명과 액티비티명은 이전의 AndroidManifest.xml 파일에서 확인이 가능하다.






10. 안드로이드 스튜디오 내에서 브레이크 포인트(ctrl + F8)를 건 뒤 shift + F9를 눌러 디버깅 진행하면된다.

관련글 더보기