栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

3.Frida基本操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3.Frida基本操作

0.android studio下载安装 与测试

android studio下载

解压
tar zxvf 

环境变量

vim .zshrc
export PATH="/home/kali/Android/Sdk/platform-tools:$PATH"
source .zshrc

或.bashrc

网络连接手机

adb connect 192.168.50.138:5555
adb disconnect 192.168.50.138:5555
frida 注入命令
frida -H 192.168.50.138:6666 -f com.example.project_2 -l demo_1.js --no--pause
frida -U 是以usb 方式连接 
-f 代表找到包并打开
注意 以 -f方式启动需要  手动输入一个 %resume 

frida 注入函数
setImmediate(回调函数) 注入进去立即执行
setTimeout(函数回调,1000)  定时调用
手动调用:
    写一个方法.....里面写Java.perform(function(){.........})
1.Frida各种基础操作
function main(){
    Java.perform(function(){
        Java.use("包名.类名").方法名.implementation = function(arg1,arg2){
             console.log(arg1,arg2)
             var result = this.方法名(arg1,arg2)
             console.log(result)
             return result           
        }    
    })
}
setImmediate(main)

一句话调用栈hook

console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aA2rRCjv-1654267054258)(https://s2.loli.net/2022/06/03/YngiqZhRX57uxcA.png)]

重载函数hook
function main(){
    Java.perform(function(){
        //这里hook  fun(int a,int b) 返回值int
        Java.use("包名.类名").方法名.overload('int','int').implementation = function(arg1,arg2){
             console.log(arg1,arg2)
             var result = this.方法名(arg1,arg2)
             console.log(result)
             return result           
        }
        //这里hook的是  fun(String s) 返回值 String
        Java.use("包名.类名").方法名.overload("java.lang.String").implementation = function(s1){
            var result = this.方法名(s1)
            console.log(result)
            return result        
        }    
    })
}
setImmediate(main)
创建java字符串
Java.use("java.lang.String").$new("字符串")
java函数主动调用 私有的,受保护的,默认的 (动态)
function main(){
    Java.perform(function(){
           Java.choose("包名.类名",{
               //创建实例对象
               onMatch:function(instance){

                   console.log("found instance:",instance)
                   //调用secret自定义方法
                   var result = instance.方法名();   
                   console.log(result)            
               },onComplete:function(){console.log("调用成功了!")}
           })
    })
}

setImmediate(main)
调用公共静态无参数方法(静态)
function main(){
    Java.perform(function(){
           console.log(Java.use("com.example.project_2.MainActivity").secret2())
    })
}
setImmediate(main)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号