【Frida】调试js代码

方法一attach启动

js代码动态注入app,app需要保持运行状态

# coding: utf-8
import sys
import frida

app_name = "猿人学APP" # app的名字
js_file_path = "./demo.js" # js代码的文件位置


def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)
with open(js_file_path,mode="r",encoding="utf8") as f:
    js_demo = f.read()
process = frida.get_usb_device(-1).attach(app_name)
script = process.create_script(js_demo)
script.on('message', on_message)
script.load()
sys.stdin.read()

方法二spawn 启动

重启app,app时就注入hook代码

# coding: utf-8
import sys
import frida

app_packagename = "com.yuanrenxue.challenge" # app的包名
js_file_path = "./demo.js" # js代码的文件位置


def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)
with open(js_file_path,mode="r",encoding="utf8") as f:
    js_demo = f.read()


device = frida.get_usb_device(-1)
pid = device.spawn([app_packagename])
process = device.attach(pid)

script = process.create_script(js_demo)
script.on('message', on_message)
print('[*] Running')
script.load()

device.resume(pid)

sys.stdin.read()
Frida 是一款强大的动态分析工具,可以用于在运行时对应用程序进行动态修改,例如 Hook 某些函数、修改函数的返回值、修改变量的值等。下面是使用 Frida 进行动态调试的步骤: 1. 安装 Frida:在命令行中使用 pip install frida 进行安装。 2. 在需要进行动态调试的应用程序中添加 Frida 的依赖:在 Gradle 文件中添加以下依赖: ``` implementation 'com.github.frida:frida-gson:12.4.5' implementation 'com.github.frida:frida-android:12.4.5' ``` 3. 在应用程序中初始化 Frida: ``` FridaAndroid.initialize(); ``` 4. 在需要进行动态调试的地方添加 Frida 的 Hook 代码: ``` FridaAndroid.attach(this); FridaAndroid.executeJavaScript("Interceptor.attach(Module.findExportByName(null, '函数名'), {onEnter: function(args) {console.log('参数1:', args[0].readCString());console.log('参数2:', args[1].readCString());}});"); ``` 其中,函数名为需要进行动态调试的函数名。 5. 运行应用程序,并在命令行中使用 Frida 的命令进行 Hook: ``` frida -U com.example.packagename -l hook.js --no-pause ``` 其中,com.example.packagename 为需要进行动态调试的应用程序的包名,hook.js 为 Hook 代码所在的 JavaScript 文件。 6. 在命令行的输出中查看 Hook 的结果,以及在 Android Studio 的 Logcat 中查看输出信息。 需要注意的是,在使用 Frida 进行动态调试时,需要先将应用程序安装在设备上,并且需要在设备上启动应用程序后才能进行动态调试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

干瘪的兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值