本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢!
随着元宇宙概念的兴起,国内数字藏品市场也随之发展起来,由于NFT的特性,因此,国内更多用“数字藏品”来表示。数字藏品交易平台,是NFT数字艺术品交易的基础设施,正在呈现出强劲的发展趋势。
windows10
Nexus 5X(已root)
jadx
BlackDex32
python3.7.2
frida 12.8.0
以登录包为例,如下(可能包含个人信息,部分内容已做删减):
https://api-app.ibox.art/nft-mall-web/v1.1/nft/user/login Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-Hans-CN;q=1, en-CN;q=0.9 Connection: keep-alive Content-Length: 45 Content-Type: application/json Host: api-app.ibox.art IB-APP-VERSION: 1.1.3 IB-DEVICE-ID: 1796j7e5-97e7-499f-b515-7fbb8fds12762 IB-PLATFORM-TYPE: ios IB-TRANS-ID: ec465gh35-7ff7-42e6-bf82-c19sd46ge3bf_iOS User-Agent: Box/1.1.3 (iPhone; iOS 15.3.1; Scale/2.00),BoxApp wToken: e647_uxbnmgn1x3q4uKIl34OyAvHxRugJ0DSkK5nieNSTPtjRbXk5TCvBuN0IoZ/7q3T4GNMk8jK/++wDj4m7Jt8X1Xioyp/UQSoK++VT7EPzKVlUt2NXP4OZu4AZAWCKw+tgrBUdV8mWmzDhgnSK4pgN55dOsI/4Q+c0Tyc1WLD+MsoUgFF+wnzp3e++3AZvFlMS8wFfEF4mkEf/GRsZP3gEp4drE5n8vCQfv1LZ6AJ0w/rNnetE19ia3fSR+poqK97&b7ee_80691B702C79BA20B03FF244FS43FE7ACA9254090BD35B29B8A7 {"code": "000000","phoneNumber": "11111111111"}
分析可见,请求体为明文,协议头里也仅有一个看起来较为复杂的wToken,本篇便以wToken为例,展开分析
这个案例app是有壳的,由于脱壳过程并不复杂,这里就不过多叙述。
将脱壳的文件直接拖入jadx,等待反编译完成,直接搜索关键词wToken即可找到如下代码块:
继续跟进,代码如下:
继续往下跟进发现最终是调用了so文件,好了,到此为此我们用frida来hook上面的d方法
由于该app加壳了,不能直接用Java.use加载类,以下是我获取类加载器以及使用的方法:
Java.perform(function () { var application = Java.use("android.app.Application"); application.attach.overload('android.content.Context').implementation = function (context) { var result = this.attach(context); // 先执行原来的attach方法 var classloader = context.getClassLoader(); // 获取classloader Java.classFactory.loader = classloader; var RootCheckUtil = Java.classFactory.use("com.ibox.libs.common.utils.RootCheckUtil"); //由于app检测root环境后无法正常运行,hook该方法修改返回值即可解决 RootCheckUtil.a.implementation = function () { return false; } RootCheckUtil.b.implementation = function () { return false; } AliTigerTallyManager.d.implementation = function (str) { var result = this.d(str); console.log("wToken: " + result); return result; } } } );
注入frida,运行成功,输出如下信息,发现与我们想要的信息一致
但是发注入frida输出的wToken被风控,无法正常使用。
已使用unidbg完美输出,未触发风控,感兴趣可联系一起交流学习