某大型电商APP sign头部签名逆向分析

APP版本

唯品会 7.45
Java层抓包分析

打开抓包工具 charles进行分析,可以发现对于API采集需要突破当前这个参数,否则不返回信息
在这里插入图片描述

jadx静态分析

jadx静态分析,打开app搜索关键词api_sign,可以发现有参数位置

在这里插入图片描述

跟进去上边str赋值方法m52297b,看看参数是怎么来的

在这里插入图片描述

总结:该方法里面传入上下文、MAP类型参数、2个字符串参数,返回值m52298a 对参数进行了系列处理,继续跟进这个方法

在这里插入图片描述

总结:这里面可以看到调用了 apiSign方法对参数进行处理,继续跟进到方法里面

在这里插入图片描述

总结:该方法对传入的参数继续调用getMapParamsSign进行处理、可以跟进这个方法查看

在这里插入图片描述

总结:该方法对MAp类型数据进行迭代处理,然后还是调用getSignHash方法处理数据

在这里插入图片描述

总结:该方法调用m8334gs

在这里插入图片描述

总结:到了这个位置、可以看到参数已经到达边界、有可能这里就是数据返回的位置,可以使用frida hook一下结果,与抓包对比一致。

在这里插入图片描述

从中可以看到clazz就是com.vip.vcsp.KeyInfo类,跟进去这个类继续查找

在这里插入图片描述

总结:这里调用gsNav方法、该方法是加载了一个jni文件,也被称为app里面的so文件,由C语言编写的算法,被Java调用。

从上面可以看到so文件名称是private static final String LibName = "keyinfo";,一般so文件都会打包在apk文件,可以从里面查找文件,用ida汇编工具进行查询。

IDA汇编分析

打开工具,拖进去so文件即可,可以看到这个页面,工具的使用可以看之前的教程,

在这里插入图片描述

我们先查询导出函数,看下是否有Java层代码,说明函数是静态注册的

在这里插入图片描述

根进去方法、然后按F5转伪C代码,从这里面分析业务逻辑

在这里插入图片描述

根进去前面的方法、可以看到这个界面,里面对入参进行一系列处理

在这里插入图片描述

总结:可以看到一系列对map的操作,但是不急着对这部分分析,接着往下看

在这里插入图片描述

总结:可以看到一个j_getByteHash方法,通过函数名推断它极大可能就是执行摘要算法的地方。

在这里插入图片描述

通过名称推断是sha1算法。使用frida hook一下,可以发现参数和加密结果都能对上,那就无疑了,后续就可以算法还原了。

在这里插入图片描述

贴一张拿数据的结果

在这里插入图片描述

到此整个代码分析就算完毕了。

这里给大家准备爬虫脚本,有需要的关注我或者加V-》tl210329 进行领取。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
某flutter-app逆向分析是指对于一个使用flutter框架开发的应用进行逆向工程分析逆向工程是通过分析应用的代码、二进制文件等来了解其内部实现细节。 首先,我们需要获取该应用的安装包文件(APK或IPA文件),然后进行解包操作,将其转换为可读取的文件目录结构。 接下来,我们可以使用一些工具来提取应用的资源文件、代码文件等。对于flutter-app来说,可以提取出dart文件,这是flutter的主要代码文件,其中包含了应用的逻辑实现。 通过阅读dart文件,我们可以了解应用的代码结构、数据模型、界面设计等。可以分析应用的逻辑实现方法,包括各种函数、类、方法的调用关系。 同时,还可以通过分析相关配置文件、资源文件等来了解应用的各种设置、资源加载方式等。 在逆向过程中,还可以使用一些调试工具来进一步了解应用的运行机制。例如,hook工具可以拦截应用的函数调用,并捕获输入输出数据,用于进一步分析逆向分析的目的可以有很多,比如了解应用的工作原理、发现潜在的漏洞或安全问题、提供参考用于自己的开发等。 需要注意的是,逆向分析需要遵守法律规定。未经授权的逆向分析可能侵犯他人的知识产权,涉及到隐私等方面的问题。因此,在进行逆向分析之前,应该了解并遵守当地相关法律法规,避免产生法律纠纷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值