首页 > 其他分享 >某xx冰城app-sha256withrsa分析

某xx冰城app-sha256withrsa分析

时间:2024-03-31 21:59:04浏览次数:93  
标签:sha256withrsa console log base64 hook xx result 加密 冰城

现在的天气是真的越来越暖和,太容易口渴了,索性拿出裤兜的几块钱买杯凉饮喝喝吧!那不说来就来了。

今天分析的app是 6Jyc6Zuq5Yaw5Z+OYXBwLXYxLjIuMA==,安装包百度一下即可。

1.先抓个包

在这里插入图片描述

没错,今天要分析的是这个"sign"字段,"t"是一个时间戳,所以每次请求加密肯定都是变化的。

2.jadx静态分析

拿出我们的jadx,不管三七二十一,直接把这个app给它反编译了,因为我这是低版本的所以没有壳,最新版本的好像有一个奇虎360的壳,但是不重要直接上fart脱壳机就可以。

此处就省略了。

全局搜索下,可以看到符合条件就没几个,那就一个个的点进去看看。

在这里插入图片描述
这里直接来到hashMap.put("sign", d.a(hashMap)); ,感觉很像的样子。
在这里插入图片描述

大概看了下就是声明一个hashMap,然后分别添加ax.az, "appId", "sign",ax.az是个啥点进去看下原来就是时间戳"t"啊,这和抓包看到的请求体一模一样啊

在这里插入图片描述

这里sign = d.a(map),跟进去看看。

在这里插入图片描述

静态分析下,a()方法内部大概就是把传递的map类型参数,拼接成一个string,之后调用b()方法。b()方法内部用到SHA256withRSA算法先做一层加密,最后再来base64加密。

对该算法不了解,可以参考下文章:python rsa加解密

所以关键点在b()方法,只需要hook就可以。分析差不多了,上frida动态调试下。

3.frida动态调试

打开frida服务,运行命令:

frida -U com.mxbc.mxsa -l mixue_hook.js

hook代码如下:

Java.perform(function (){
    var d = Java.use("com.mxbc.mxsa.network.feima.d");
    d.b.implementation = function (str1) {
        console.log("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
        console.log(`d.b方法被调用`);
        console.log("d.b-参数:" + str1);
        var result = d.b(str1);
        console.log(`d.b加密后的数据:${result}`);
        console.log("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
        return result;
    };

})

看看跑出来是个啥?

在这里插入图片描述
入参和返回值也知道了,感觉像是一个标准rsa的算法,但是秘钥不知道是啥?

咋办 继续hook啊。

看样子c就是秘钥,里面用到base64了,hook 下base64试一试?

在这里插入图片描述

  var base64 = Java.use("android.util.Base64");
    base64.decode.overload('java.lang.String', 'int').implementation = function (a,b){
        console.log(`base64.decode方法被调用`);
        console.log("base64-参数 a=" + a, "b=" + b);
        var result = this.decode(a, b);
        console.log(`base64-result:${result}`);
        return result;
    };

运行下看看:
在这里插入图片描述
还真的把私钥hook出来了。

最后一步,当然是还原成纯python了。

在这里插入图片描述
数据能跑出来,说明加密构造对了,完事,手工。

标签:sha256withrsa,console,log,base64,hook,xx,result,加密,冰城
From: https://blog.csdn.net/weixin_38819889/article/details/137209576

相关文章

  • firstbk_xxf
    阅读北航陈彦吉博客后对其问题的回答1.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?对于这个问题我的回答是:当初报考时,是真的喜欢计算机这个专业。其一是当时的认知里面觉得学习计算机的人都很厉害所以从差不多初中开始就想要在大学时候能够学......
  • XML和XXE基础
    XML和XXE基础1.0XML和XXE简介简介:XML(eXtensibleMarkupLanguage)是一种可扩展标记语言,它是由万维网联盟(W3C)制定的标准格式,主要用于数据存储、传输以及文档结构的描述。XML的设计目的是为了提供一种灵活且结构化的数据交换手段,使得数据能够在不同的系统和应用程序之间方便地......
  • idea无法解析目录@/xxx
    显示错误如下解决办法vite.config.js中添加配置,配置'@'的别名import{fileURLToPath,URL}from'node:url'//https://vitejs.dev/config/exportdefaultdefineConfig({resolve:{alias:{'@':fileURLToPath(newURL('./src�......
  • ssm基于Android的XX校园交流APP
    摘要随着互联网时代的发展,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,随着各行业的不断发展,XX校园交流APP建设也逐渐进入了信息化的进程。这个App的设计主要包括前台页面的设计和方便用户互动的后端数据库,而前端软件......
  • java.sql.BatchUpdateException: Date truncation: Out of range value for column xx
    报错:java.sql.BatchUpdateException:Datetruncation:Outofrangevalueforcolumnxxxxx原因:xxx列ddl中为stock_num(12,2)数据库值为0.06需要更新为:0.06-0.21就会出现该错误参考:https://www.jb51.net/article/158166.htmhttps://blog.csdn.net/stone_tomca......
  • docker search xxx出现报错:docker 报错Error response from daemon: x509:
    问题可能出现在daemon.json配置文件1、打开此文件:vi/etc/docker/daemon.json,把境像地址换成:https://docker.mirrors.ustc.edu.cn  2、然后重启服务器:reboot(或者重启docker使用daemon.json配置文件生效也行)  重启后可以成功搜索了,随便搜索个tomcat吧:dockersearch......
  • 消息sms 邮箱/手机号/push发送的方案 & 定时任务xxlJob灵活度 & 泛型和发送的模板类设
    消息sms邮箱/手机号/push发送的方案&定时任务xxlJob灵活度&泛型和发送的模板类设计1.消息sms邮箱/手机号/push发送的方案1.判断收件人地址是否为空,不为空则发送邮件。为空则不发送。可以通过该方法终止一些消息的发送。2.收件人的地址可以配置在Apollo中,直接删除该key......
  • 启动 uWSGI 时日志中显示 ImportError: No module named xxx 的解决方法
    前几天在部署Vue+Django+Uwsgi+Nginx的生产环境时,发现前端部署成功了,但是一直无法获取后端的数据,检查Uwsgi日志(位于uwsgi安装目录/projects/log下)发现日志中提示“ImportError:Nomodulenamedxxx”,试过网上的各种方法还是无法解决,最终摸索出一套解决方法如下: ......
  • tomcat 启动报错javax.naming.NameNotFoundException: 名称[xxx.LoginFilter/xxxServi
    本地测试没问题,部署到服务器上的tomcat,启动报错javax.naming.NameNotFoundException:名称[xxx.LoginFilter/xxxService]未在此上下文中绑定可能是由于在Tomcat的配置文件中,资源名称[xxxx]没有正确配置或者引用。为了解决这个问题,你可以尝试以下步骤:1、检查你的Tomcat配置文......
  • 痞子衡嵌入式:给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启动失败。最近有一个RW612产品线的同事在设计一个双MCU系统Demo时发现,当RW612板卡和RT1060板卡通过UART对接时,如果RW6......