-
[FRIDA] App 변수 후킹하는 법Mobile/Frida 2019. 10. 7. 20:17
Frida로 App의 변수값에 접근하여 값을 출력하고 수정하는 법에 다루도록 하겠다.
App을 JEB로 열어보면 위 그림처럼 변수들이 사용되고 있는 것을 확인할 수 있다.
Frida Javascript API 중 'Java.choose("class",Callback)'API를 이용해서 위 변수들에 접근할 수 있는데,
여기서는 MainActivity에 선언된 lose변수에 접근해서 값을 출력하고 원하는대로 조작하는 것을 목표로 해보겠다.
Java.choose("com.example.HOOKAPP.MainActivity", { onMatch: function(instance) { HOOKING CODE~~~ }, onComplete: function() { HOOKING CODE~~~ } });
Java.choose함수의 예시는 위와 같다.
메모리에서 "com.example.HOOKAPP.MainActivity"와 일치하는 Class를 찾으면 onMatch구문이 실행된다.
인자로 넘어오는 instance를 참조해서 해당 Class에 접근할 수 있다.
onMatch의 코드가 전부 실행되면, onComplete구문으로 진입하게 된다.
아래 코드는 MainActivity의 lose변수을 후킹하는 코드이다.
Java.perform(function() { var MainINS; Java.choose("com.example.HOOKAPP.MainActivity", { onMatch: function(instance) { MainINS = instance; MainINS.lose.value = 1337; }, onComplete: function() { console.log("[*] lose: "+ MainINS.lose.value); } }); });
onMatch구문에서 MainActivity의 lose변수에 1337를 저장하고, onComplete구문에서 lose변수의 값을 출력한다.
'Mobile > Frida' 카테고리의 다른 글
[FRIDA] 실행되지 않는 메소드 호출하기 (0) 2019.10.12 [FRIDA] App String Trace (모든 문자열 출력) (0) 2019.10.12 [FRIDA] Android HashMap 오브젝트 출력하는 법 (0) 2019.10.04 Frida zgote에러 발생할 때 (SystemApp Hooking) (0) 2019.07.08 Frida를 이용한 App DB복호화Key 알아내기(with.TigerText) (20) 2019.07.05 댓글