상세 컨텐츠

본문 제목

[mobile]frida script 기본설명(3) : overload

기술보안/Mobile:Android

by about_SC 2019. 12. 27. 17:55

본문

[mobile]frida script 기본설명(3) : overload

자바의 오버로딩을 들어봤을 것이다.

이는 하나의 클래스에서 동일한 이름을 가진 메소드가 존재하는 것을 의미한다.
대신에 각각 인자의 개수나 타입이 달라야 한다.

위에서 언급한바와 같이 하나의 클래스에서 동일한 이름을 가진 메소드에 접근하여 메소드 재작성 시
아래와 같이 overload를 이용하여 함수를 재작성 해줄 수 있다.


Case 1) 입력받는 인수가 없는 경우

myClass.myMethod.overload().implementation = function() {

 

}

 

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

myClass.myMethod.overload("[B", "[B").implementation = function(param1, param2) {

 

}

 

Case 3) 앱의 context와 Boolean 형태의 인수로 입력받는 메소드

myClass.myMethod.overload("android.context.Context", "boolean").implementation = function(param1, param2) {

 

}

 

 

+참고
overload() 매개변수 카테고리

.overload() 
.overload('int’) 
.overload('boolean') 
.overload('float') 
.overload('[B') // byte array 
.overload('[B', '[B', '[B') 
.overload('java.io.File') 
.overload('java.lang.String') 
.overload('android.view.View') 
.overload('android.app.Activity') 
.overload('android.content.Context') 
.overload('android.content.Context', 'java.lang.String') 
.overload('java.lang.String', 'java.lang.String') 
.overload('android.graphics.Bitmap') 
.overload('java.util.List’) 
.overload('android.content.Context', 'java.lang.String', 'java.lang.String') 
.overload('android.app.Activity', 'int', 'int', 'int', 'boolean')


이전 포스팅에 이어서 아래와 같이 Frida API와 Overloading에 대해 알아보았다.

-Java.perform(fn)
-Java.use(className)
-Java.enumerateLoadedClasses(callbacks)
-Java.choose(className, callbacks)
-setImmediate(fn)

-Overloading

그 외에 Frida의 자바스크립트 API가 궁금하다면 프리다 공식홈페이지를 참조하자.
https://frida.re/docs/javascript-api/#java

 

JavaScript API

Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX

frida.re

 

관련글 더보기