Frida hook android 应用程序
之前已经讲过了frida的安装和使用,本篇文章主要讲下怎么hook android 的应用程序。
1:编写hook脚本
如下test.js
Java.perform(function () {
var WelcomeActivity = Java.use('com.tencent.mm.plugin.account.ui.WelcomeActivity');
WelcomeActivity.onCreate.implementation = function (savedInstanceState) {
console.log('onCreate');
this.onCreate(savedInstanceState);
};
});
本程序hook了微信的welcomeActivity.onCreate方法。 当执行该方法时,打印输出onCreate日志
2:运行
这里我们回顾下运行的过程。
adb shell
cd /data/local/tmp
su
chmod 777 frida-server
cd frida-server
chmod 777 data
./data
接着我们执行frida-ps -U来显示设备上运行的进程列表。
最后我们执行test.js脚本:
frida -U -f com.tencent.mm -l '/home/zh/test/test1.js'
最后的输出如下:
____
/ _ | Frida 16.0.2 - A world-class dynamic instrumentation toolkit
| (_| |
> _ | Commands:
/_/ |_| help -> Displays the help system
. . . . object? -> Display information about 'object'
. . . . exit/quit -> Exit
. . . .
. . . . More info at https://frida.re/docs/home/
. . . .
. . . . Connected to LEX820 (id=6b4a96b2)
Spawned `com.tencent.mm`. Resuming main thread!
[LEX820::com.tencent.mm ]-> onCreate
可以看到启动微信后,控制台打印了onCreate,说明hook成功。