본문 바로가기

모바일 해킹/frida

frida 기본 문법

  1. Java.perform(fn)
  2. Java.use(ClassName)
  3. Java.enumerateLoadedClasses(callbacks)
  4. Java.choose(ClassName, callbacks)
  5. setImmediate(fn)
  6. Overloading

 

1. Java.perform(fn)

:현재 스레드가 가상 머신에 연결되어 있는지 확인하고 fn을 호출 

기본 구조

2. Java.use(className)

: Java.use()는 변수와 메소드에 액세스 할 수 있는 클래스 객체를 반환

: 메소드 구현을 변경하려면 새로운 메소드로 덮어 써야함

: 주의! 인스턴스를 반환하는 것이 아닌 클래스 객체를 반환함.

***지정한 클래스를 사용!!***

:앱에서 사용하는 클래스와 연동되는 myClass를 정의

: .implementation : 앱에서 정의된 메소드의 구현 내용을 재작성 

 

 

기본 구조

 

3. Java.choose(className, callbacks)

: 힙에서 인스턴스화 된 객체 찾기 가능

: callbacks : onMatch, onComplete

: onMatch : 실시간으로 인스턴스에 대해 호출

: onComplete : function() 의 모든 인스턴스가 열거될 때 호출 

기본 구조

 

4. Java.enumerateLoadedClasses(callbacks)

:로드된 모든 클래스를 열거하고 모든 일치 항목을 출력

 -> onMatch : 일치하는 것을 찾으면 호출

 -> onComplete : 가능한 일치(Match)를 모두 마치면 사용됨.

기본 구조

5. setImmediate(fn)

:Process terminated 오류 해결하기

 

기본 구조

6. overload()

-입력받는 인수가 없는 메소드

-두 개의 바이트 배열을 인수로 입력 받는 메소드

-앱의 context와 bolean 형태의 인수로 입력받는 메소드

 이 세가지의 경우에 overload() 를 이용

 

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

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