吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3850|回复: 14
收起左侧

[Android 原创] frida初探

  [复制链接]
kratos__bubu 发表于 2021-8-13 20:44
本帖最后由 kratos__bubu 于 2021-8-17 17:18 编辑

frIDA学习记录
frida绕过某设备限制
(主要是学习frida hook普通方法参数 和方法返回值以及hook 所有重载方法)
首先是编写代码环境搭建:
这里使用js js要方便很多 用py不知道为啥毛病多

使用vscode 并且装有node.js

npm install @types/frida-gum  安装这个库 这个库是为了你用js代码写 frida脚本会有提示 这是 用py没有的 还有个语言是ts(typescript)




这是我们要hook的地方 点击(领取60元门槛券)
post的参数就是下面这些
[CSS] 纯文本查看 复制代码
vvc_imei=************; ; vvc_point_channel=gamecenter; vvc_n=************; vvc_is_vivo=1; vvc_p=************; ; vvc_app_name=5.3.0.9; vvc_openid=************; ; vvc_an=************; ;
vvc_elapsedtime=************; ; vvc_av=25; vvc_status=1; vvc_app_version=53009;
vvc_s=2%************; ; vvc_q=************; ; vvc_model=************; ; vvc_cs=************; ; vvc_r=************; ;
vvc_u=************; ; vvc_k=************; ; vvc_pn=************; ; vvc_encode=************; ; vvc_has=0; vvc_cc=CN


以上这些是通过抓包获取到的一些参数,主要的有几个参数:
vvc_imei//手机串号
vvc_model //就是用户手机号
vvc_is_vivo=1 //是否为指定设备
vvc_u // 这是ufsid (这是最重要的)
经过我不断修改参数返回值 和参数 最主要的就是这四个 其他的是用户信息和安卓版本以及软件版本什么乱七八糟的

当我们点击29元开通的时候 他会出现账户异常 或者点不了 是因为设备限制



我在jadx gui搜索弹出的几个字符是没有的 所有我们就换个思路  hook post 的几个参数值 让他成为合法的参数


那好 码代码开始


if(Java.available) 这个判断是用来判断 是否进入jvm

//首先我们hook 第一个参数
[JavaScript] 纯文本查看 复制代码
if(Java.available)
{
[color=#333333][backcolor=#f5f5f5][font=Consolas,]
[color=#333333][color=#777777] if(Java.available)
    {
        Java.perform(function(){
            console.log("start hook");
            var vvc_is_vivo=Java.use("com.vivo.ic.SystemUtils")
            vvc_is_vivo.isVivoPhone.implementation=function()
            {
               var isvivo= this.isVivoPhone();
                console.log("修改之前的值"+isvivo);
                isvivo=true;
                console.log("修改之后的值"+isvivo)
                return isvivo;
            }

            var vvc_model=Java.use("com.vivo.ic.SystemUtils")
            vvc_model.getProductName.implementation=function()
            {
                var ProductName= this.getProductName();
                console.log(typeof(ProductName));
                console.log("修改之前的值"+ProductName);
                ProductName="vivo x30";
                console.log("修改之后的值"+ProductName);
                return ProductName;
            }

            var vvc_imei=Java.use("com.vivo.game.core.utils.Device")
            vvc_imei.getAppImei.implementation=function()
            {
                var getAppImei= this.getAppImei();
                console.log("修改之前的值"+getAppImei);
                getAppImei="862888038846551";
                console.log("修改之后的值"+getAppImei);
                return getAppImei;
            }

            var vvc_u=Java.use("com.vivo.game.core.utils.Device")
            vvc_u.getUfsid.implementation=function()
            {
                var getUfsid= this.getUfsid();
                console.log("修改之前的值"+getUfsid);
                getUfsid="90014a4841473265050750d2ca635300";
                console.log("修改之后的值"+getUfsid);
                return getUfsid;
            }[/color][/color][/font][/backcolor][/color]
}
为了节约字数:
vvc_u,
vvc_model,

vvc_imei,都是上面的写法而vvc_u需要改成90014a4841473265050750d2ca635300 这玩意我也不知道是啥 我用vivo手机抓的 ufsid

下面是hook重载


[JavaScript] 纯文本查看 复制代码
            var hook = Java.use("com.vivo.game.core.network.loader.RequestParams");
            //重载次数
            var overloadCount = hook["b"].overloads.length;
            console.log(overloadCount);//打印重载方法的个数
            for (var i = 0; i < overloadCount; i++) {
            //hook每一个重载
                hook["b"].overloads[i].implementation = function() {
                    console.warn("\n*** entered " + "b");
            
                   
                    Java.perform(function() {
                         var bt = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new());
                          console.log("\nBacktrace:\n" + bt);//这是打印方法调用堆栈
                    });   
            
                    // 打印参数
                    if (arguments.length) console.log();
                    for (var j = 0; j < arguments.length; j++) {
                        console.log("参数:arg[" + j + "]: " + arguments[j]);
                    }
            
                    //打印返回值
                    var retval = this["b"].apply(this, arguments); // rare crash (Frida bug?)
                    console.log("\n 返回值:retval: " + retval);
                    console.warn("\n*** exiting " + "b");
                    return retval;
                }
            }


差不多就是这些,很多只是来源于看雪的大佬 这是他 github地址:https://github.com/r0ysue/AndroidSecurityStudy/tree/master/FRIDA/B02  (看完之后受益匪浅)





QQ图片20210817171702.png

免费评分

参与人数 7吾爱币 +11 热心值 +7 收起 理由
zhang10086xx + 1 + 1 我很赞同!
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zzzbbbccc + 1 + 1 谢谢@Thanks!
nullable + 1 收藏等于学废系列
chinawolf2000 + 1 + 1 热心回复!
杨辣子 + 1 + 1 用心讨论,共获提升!
Higher-Stark + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

A3yyds 发表于 2021-8-14 11:11
吾爱币我爱你呀
qc123 发表于 2021-8-14 13:18
chenbingo 发表于 2021-8-14 18:48
Diedi 发表于 2021-8-15 01:27
谢谢分享
xiamen 发表于 2021-8-15 01:30
谢谢大哥分享
Tamluo 发表于 2021-8-15 20:53
谢谢分享
pur1n 发表于 2021-8-16 10:37
感谢分享!
goodwei 发表于 2021-8-16 11:00
感谢分享
bluebug 发表于 2021-8-16 12:49
frida厉害啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 11:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表