Uncrackable1을 실행하면 다음과 같은 화면이 뜨며 앱이 종료된다.
반환 값 수정
jadx를 사용하여 MainActivity를 확인해보자.
if문을 사용하는 것을 확인할 수 있다.
c.a() 혹은 c.b() 혹은 c.c()의 값이 True라면 "Root detected!"라는 구문이 출력되게 된다.
c를 확인해보니
각 return 값들을 false로 설정해주는 방식으로 해결할 수 있다.
다음과 같이 코드를 작성하고 실행시킨다.
console.log("Script loaded successfully")
Java.perform(function x() {
console.log("Inside java perform function");
var my_class = Java.use("sg.vantagepoint.a.c");
my_class.a.implementation = function (args) {
console.log("a is false");
return false;
};
my_class.b.implementation = function (args) {
console.log("b is false");
return false;
};
my_class.c.implementation = function (args) {
console.log("c is false");
return false;
};
});
a, b, c의 return 값들을 false로 설정해 주었다.
지정한 구문들이 출력되며 앱이 실행된다.
exit() 후킹
jadx를 사용하여 MainActivity를 확인해보자.
텍스트를 출력시키고 ok버튼을 누르면 system.exit()가 수행된다.
다음과 같이 코드를 작성하고 실행시킨다.
console.log("Script loaded successfully");
Java.perform(function {
console.log("java perform function");
var sys = Java.use('java.lang.System');
sys.exit.implementation = function () {
console.log("success!!");
}
});
exit() 함수를 후킹하는 스크립트를 작성했다.
ok버튼을 눌러도 앱이 종료되지 않았고 "success!!"가 출력되었다.
'Study > App' 카테고리의 다른 글
[App]Diva 12. Hardconding Issues - Part 2(하드코딩된 정보 + Frida native) (0) | 2022.09.30 |
---|---|
[App]Uncrackable1 - 암호화 키 가져오기 (0) | 2022.09.29 |
[App]Diva 1. Insecure Logging(디버그 로그 내 정보 노출) + 11. Access Control Issues - Part 3(화면 강제 실행 인증단계 우회) (0) | 2022.09.27 |
[App]루팅된 단말기 adb 접속 및 frida (0) | 2022.09.24 |
[App]갤럭시s4 루팅 (2) | 2022.09.24 |