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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 948|回复: 17
收起左侧

[Android 求助] Frida 如何 修改函数内部的立即数

[复制链接]
回帖奖励 2 CB吾爱币 回复本帖可获得 2 CB吾爱币奖励! 每人限 1 次
a8416aa 发表于 2023-2-3 17:48
frIDA hook 修改函数参数很好理解, 就相当于覆盖了函数重写了,

但是有一种场景, 比如


void run() {

【一大堆代码】

if( x < 10) {
【零一大堆代码】
}
【还是一大堆代码】
}



就是如何修改函数体内部的这个10, 重新实现整个函数是不现实的, 太多代码了

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

 楼主| a8416aa 发表于 2023-2-3 17:51
比如这里,我想修改43200, 如何用frida 实现呢

    public final void m44359M(GjCGMRecord cgmRecord) {
        final int i;
        final int m20459d = cgmRecord.m20459d();
        float m20455j = cgmRecord.m20455j();
        long m20461b = cgmRecord.m20461b();
        int m20456i = cgmRecord.m20456i();
        float m20453l = cgmRecord.m20453l();
        int m20457g = cgmRecord.m20457g();
        this.f25057r = m20457g;
        String m24331T = UserInfoUtils.m24331T();
        final C5521BloodGlucoseEntity m44351U = m44351U(m24331T, this.f25043d, this.f25042c, m20457g, m20455j, m20453l, m20456i, m20459d, (System.currentTimeMillis() - ((m20459d + m20457g) * 60000)) + 60000, m20461b);
        if (m20459d <= 43200 && !this.f25048i) {
            AppDatabase.m44319F().m15043z(new RunnableC5507d(m44351U, m24331T, m20459d));
            if (m20459d != 43200) {
                i = m20457g;
                if (i <= 1 && m20459d % 5 == 0 && this.f25044e != null && ObjectUtils.m12160x(this.f25043d) && ObjectUtils.m12160x(this.f25052m)) {
                    this.f25040a.m24067r(this.f25043d, this.f25052m, this.f25044e.getAlgorithmVersion());
                }
                if (!this.f25041b && this.f25050k != null && !this.f25048i) {
                    ThreadUtils.m58920s0(new Runnable() { // from class: c23
                        @Override // java.lang.Runnable
                        public final void run() {
                            LocalBleService.this.m44353S(m44351U, m20459d, i);
                        }
                    });
                }
                if (this.f25041b) {
                    return;
                }
                this.f25048i = true;
                return;
            }
        }
        i = m20457g;
        if (!this.f25041b) {
            ThreadUtils.m58920s0(new Runnable() { // from class: c23
                @Override // java.lang.Runnable
                public final void run() {
                    LocalBleService.this.m44353S(m44351U, m20459d, i);
                }
            });
        }
        if (this.f25041b) {
        }
    }
闷骚小贱男 发表于 2023-2-3 18:49

回帖奖励 +2 CB吾爱币

不用frida ,不过貌似不能这样操作吧?
除非重写m44359M函数?

直接改smali会更简单点,但是可能有一堆的签名验证等问题
 楼主| a8416aa 发表于 2023-2-3 19:36
闷骚小贱男 发表于 2023-2-3 18:49
不用frida ,不过貌似不能这样操作吧?
除非重写m44359M函数?

对, 我想找一种侵入性小的方法,frida应该是首选
5ctw 发表于 2023-2-3 19:57

回帖奖励 +2 CB吾爱币

一直再找这个问题的答案,蹲大佬
另外,你可以改一下smali代码,然后用frida绕签名这些看看
 楼主| a8416aa 发表于 2023-2-3 20:24
5ctw 发表于 2023-2-3 19:57
一直再找这个问题的答案,蹲大佬
另外,你可以改一下smali代码,然后用frida绕签名这些看看

是的,虽然这样可以改,但是别人的app一旦升级了,又得全部重做
jwzyjwzy 发表于 2023-2-3 20:30

回帖奖励 +2 CB吾爱币

frida 可以逐代码hook的好像叫stalker
 楼主| a8416aa 发表于 2023-2-3 22:00
jwzyjwzy 发表于 2023-2-3 20:30
frida 可以逐代码hook的好像叫stalker

学习一下
qq20048888 发表于 2023-2-3 22:24

回帖奖励 +2 CB吾爱币

改一下smali代码,把版本号也改了。就不怕升级了吧
 楼主| a8416aa 发表于 2023-2-3 22:25
qq20048888 发表于 2023-2-3 22:24
改一下smali代码,把版本号也改了。就不怕升级了吧

是这样可以,但是人家升级了功能也升级了,哈哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-29 20:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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