보안개구리
1. Change class challenge_01‘s variable ’chall01‘ to:1 본문
1. Change class challenge_01‘s variable ’chall01‘ to:1
보안개구리 2024. 5. 9. 11:08FridaLab 실습을 진행하도록 하겠습니다.
FridaLab 접속 시 8가지의 과제가 나오며 이번 시간에 실습할 과제 1. Change class challenge_01‘s variable ’chall01‘ to:1 과제로 'challenge_01' 클래스의 변수 'chall01'의 값을 '1'로 변경하면 됩니다.
먼저 ' challenge_01 ' 클래스를 확인해보겠습니다.
challenge_01 클래스 'chall01' 변수와 'getChall01Int() 메서드를 확인할 수 있는데 변수 값을 1로 변경하거나 return 값을 1로 변경하거나 어느 방법을 사용해도 클리어가 가능합니다. 먼저 첫 번째 방법을 보겠습니다.
setImmediate(function(){
Java.perform(function(){
var fridalab1 = Java.use('uk.rossmarks.fridalab.challenge_01');
fridalab1.chall01.value = 1;
console.log("[***] chapter1 clear [***]")
});
});
'chall01' 변수가 static을 사용했기 때문에 Java.use를 사용해서 'uk.rossmarks.fridalab.challenge_01' 클래스를 가져와 'fridalab1 ' 변수에 할당한 후 chall01.value=1을 통해 변수 값을 1로 변경합니다. 그럼 작성한 js 파일을 로드해 보겠습니다.
ps 명령어를 통해 PID 확인 후 JS파일을 로드합니다. "[***] chapter1 clear [***] " 메시지가 출력됨을 확인하였습니다.
FridaLab 앱 접속 후 CHECK 클릭 시 1번 문제가 초록색으로 변한 것을 보아 정상적으로 후킹됐음을 알 수 있습니다.
다음은 두 번째 방법인 return 값을 1로 변경해 보겠습니다.
setImmediate(function(){
Java.perform(function(){
var fridalab1 = Java.use('uk.rossmarks.fridalab.challenge_01');
fridalab1.getChall01Int.implementation = function(){
return 1;
};
});
});
이번에는 getChall01Int() 메서드에 리턴값을 조작하여 1이 반환되게 하였습니다. 해당 스크립트를 실행해 보도록 하겠습니다.
역시 정상적으로 후킹 된 것을 확인하였습니다.
'앱 진단(Android) > FridaLab 실습' 카테고리의 다른 글
6. Run chall06() after 10 seconds with correct value (0) | 2024.06.28 |
---|---|
5. Always send "frida" to chall05() (0) | 2024.06.28 |
4. Send "frida" to chall04() (0) | 2024.05.09 |
3. Make chall03() return true (0) | 2024.05.09 |
2. Run chall02() (0) | 2024.05.09 |