본문 바로가기

모바일 해킹/frida

fridalab challenge writeup! - 1번, 2번

안드로이드 취약점 분석 fridalab challenge를 통해 frida 문법을 익혀보고자 함!

 

 

fridalab challenge 01 

1. Change class challenge_01's varialbe 'chall01' to: 1 

 

클래스 내부 소스코드 

클래스 내부의 소스코드를 보면 static int chall01; 이라는 구문이 있고

문제는 chall01 static 변수를 바꿔야 해결되는 문제이다. 

chall01 에 1이라는 값을 주게되면 getChall01int() 메소드가 실행되면서 chall01 이라는 값이 1로 return 되는 것 같다

문제의 핵심은 static 변수의 값을 변경할 수 있는지 인것 같다.

frida를 이용하여 chall01에 1이라는 값을 넣어보자.

 

fridaloab_01.js

 

frida -U -l fridalab_01.js -f uk.rossmarks.fridalab --no-pause 

frida script 로드

 

fridalab challenge 02 

2. Run chall02()

 

클래스 내부 소스 코드

코드를 봤을 때 chall02는 MainActivity에 선언되어 있고, 내부적으로  어디에서도 호출되지 않으며 completeArr[1]=1;에서 배열이 선언되어 있는 걸을 알 수 있다.

또한 statiac 선언이 되어 있지 않아 static method가 아닌 instance method를 사용해야하는데 instance method를 호출하기 위해서는 반드시 인스턴스화 된 객체를 찾아서 사용해야 한다.

이 객체를 사용하려면 Java.use가 아닌 Java.choose라는 api 함수를 사용해야 한다. 

 

fridalab_2.js

frida -U -l fridalab_02.js -f uk.rossmarks.fridalab --no-pause 

 

frida script 로드

 

※클래스 메소드와 인스턴스 메소드

1. 클래스 메소드 

  • 메소드 앞에 static이 존재하면 클래스 메서드
  • 클래스 메서드는 클래스 변수처럼 객체를 생성하지 않고 classname.methodname으로 호출가능

2. 인스턴스 메소드

  • 반드시 객체를 생성해야만 호출 가능 

 

 

'모바일 해킹 > frida' 카테고리의 다른 글

fridalab challenge writeup! - 3번, 4번  (0) 2021.12.05
frida 기본 문법  (0) 2021.12.05
frida 기초  (0) 2021.11.28
Frida 환경 구축  (0) 2021.11.28