unidbg2

查找用例

objection -g com.weico.international explore
android hooking watch class com.weico.international.activity.SinaLoginMainActivity

hook后确定调用

查看

android hooking watch class_method com.sina.weibo.security.WeiboSecurityUtils.calculateSInJava --dump-args --dump-return --dump-backtrace

s参数一致

查看

打开对应so文件

静态方法

静态方法注释掉

运行

填参数

报错

往上找报错点

签名检测

往上找

tab

(byte)0xFF, (byte) 0xF7, (byte) 0xEB, (byte) 0xFE

改掉

public void patchVerify1(){
 
        Pointer pointer = UnidbgPointer.pointer(emulator, module.base + 0x1E86);
 
        assert pointer != null;
 
        byte[] code = pointer.getByteArray(0, 4);
 
        if (!Arrays.equals(code, new byte[]{ (byte)0xFF, (byte) 0xF7, (byte) 0xEB, (byte) 0xFE })) { // BL sub_1C60
 
            throw new IllegalStateException(Inspector.inspectString(code, "patch32 code=" + Arrays.toString(code)));
 
        }
 
        try (Keystone keystone = new Keystone(KeystoneArchitecture.Arm, KeystoneMode.ArmThumb)) {
 
            KeystoneEncoded encoded = keystone.assemble("mov r0,1");
 
            byte[] patch = encoded.getMachineCode();
 
            if (patch.length != code.length) {
 
                throw new IllegalStateException(Inspector.inspectString(patch, "patch32 length=" + patch.length));
 
            }
 
            pointer.write(0, patch, 0, patch.length);
 
        }
 
    }

一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值