2020. 1. 28. 23:41ㆍ2020/Android App Hacking
Frida
Native apps들에 JavaScript코드를 실행시킬 수 있는 동적 분석 툴 킷이다.
Installing Frida (Window환경)
$ pip install frida-tools
https://github.com/frida/frida/releases/ - frida-server-12.8.6-android-x86.xz 설치 후 디바이스에 넣어준다.
$ adb push frida-server /data/local/tmp/
$ adb shell 접속
# chmod 755 /data/local/tmp/frida-server
# ./frida-server & 이후 데스크탑에서 cmd> frida-ps -U 로 동작중인 프리다 서버를 확인할 수 있다
Using Frida on Android
$ frida-ps -U (U: connected USB device)
$ frida-ps -Uai (-a: get all apps, i: currently installed)
Tracing Native Libraries with frida-trace
$ frida-trace -U com.android.chrome -I “open”
Nox구동 중 - uncrackable앱에 대한 후킹 작업
In a Device shell
$ ./fridaserver &
Local host
[js코드 작성법]
#1 메서드
1
2
3
4
5
6
7
8
9
10
11
12
|
setImmediate(function() {
console.log("[*] Starting script");
Java.perform(function() {
var exitClass = Java.use("java.lang.System");
console.log("[*] exitClass OK");
exitClass.exit.implementation = function() {
console.log("[*] System.exit called.");
};
console.log("[*] System exit handler modified");
});
});
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
#2 앱에서 동작하는 함수
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
setImmediate(function() {
console.log("[*] Starting script");
Java.perform(function(){
var aaClass = Java.use("sg.vantagepoint.a.a");
aaClass.a.implementation = function(arg1, arg2) {
var retval = this.a(arg1, arg2);
var pass = "";
var i = 0;
for(i = 0; i < retval.length; i++) {
pass += String.fromCharCode(retval[i]);
}
console.log("[*] Decrypted: " + pass);
return retval;
};
console.log("[*] sg.vantagepoint.a.a.a modified");
});
});
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
#3 인스턴트화 된 객체
1
2
3
4
5
6
7
8
9
10
|
setImmediate(function(){
console.log("[*] Starting script");
Java.perform(function(){
Java.choose("android.view.View",{
"onMatch":function(instance){ console.log("[*] Instance found: " + instance.toString());}
,
"onComplete":function(){ console.log("[*] Finished heap search");}
});
});
});
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
Frida서버에서 다음 명령어를 실행시켜 앱을 후킹한다. $ frida -U -l [JavaScript.js] [PackageName]
'2020 > Android App Hacking' 카테고리의 다른 글
Santoku: Signing an Application using keytool and jarsigner (0) | 2020.01.31 |
---|---|
Santoku: Decompile an Application using apktool (0) | 2020.01.31 |
칼리리눅스에서 안드로이드 리버싱 환경구성 (0) | 2020.01.22 |
안드로이드 취약점 진단 툴 ( Appie, Inspeckage ) (0) | 2020.01.09 |
Burp Suite와 안드로이드 에뮬레이터 연결과 통신하기 (0) | 2020.01.09 |