当前位置: 首页 > news >正文

逆向 x蜂窝 zzzghostsigh

逆向 x蜂窝 zzzghostsigh

版本 9.3.7

新版本是64位的so

charles 抓包

目标字段 zzzghostsigh

在这里插入图片描述

frida java

function hook_xPreAuthencode() {Java.perform(function() {var helper = Java.use("com.mfw.tnative.AuthorizeHelper");helper.xPreAuthencode.implementation = function(ctx, str1, str2) {console.log("xPreAuth-str1", str1);console.log("xPreAuth-str2", str2);var ret = this.xPreAuthencode(ctx, str1, str2);console.log("xPreAuth-ret", ret);console.log("===========");return ret;}})
}function hook_xPreAuthencode_event() {Java.perform(function() {var helper = Java.use("com.mfw.tnative.AuthorizeHelper");helper.xPreAuthencode.implementation = function(ctx, str1, str2) {str1 = "ever"console.log("xPreAuth-str1", str1);console.log("xPreAuth-str2", str2);var ret = this.xPreAuthencode(ctx, str1, str2);console.log("xPreAuth-ret", ret);console.log("===========");return ret;}})
}setTimeout(() => {//hook_xPreAuthencode();hook_xPreAuthencode_event();
}, 1000);

模拟参数 ever

xPreAuth-str1 ever
xPreAuth-str2 com.mfw.roadbook
xPreAuth-ret a5f8420454b5a08684c3605f83fe4453ea05efd7

从加密结果可知 无论我们输入的长度多长 都输出固定长度密文,那可以猜测这可能是一个哈希加密

so 层 libmfw.so

搜索java 没有 xPreAuthencode
那就是动态注册:搜索load
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

sub_30548

sub_30548。是一个签名校验函数。因为点进去会看到签名校验的三兄弟。
在这里插入图片描述

sub_312E0

将入参修改一下,然后[v9是和inputtext],输入的值有关。[v13是一个buffer]。[v10是v9的长度]。那么由此可得这个sub_312E0,
应该就是加密的函数,因为sub_2E1F4,没有和输入值有关的。并且v13是一个buffer,这是C语言常用的一种格式。会将加密值放到
一个buffer中。

在这里插入图片描述

发现可疑的数字,疑似sha1加密,因为sha1的magic number就是5个,在数字上按H将其转换为16进制表示

修改

获取sha1 py源码
SHA1 py 源码
SHA1 java 源码

我们期望的正确值 ever:a5f84204 54b5a086 84c3605f 83fe4453 ea05efd7

运行源码返回值:55472e5395290a0b2ecaa2898fe883d58747cb7d

修改1:修改初始向量,后面的两位是修改过的(v30[3] v30[4])
在这里插入图片描述

修改源码后的返回值:d6b63f45cc70fee14aaad95181f8eb4385a7b59d

修改2:修改轮询

修改源码后的返回值 a5f84204 54b5a086 be6f01d5 4a52a2dd ea05efd7
在这里插入图片描述

修改3:最后一次轮询
在这里插入图片描述

修改源码后的返回值 a5f84204 54b5a086 84c3605f 83fe4453 ea05efd7

参考

安卓逆向-马蜂窝zzzghostsigh算法还原–魔改的SHA-1
mfw sigh signature 请求协议分析

http://www.lryc.cn/news/23204.html

相关文章:

  • QML 鼠标事件
  • 极智项目 | 实战pytorch arcface人脸识别
  • 【IP技术】ipv4和ipv6是什么?
  • linux基本功系列之uniq命令实战
  • 六、SpringBoot项目搭建
  • 【LeetCode】2363. 合并相似的物品
  • 华为OD机试题,用 Java 解【出租车计费】问题
  • 【人脸识别】DDL:数据分布知识蒸馏思想,提升困难样本(遮挡、低分辨率等)识别效果
  • 如何管理好仓库/库房?
  • Unity Lighting -- Unity的光源简介
  • Android仿网易云音乐歌单详情页
  • linux基本功系列之free命令实战
  • 华为OD机试模拟题 用 C++ 实现 - 连续子串(2023.Q1)
  • 【软考——系统架构师】UML 建模与架构文档化
  • Spring中常用注解
  • 基于SpringCloud的可靠消息最终一致性06:轮询事务消息
  • Python Flask + Echarts 轻松制作动态酷炫大屏( 附代码)
  • Wepack(1):SourceMap讲解以及使用
  • 华为OD机试题,用 Java 解【最多等和不相交连续子序列】问题
  • Kubernetes06:Controller
  • 采购文件中 RFI、RFQ、RFP、IFB的区别
  • linux升级gcc版本详细教程
  • NBA Top Shot 跌落神坛
  • 状态管理Pinia使用详解(带你入门)
  • Linux系统基础命令(一)
  • djvu批量转换为pdf的工具和djvu阅读器(附下载链接)
  • Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】
  • FFmpeg 编译和集成
  • OOM的俩种情况---主动kill/被动kill
  • ssh远程连接ECS实例连接失败