[mobile]frida script 기본설명(1) : frida API
- Java.perform(fn)
Java.perform(function() {
} |
: 현재 스레드가 가상머신에 연결되어 있는지 확인하고 fn을 호출
- Java.use(className)
var myClass = Java.use(com.mypackage.name.class) var myClassInstance = myclass.$new(); var result = myClassInstance.myMethod("param") myClass.myMethod.implementation = function(param) { // .implementation : 앱에서 정의된 메소드의 구현 내용을 재작성 한다. } |
: 자바스크립트 래퍼(wrapper) 를 className에 동적으로 가져와서 생성자를 호출하기 위해 $new()를 호출하여 객체를 인스턴스화함
//래퍼에 대한 설명
간단히 말하면, 기본 자료형(int, long)같은 데이터를 객체에 넣기 위해 제공하는 함수들이라고 생각하면 된다.
ex) int num = 5 --> Integer num = new Integer(5); |
https://includestdio.tistory.com/26
https://mommoo.tistory.com/12
* 이를 이용하여 메소드 구현을 변경할 수 있고, 예외를 적용할 수 있음
* 이는 변수와 메소드에 엑세스 할 수 있는 클래스 객체를 반환(이 클래스의 인스턴스가 아니기에 메소드 구현을 변경하려면 새로운 메소드로 덮어써야함)
[mobile]frida script 기본설명(2) : frida API (0) | 2019.12.27 |
---|---|
[mobile]frida CLI 스크립트 사용방법(1) (0) | 2019.12.27 |
[mobile]frida-trace, frida-ps (0) | 2019.12.27 |
[mobile] adb를 이용한 안드로이드 비트 확인 (0) | 2019.12.19 |
[mobile] python 버전관리 툴 (0) | 2019.12.19 |