* fridaLab apk: https://rossmarks.uk/blog/fridalab/
1번 문제
- challenge_01 클래스 내 chall01 변수 값을 1로 변경
Java.perform(function() {
const chall_01 = Java.use("uk.rossmarks.fridalab.challenge_01");
chall_01.chall01.value = 1;
console.log("chall01: ",chall_01.chall01.value);
});
CHECK 버튼 클릭 후 해당 문제에 연두색 하이라이팅된 것을 통해 정답 확인 가능
2번 문제
- Chall02 메서드 실행하기
* 클래스 메서드(static 메서드)
- 메서드 앞에 static 이 존재
- 메소드 내에서 인스턴스 변수 사용 불가
- '클래스이름.메서드이름(매개변수)'와 같이 호출가능
- Java.use()를 이용해 객체 호출
* 인스턴스 메서드
- 반드시 객체가 생성돼야 호출 가능
- 메서드 내에서 인스턴스 변수 사용 가능
- 객체 생성 후 '참조변수.메서드이름()'으로 호출
- Java.Choose()를 이용해 객체 호출
chall02는 static 메서드가 아니여서 즉시 호출이 불가하므로 인스턴스 메서드 호출을 위한 choose 함수 이용
Java.perform(function() {
Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch: function(chall_02) {
chall_02.chall02();
},
onComplete: function() {
console.log("call chall_02 instance method");
}
})
});
3번 문제
- chall03 메서드 리턴 값을 false에서 true로 변경하기
chall03 인터페이스를 구현한다.
* implements 는 부모의 메소드나 변수를 그대로 가져다 쓰는게 아닌 반드시 오버라이드해서 사용해야함.
chall03 인터페이스에 있는 프로퍼티 및 메소드를 전부 보유하거나 구현해야하는데 문제에서는 인자가 존재하지않으므로 빈공간임
Java.perform(function() {
// 해당 메소드는 Java.use와 Java.choose 함수 모두 사용 가능
var chall_03 = Java.use("uk.rossmarks.fridalab.MainActivity");
// class.functionName.implementaion
chall_03.chall03.implementation = function() {
console.log("chall_03 method override");
return true;
}
});
4번 문제
- chall04 메소드 인자에 frida 문자열 전달
Java.perform(function() {
Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch: function(str) {
str.chall04("frida");
},
onComplete: function() {
console.log("call chall04");
}
});
});
5번 문제
- chall04 메소드와는 달리 chall05는 버튼을 누를 때마다 frida 문자열을 전달해야 함
check 버튼 클릭 시 "notfrida" 문자열을 전송하므로 chall05 함수를 String 형태로 overload하여 frida 문자열 전달
Java.perform(function() {
var chall_05 = Java.use("uk.rossmarks.fridalab.MainActivity");
chall_05.chall05.overload("java.lang.String").implementation = function(arg) {
this.chall05("frida");
console.log("call chall05");
}
})
'해킹-보안 > 모바일' 카테고리의 다른 글
IOS Fiddler HTTPS 캡쳐 (0) | 2022.01.07 |
---|---|
FridaLab 6번 문제 (0) | 2021.12.26 |
frida 설치하기 (0) | 2021.12.21 |
안드로이드 앱 교육 1일차 (0) | 2021.12.21 |
adb 명령어 및 앱 서명 방법 (0) | 2021.12.21 |