某二手电商App x-sign签名分析 类成员变量的分析

简介: 某二手电商App x-sign签名分析 类成员变量的分析

一、目标


今天的目标是某二手电商App的 x-sign 签名分析,抓个包先:

52.png

说实话,看到这个Headers,真让人哭笑不得,你说至于嘛,发个请求搞这么多乱七八糟的参数……


二、步骤

上jadx


算了,既然选择了,就硬着头皮上吧,搜索下 x-sign53.png


不错哦,只有4处,很容易就定位到了 getUnifiedSign 这个函数。点进去看看,发现是一个接口。


我们继续搜索 getUnifiedSign 的实现。

54.png


好幸运,有理由怀疑 mtopsdk.security.InnerSignImpl 就是我们要找的实现类。


可以写个脚本去验证下,不过这年头代码这么贵,能少写点就少写点。我们用上次学的 objection ,来验证:

objection -g com.txxxx.ixxxx explore
android hooking watch class 'mtopsdk.security.InnerSignImpl'


结果不错, getUnifiedSign 确实被调用了。

(agent) [710845] Called mtopsdk.security.InnerSignImpl.a(java.util.Map, java.lang.String, boolean)
(agent) [710845] Called mtopsdk.security.InnerSignImpl.a(java.util.Map, java.lang.String, boolean)
(agent) [710845] Called mtopsdk.security.InnerSignImpl.pc()
(agent) [710845] Called mtopsdk.security.InnerSignImpl.pc()
(agent) [710845] Called mtopsdk.security.InnerSignImpl.getUnifiedSign(java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, boolean, java.lang.String)


监控一下它的入参和返回值

android hooking watch class_method   'mtopsdk.security.InnerSignImpl.getUnifiedSign'  --dump-args --dump-return


正是我们想要的结果。

56.png


一个新问题


我们仔细观察下 getUnifiedSign 函数,发现里面并没有 x-sign 运算过程,虽然直接调用 getUnifiedSign 可以得到 x-sign。 不过我们还是很好奇,到底 x-sign 是怎么算出来的,这下好奇心就害死猫了。

HashMap<String, String> output = this.f52559a.getSecurityFactors(input);


getUnifiedSign 中,我们有理由怀疑 getSecurityFactors 才是真正的幕后黑手,但是 只能找到 IUnifiedSecurityComponent 接口中有 getSecurityFactors 函数。其他再怎么搜索也没有找到 getSecurityFactors 的实现。


怎么办?


如果我们有办法知道 this.f52559a 这个对象是什么类型,是不是就可以知道 getSecurityFactors 的实现了?


说干就干,Hook getUnifiedSign 之后,我们拿到 this对象,然后把this的所有成员变量打印出啦。

console.log(" ========== ");
var fields = Java.cast(this.getClass(),Java.use('java.lang.Class')).getDeclaredFields();
//console.log(fields);
for (var i = 0; i < fields.length; i++) {
    var field = fields[i];
    field.setAccessible(true);
    var name = field.getName();
    var value =field.get(this)
    console.log("name:"+name+"\tvalue:"+value);
}
console.log(" ========== ");


嗯嗯,不错哦, 我们发现了 com.axxx.wireless.security.middletierplugin.b.a.a$a

========== 
name:a  value:com.axxx.wireless.security.middletierplugin.b.a.a$a@8658790
name:a  value:null
name:a  value:null
name:b  value:com.axxx.wireless.security.open.SecurityGuardManager@7aac0af
name:TAG  value:mtopsdk.InnerSignImpl
 ==========


就是它了,hook 一下,翻一翻它的底子。


一个忧伤的故事


Error: java.lang.ClassNotFoundException: Didn't find class com.axxx.wireless.security.middletierplugin.b.a.a$a


纳尼,没有这个类? 不科学呀,明明都发现它的对象了,居然hook不到它的类?


我们先来找找它在哪

var  targetClass = "com.axxx.wireless.security.middletierplugin.b.a.a$a";
Java.enumerateClassLoaders({
    onMatch: function (loader) {
        try {
            var iUseCls = loader.findClass(targetClass);
            if(iUseCls){
                console.log("loader find: " + loader);
            }
        } catch (error) {
            //console.log("classloader failed" + error);
        }
    }, onComplete: function () {
    }
});


就是它了, /lib/arm/libsgmiddletier.so,拉出来 jadx一下, x-sign 的算法就明明白白在里面了。


三、总结


字符串定位,还是一如既往的好用。类成员变量的分析有助于解决找不到接口实现类的情况。

55.png


我醉了八千万年,/醒来的时候,同伴已经是化石。/我醉了八千万年,/醒来的时候,我已不是主宰。


TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号 奋飞安全 ,最新技术干货实时推送



相关文章
|
1月前
|
前端开发 Java 开发工具
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
79 18
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
|
1月前
|
安全 数据安全/隐私保护 Android开发
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
231 75
|
28天前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
79 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
1月前
|
测试技术 Android开发 开发者
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
53 16
|
3月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
5月前
|
开发工具
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
阿里云点播服务web播放器sdk,短剧视频类App实现参考。仿抖音 仿陌陌 短视频 无限滑动播放 视频流。无uniapp video 原生组件的层级、遮挡、覆盖问题,适合与不同功能视图组合使用,实现丰富的应用功能。
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
|
5月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
6月前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
|
10天前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
137 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    微信小程序 app.json 配置文件解析与应用
  • 4
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 5
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 6
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
  • 7
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 8
    【Azure Logic App】使用MySQL 新增行触发器遇见错误 :“Unknown column 'created_at' in 'order clause'”
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 10
    阿里云APP备案流程图以及备案所需材料整理,跟着教程一步步操作