0. 기본 세팅
AndroGoat.apk 파일을 다운받은 후, 에뮬레이터(Nox)로 옮겨준다.
1. 바이너리 패치
apk를 실행한 후 Binary Patching을 확인해보면 권한이 없다고 나타난다.
2. apk 디컴파일
apk easy tool을 사용해서 해당 apk 파일을 디컴파일 해준다.
2.1. package명 및 Binary Patching 탐지 영역 체크
디컴파일 후 나온 AndroidManifest.xml 파일을 통해 package명과 Binary Patching을 하는 영역을 확인한다.
jadx로 위에서 확인한 영역을 보면 아래와 같은 코드가 있다.
//owastp.sat.agoat.BinaryPatchingActivity
if (this.isAdmin) {
TextView textView = (TextView) _$_findCachedViewById(R.id.isAdminText);
Intrinsics.checkExpressionValueIsNotNull(textView, "isAdminText");
textView.setText("You are Admin Now");
Button button = (Button) _$_findCachedViewById(R.id.adminButton);
Intrinsics.checkExpressionValueIsNotNull(button, "adminButton");
button.setEnabled(true);
}
if문을 통해 탐지된 결과물이 나타난다.
3. BinaryPachingActivity.smali 변조
apk easy tool로 디컴파일한 다음 경로에서 BinaryPachingActivity.smali 파일을 열어 if문을 변조시킨다.
4. 컴파일 후 바이너리 패칭
apk easy tool로 Sign APK → Compile을 진행하고, 새로 컴파일한 apk 재설치 후 바이너리 패칭을 해보면 다음과 같이 권한이 생긴 것을 확인할 수 있다.
'App > AndroGoat' 카테고리의 다른 글
AndroGoat.apk | 에뮬레이터 탐지 (Frida) (0) | 2021.09.20 |
---|---|
AndroGoat.apk | 에뮬레이터 탐지 (smali) (2) | 2021.09.20 |
AndroGoat.apk | SSL 피닝 (Frida) (0) | 2021.09.20 |
AndroGoat.apk | 루팅 탐지 (Frida) (0) | 2021.09.20 |
AndroGoat.apk | 루팅 탐지 (smali) (0) | 2021.09.17 |
댓글