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成功。

11-21 12:34