B(l)utter逆向案例某台球

星球链接  https://t.zsxq.com/kNlj4

1.分析样本

首先我们先分析一下抓包:有个sign值 是32位 我们大概率猜测是md5.

接着分析apk把apk后缀改成 zip 我们在lib目录下发现有 libapp.so 和 libflutter.so的特征,所以他就是一个flutter写的app。

360加固 ,在用reflutter的时候 重签名安装后会闪退所以我们今天使用一个新的工具:B(l)utter

2.B(l)utter

项目地址:worawit/blutter:Flutter 移动应用程序逆向工程工具 (github.com)

3.使用工具逆向

具体使用

把 libapp.so 和 libflutter.so 复制到 blutter 文件目录 新建一个 arm64-v8a(这个叫啥都无所谓)

打开x64 Native Tools

因为我这个是第二次运行了 所以编译会快一些,不用去下载一些东西。

在文件夹里 会多出 这些文件:

用 Script file进行导入ida_script的文件ida_script/addNames.py,符号就被全部恢复出来

因为之前 我们已经猜测是md5了所以直接在ida中搜索 md5关键词

我们一 一去测试 去hook:

最后发现 在 crypto$src$md5MD5SinkupdateHash_bee9f0 里面我们发现了提交数据包的明文:

代码如下:

var addr = Module.findBaseAddress('libapp.so');
console.log(addr); //0xb696387d
var funcAddr = addr.add(0xBEE9F0);//hook地址
console.log(funcAddr); //0xb6980000
// get_info(funcAddr)
Interceptor.attach(funcAddr, {
    onEnter: function (args) {
        console.log("hook到了------------------")
        this.x1 = args[1];
        console.log('args0:',args[0])
        console.log('args1:',args[1])
        console.log('args2:',hexdump(args[2]))
        console.log('args3:',hexdump(args[3]))
        console.log('args4:',hexdump(args[4],{length:1000}))
        // console.log('args5:',args[5])
        // console.log('args6:',args[6])
        // console.log('args7:',args[4])
        // console.log('args8:',args[8])
​
        // console.log('args2:',hexdump(args[2]))
​
    },
    onLeave: function (retval) {
        console.log("--------------------")
        // console.log(Memory.readCString(this.x1));
        // console.log(Memory.readCString(retval));
        console.log('返回值:', hexdump(retval))
    }
})

hook结果:

4.验证

所以今天的案例就到这里了!结束  my_wx = 15232101239


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值