
취약점 점검 항목 중 전자금융 관련 항목으로 앱 로직 임의 변조 항목이 주로 취약점으로 잡히곤 한다.
본 취약점 항목 점검을 위해 일반적으로 APKEasyTool 을 사용하여 디컴파일을 수행하고 smali 코드 변조 이후, 리컴파일을 수행하는데 안드로이드 보안 정책으로 인하여 apk 리컴파일 수행 시, APKEasyTool 만으로 정상 수행되지 않을 때가 있다.
해당 문제 해결을 위해 본인의 경우 변조 및 로직이 변경된 Smali 코드가 포함된 class 파일만을 리컴파일하여 apk 패키지 내 직접 덮어씌워 적용시키는 방법을 애용한다.
해당 방법 이용을 위해 수동으로 class 파일에 대한 리컴파일 및 서명이 요구되므로 추가 툴이 필요하다.
- 리컴파일 툴: https://repo1.maven.org/maven2/org/smali/smali/2.5.2/smali-2.5.2.jar
- apk signer: https://github.com/patrickfav/uber-apk-signer/releases/download/v1.3.0/uber-apk-signer-1.3.0.jar
해당 툴에 대한 디컴파일 수행 (디컴파일은 APK Easy Tool 을 사용해도 문제 없다.) 이후, 변조할 구간 Smali 코드에서 Toast Message 구간을 추가한다.

smali 코드 변조 이후, smali.jar 파일을 이용하여 변조한 Smali 코드가 포함된 class 를 리컴파을 수행해준다.

해당 classes.dex 파일 리컴파일 수행 이후, 기존 apk 파일을 반디집 등의 압축 관리 프로그램으로 열어 리컴파일된 classes.dex 파일을 덮어씌워준다.

해당 앱에 대한 패칭이 끝났으므로 리사이닝만 수행하면 해당 앱 변조가 끝난다.

해당 Signning 을 수행하고 나면, 화면 내 'VERIFY' 로그에서 확인할 수 있듯이 '[appName-aligned-debugsigned.apk] 이라는 이름의 apk 파일 획득이 가능하다. 해당 파일을 디바이스 내 설치 이후 해당 로직이 동작하면 취약, 아니면 양호로 판단하면 되겠다.
자동화 툴:
GitHub - KaiHT-Ladiant/Android-Patched-Repackging-For-Pentester: apk file Repackaging for pentester
apk file Repackaging for pentester. Contribute to KaiHT-Ladiant/Android-Patched-Repackging-For-Pentester development by creating an account on GitHub.
github.com
'Tools > Android' 카테고리의 다른 글
| UnActivity FLAG_SECURE in Application (0) | 2026.01.08 |
|---|---|
| Run DeepLink Pentesting Android (2) | 2025.06.09 |
| Include Burpsuite Certification in Android Devices (Feat. TWRP) (5) | 2025.04.03 |
| TWRP ROM Install with Original Android Firmware without rooting (0) | 2025.04.03 |
| Unlock Android Screen With TWRP (0) | 2025.03.13 |