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


 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 12:18:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 12:18:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 12:18:05       58 阅读
  4. Python语言-面向对象

    2024-07-14 12:18:05       69 阅读

热门阅读

  1. mysql快速精通(四)多表查询

    2024-07-14 12:18:05       24 阅读
  2. 如何隐藏 Ubuntu 顶部状态栏

    2024-07-14 12:18:05       31 阅读
  3. springboot2——功能和原理

    2024-07-14 12:18:05       22 阅读
  4. Oracle 数据清理

    2024-07-14 12:18:05       22 阅读
  5. win32:第一个窗口程序-初始化实例(part.5)

    2024-07-14 12:18:05       26 阅读
  6. Flask与Celery实现Python调度服务

    2024-07-14 12:18:05       22 阅读
  7. `speech_recognition` 是一个流行的库

    2024-07-14 12:18:05       21 阅读
  8. 致十年后的自己

    2024-07-14 12:18:05       14 阅读
  9. 25秋招面试算法题 (Go版本)

    2024-07-14 12:18:05       25 阅读
  10. yii2 AssetBundle使用

    2024-07-14 12:18:05       22 阅读
  11. 如何使用IPython的并行计算能力处理大数据

    2024-07-14 12:18:05       23 阅读