Frida入门使用

网上很多教程的python环境都是安装了Anaconda,那就下载吧。但下载之后我们需要用到的工具是里面的spyder,但现在用不到。

在这里插入图片描述

安装完之后,在该文件夹下找到 pip指令,或者在安装anaconda时,选择了添加环境变量的设置,就不需要专门去找该指令的目录。然后 cmd

pip install frida
pip install frida-tools

安装完成后,在github上下载frida-server
链接
在这里插入图片描述
虚拟机用x86,真机用arm

下载完frida-server之后,将目标文件解压,之后放进模拟器(真机中),我使用的是逍遥安卓模拟器,按照好之后需要connect端口。
adb命令如下:

adb push frida-server /data/local/tmp 

之后,进入该目录进行文件授权

adb shell  //进入手机调试

cd /data/local/tmp	//移动到该目录下

ls -l	//查看该目录下的文件列表

chmod 777 frida-server	//对frida-server文件进行授权

./frida-server	//执行frida-server

之后打开一个新的cmd,进行端口转发

adb forward tcp:27042 tcp:27042

打开spyder,新建一个py文件。完整代码如下,右下角是调试窗口

import frida,sys

jscode="""
Java.perform(function (){
   
    var utils=Java.use('com.example.fridatest.Utils');//包名加类名
    utils.getCalc.implementation=function(a,b){
   
        console.log("Hook Start...");
        send("Success!");//发送信息,用于回调python中的函数
        send(a);//获得函数的参数a,b
        send(b);
        return 50;//劫持返回值,修改为我们想要返回的字符串
    }
});   
"""

def message(message,data):
    if message["type"] =='send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)
        
        
process=frida.get_remote_device().attach('com.example.fridatest')  
# get_remote_device():获取远程设备。attach(应用包名)。获得进程
script=process.create_script(jscode)    # 为进程设置一个脚本
script.on("message",message)   #设置监听(绑定事件)
script.load()
sys.stdin.read()

在这里插入图片描述
打开模拟器应用进行调试
原本调试情况:
在这里插入图片描述
运行frida后,可以将js代码中的返回值代替该返回值。

android项目地址:链接


Java层:

# Hook普通方法
jscode="""
Java.perform(funct
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值