[AOS] Frida 오버로딩(overload)

Naro·2022년 9월 27일
0

Frida

목록 보기
2/2
post-thumbnail

Frida 오버로딩(overload)

Frida 스크립트를 작성할 때면 가장 많이 사용하는 함수는 당연코 overload가 아닐까 싶다.

복습할 겸 overload 매개변수 유형을 정리해보겠다.

  • Frida 오버로딩
    하나의 클래스에서 동일한 이름을 가진 메소드가 존재 시 각각 인자의 개수 및 타입에 따라 다르게 후킹할 때 사용
  • 입력받는 인수가 스트링일 때
Java.perform(function() {
	var File = Java.use(java.io.File); // File 클래스 사용
    var CheckRoot = File.$init.overload("java.lang.String", "java.lang.String"); //$init는 생성자 접근 시 사용
    CheckRoot.implementation = function(arg1, arg2){
    	...
    }
})
  • 입력받는 인수가 Boolean, int, Byte 배열 형태인 경우
Java.perform(function() {
	var File = Java.use(java.io.File); // File 클래스 사용
    var CheckRoot = File.$init.overload("boolean", "int", "[B"); //[B는 Byte 배열이라는 뜻
    CheckRoot.implementation = function(arg1, arg2){
    	...
    }
})
  • 그 외 입력받는 인수에 따른 대표적인 매개변수 유형
.overload() 
.overload('int’) // 정수
.overload('boolean') // True or False 논리 값
.overload('float') // 실수
.overload('[B') // byte 배열
.overload('java.io.File') // File 클래스
.overload('java.lang.String') // String 클래스
.overload('android.view.View') // View 클래스
.overload('android.app.Activity') // Activity 클래스
.overload('android.content.Context') // 콘텍스트
.overload('android.graphics.Bitmap')  // Bitmap 클래스
.overload('java.util.List’) // List 클래스
profile
보안 공부 할래?

0개의 댓글