frida hook实例

上一篇简单介绍了frida安装,这一章说一下frida的简单调用,直接上代码

使用工具
rps.apk(这是一个石头剪刀布的游戏应用)
mumu模拟器

rps.apk下载链接:https://pan.baidu.com/s/1dlfdrr0dTAJcuAx6M4cLEQ
提取码:6g93

启动./frida-server 服务后,执行如下代码。

python脚本注入方式

import frida, sys

def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

jscode = """
    Java.perform(function () {
        var MainActivity = Java.use('com.example.seccon2015.rock_paper_scissors.MainActivity');
        MainActivity.onClick.implementation = function (v) {
            send("Hook Start...");

            # 不改变参数v的情况下,直接调用原方法onClick(v),这样不妨碍程序原本的运行
            # 如果想要修改参数,也是在此处直接对v进行修改。
            this.onClick(v);

            # 程序中代码的变量可以随意修改
            this.n.value = 0;
            this.m.value = 2;
            this.cnt.value = 999;

            # 以下两种方式都能打印
            send("Success!")
            console.log("Success!")
        }
    });
    """
process = frida.get_usb_device(1000).attach('com.example.seccon2015.rock_paper_scissors')
script = process.create_script(jscode)
script.on('message', on_message)
script.load()
sys.stdin.read()

使用jadx-gui反编译,可以看到onClick源码如下:
在这里插入图片描述

启动apk,界面上有R,P,S按钮,比如点击R按钮,会出现如下图所以:
在这里插入图片描述

代码会如下图所示:
在这里插入图片描述

到此运行成功。

本章没有过多的介绍hook的理论知识,就是一个简单的入门代码,可以直接运行,感受一下frida如何hook。

有时间再详细的介绍frida+hook的一些常用方法和实例。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值