1. base.apk를 open하여 확인하는 경우
일반적인 무결성 우회방법은 open할때 base.apk를 바꿔치기하면된다.
Interceptor.attach(Module.findExportByName(null, "open" ), {
onEnter: function(args) {
this.hooked = Boolean(0);
this.a = Memory.readCString(ptr(args[0])).toLowerCase();
console.log("[+] args[0] : " + this.a);
if (this.a.indexOf("/data/app/kr.co.samsung") !== -1 || this.a.indexOf("/data/app/com.android.chrome") !== -1) {
var base_path = this.a.split("/");
var prev = "/data/app/" + base_path[3] + "/base.apk";
if(this.a == prev) {
const file = "/data/local/tmp/samsung/base.apk";
Memory.writeUtf8String(args[0], file);
console.log("[+] args[0] : " + this.a);
console.log("integrity bypass")
}
}
},
onLeave: function(retval) {
console.log("retval : " + retval)
return retval;
}
});
이렇게 하고 탐지하는 부분 후킹해주면(return 값 변조 혹은 탐지 로직 건너뛰고 실행하도록) 대부분 우회 가능
2. installer ID check
2020/02/10 - [Mobile/Android] - [Android] apktool을 이용한 디컴파일 및 리패키징
이전 글에서도 언급한 적 있지만, 앱스토어에서 다운받는 경우 부여되는 ID를 확인할 수도있다.
설치 시, 다음과 같은 명령어를 사용하면 우회 가능
adb install -i "com.android.vending" resigned.apk
3. signature check
앱이 설치된 디렉토리를 보면, 패키지명 뒤에 -해시값이 존재한다. 이 해시값을 확인하여 비교한다?
4. unzip해서 manifest에 있는 signature와 확인?
참고링크
https://www.airpair.com/android/posts/adding-tampering-detection-to-your-android-app
http://dktfrmaster.blogspot.com/2017/02/apk.html
반응형
'보안 및 개발 > MOBILE' 카테고리의 다른 글
[Android] Burp Suite CA인증서 관련 정리 (0) | 2020.03.17 |
---|---|
[Android] SELinux chcon (0) | 2020.03.16 |
[Android] Frida detection bypass (0) | 2020.03.11 |
[Android] galaxy s9 루팅하기 (0) | 2020.02.20 |
[Android] How to Rooting Detection (0) | 2020.02.12 |