Study/App

[App]Uncrackable2

seomj 2022. 10. 22. 01:06

해당 앱을 실행하면 루팅이 탐지되었다는 경고와 함께 OK를 누르면 앱이 종료된다.

해당 부분의 경우 uncrackable1과 동일한 방법으로 해결해주면 된다.

자세한 내용은 아래 게시글을 참고하도록 하자.

 

[App]Uncrackable1 루팅 탐지 - 반환 값, exit()

Uncrackable1을 실행하면 다음과 같은 화면이 뜨며 앱이 종료된다. 반환 값 수정 jadx를 사용하여 MainActivity를 확인해보자. if문을 사용하는 것을 확인할 수 있다. c.a() 혹은 c.b() 혹은 c.c()의 값이 True..

seomj74.tistory.com


그 후 String 값을 입력해야 한다.

 

verify 함수를 확인

79번째 줄을 보면 if문을 사용하여 조건을 만족하면 "Success!"를 출력한다.

 

아래 코드인 AsyncTask를 보면 70번째 줄에 this.m에 CodeCheck() 클래스가 지정되어 있는 것을 확인할 수 있다.

this.m.a(obj)를 알기 위해 CodeCheck로 이동해보면 native 함수에서 확인해야 한다.

 

이를 해결하기 위해 apk 파일을 decompile 했다.

 

그리고 앱 후킹을 할 대상 안드로이드 os 버전을 찾기 위해 명령어를 입력합니다.

adb shell getprop ro.product.cpu.abi

 

해당 폴더의 libfoo.so 파일을 열어준다.

CodeCheck_bar 부분을 확인

해당 코드에서 12번째 줄을 보면 "Thanks for all the fish"라고 하드코딩이 되어 나와있다.

 

이를 입력해주면 문제가 풀리게 된다.

 

+하드코딩 되어 있는 방식이 아닌 다른 방식을 이용해자.

onLeave의 ret을 1로 고정

console.log("Script loaded successfully "); 
Java.perform(function x() { 
    console.log("Inside java perform function"); 
    var my_class = Java.use("sg.vantagepoint.a.b"); 
    my_class.a.implementation = function (args) { 
        console.log("aaa"); 
        return false; 
    } 
    my_class.b.implementation = function (args) { 
        console.log("bbb"); 
        return false; 
    } 
    my_class.c.implementation = function (args) { 
        console.log("ccc"); 
        return false; 
    };
    console.log("[+] Hooking calls to System.exit");
    var exit = Java.use("java.lang.System");
    exit.exit.implementation = function(){
        console.log("[+] Sysetm.exit called");
    }
    Interceptor.attach(
        Module.findExportByName("libfoo.so", "Java_sg_vantagepoint_uncrackable2_CodeCheck_bar"),{
            onEnter: function (args){
                console.log("CodeCheck");
            },
            onLeave: function(ret){
                ret.replace(1);
            }
        }
    );
});

'Study > App' 카테고리의 다른 글

[App]Uncrackable3  (0) 2022.10.30
[App]Fridalab 7  (0) 2022.10.20
[App]Fridalab 5  (0) 2022.10.20
[App]Fridalab 4  (0) 2022.10.20
[App]Fridalab 3  (0) 2022.10.20