记从某猫拿公开的工商数据

记录我从某猫拿公开的工商数据

我们先来解决第一个问题

前期分析

直接反编译 apk 可以看到类太少了,数据应该是被加密隐藏了

通过关键字 qihoo.util libjiagu 可以判读该应用使用了 360 加固

这里由于使用了加固, 没有拿到真实内存 dex. 很难通过其他特征定位到环境检测的关键代码

搜索关键字 xposed 等是无法直接定位到环境判断代码的位置的

本来打算放 amd64 架构的虚拟机

可能是因为加固的原因(也可能是环境监测代码),企查猫在虚拟机环境下会闪退

脱壳反编译分析

拿出退役的 android 手机, 刷崭新的三方 ROM https://xiaomi.eu/

这里比较推荐的还是 pixel experience

root 后能正常打开 app

再刷上 frida 后就会环境异常报错

这里用了一个比较笨的方法, twrp 支持备份系统
在 root 后备份干净环境, 运行 app 后再执行 frida-server

后话: 看来去特征编译 frida 和 xposed 模块很有价值

通过 dexdump 拿到 dexes 逆向后搜索关键词 DumpDex 找到以下关键处

拿到关键点就好说了上 xposed 过验证再说

过掉 proxy 检测

这个地方也解决了后续拦截流量进行分析的需求(虽然很多时候用不到这个系统参数值)。

数据业务分析

现在拦截网络请求
可以看到这个 APP 反爬虫的措施比较多,为避免踩坑,将生成的 mitm 证书不仅仅放在用户信任级别,放到系统信任证书里。

拦截软件的话不建议使用 vpn 封装的那种,建议使用底层原理走 iptable 的比如 ProxyDroid 防止被敏感的 APP 探测到。

后话: 现在比较推荐的方式是底层驱动直接转发, 比如 avd 的 proxy 设置

转发流量到 charles 抓包

看请求头还好,走的标准的 tls,没有像微信那样走自有协议 mmtls

可以看到请求 body 和返回值都有加密。

通过关键词定位代码的方式在这里失效, 可以直接搜索请求 URL 的 domain 发现代码里没有该字符串

类似于 C10016f.decrypt("OglVFw==") 的函数调用频繁.
推断是关键字符串给编码了, 这应该是混淆手段之一

hook 掉调用前后, 这里通过日志打印出来 adb logcat|grep ExQCat

拿到核心数据

目前的话是通过 rpc 通道去实现

这里就达到了目的, 拿数据