吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 762|回复: 9
收起左侧

[Android 求助] frida使用疑问

[复制链接]
as614001 发表于 2023-1-6 20:05
本帖最后由 as614001 于 2023-1-6 20:10 编辑

什么情况下会导致frida无法hook具体函数?

frida脚本可以遍历指定类下的的任意方法。但是当我具体hook函数的时候 无论是咋样或者重载都没有输出,像是hook失败一样。我百分百确定已经找到对应的正确的类。


package com.qidian.QDReader.readerengine.view.dialog;
.....省略
   public final void updateView() {
        String n8;
        String string;
        Integer[] selectInfo = getSelectInfo();
        ((QDUIButton) findViewById(R.id.rightBtn)).setTag(selectInfo);
        int intValue = selectInfo[0].intValue();
        int intValue2 = selectInfo[1].intValue();
        int i10 = this.price - intValue2;
        int i11 = intValue == 0 ? 1 : 0;
        boolean z8 = i10 <= 0;
        ChapterCard chapterCard = this.mChapterCard;
        if (TextUtils.isEmpty(chapterCard == null ? null : chapterCard.getHint())) {
            n8 = getContext().getString(R.string.b99);
        } else {
            ChapterCard chapterCard2 = this.mChapterCard;
            n8 = kotlin.jvm.internal.r.n(",", chapterCard2 != null ? chapterCard2.getHint() : null);
        }
        kotlin.jvm.internal.r.d(n8, "if (TextUtils.isEmpty(mC…terCard?.Hint}\"\n        }");
        TextView textView = (TextView) findViewById(R.id.bottomDescTv);
        if (i11 != 0) {
            string = kotlin.jvm.internal.r.n(getContext().getString(R.string.bl6, String.valueOf(this.price)), n8);
        } else if (z8) {
            string = getContext().getString(R.string.bl7, String.valueOf(this.price), String.valueOf(intValue), String.valueOf(intValue2));
        } else {
            string = getContext().getString(R.string.bl8, String.valueOf(this.price), String.valueOf(intValue), String.valueOf(i10));
        }
        textView.setText(string);
        ((QDUIButton) findViewById(R.id.rightBtn)).setButtonState(i11);
        if (i11 == 0 && !z8) {
            if (i10 <= this.balance) {
                ((QDUIButton) findViewById(R.id.rightBtn)).setText(getContext().getString(R.string.blb, String.valueOf(i10)));
                return;
            } else {
                ((QDUIButton) findViewById(R.id.rightBtn)).setText(getContext().getString(R.string.bys));
                return;
            }
        }
        ((QDUIButton) findViewById(R.id.rightBtn)).setText(getContext().getString(R.string.bla));
    }

像这段就是某点打开购买页面加载对应支付页面并设置按钮text值
我的hook是 加重载也试过 但是就是不生效。但也不报错。

let QDChapterCardSheetDialog = Java.use("com.qidian.QDReader.readerengine.view.dialog.QDChapterCardSheetDialog");
QDChapterCardSheetDialog["updateView"].implementation = function () {
    console.log('updateView is called');
    let ret = this.updateView();
    console.log('updateView ret value is ' + ret);
    return ret;
};

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

paypojie 发表于 2023-1-6 20:19
楼主 你这个代码框是怎么实现的
 楼主| as614001 发表于 2023-1-6 23:29
paypojie 发表于 2023-1-7 11:44
debug_cat 发表于 2023-1-7 11:50
有没有样本呢,想测试下你说的位置
debug_cat 发表于 2023-1-7 11:52
你想hook的方法没有返回值的,你的脚本有返回值,这样是不对的。
 楼主| as614001 发表于 2023-1-7 14:03
莫问刀 发表于 2023-1-7 11:52
你想hook的方法没有返回值的,你的脚本有返回值,这样是不对的。

倒不关这个事 这里是举例了 。主要我咋试都发现hook方法无效 。但遍历类方法没问题 你下载最新版本起点读书,然后 搜索 autojs 就可以找到了 。案例的方法 搜索 string.blb
 楼主| as614001 发表于 2023-1-7 14:04
莫问刀 发表于 2023-1-7 11:50
有没有样本呢,想测试下你说的位置

麻烦大佬测试测试是否是我的使用问题导致、昨晚恼火直接xposed了
debug_cat 发表于 2023-1-7 14:20
as614001 发表于 2023-1-7 14:03
倒不关这个事 这里是举例了 。主要我咋试都发现hook方法无效 。但遍历类方法没问题 你下载最新版本起点读 ...

我下载登录了,搜索autojs,结果是空的
 楼主| as614001 发表于 2023-1-7 18:41
莫问刀 发表于 2023-1-7 14:20
我下载登录了,搜索autojs,结果是空的

不会啊 我搜索jadx搜索
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-20 02:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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