安卓逆向经典案例—H5appXX运维

在这里插入图片描述

H5app的class不一定是android.webkit.WebView
也可能是腾讯X5内核或者是uc webview
殊途同归也要去hook webview的系统函数和可调式方法setWebContentsDebuggingEnabled。

在这里插入图片描述

突破sign算法,输出协议和加密算法的作用是什么?

分析c-sign值

在这里插入图片描述

在加密的位置下断点

在这里插入图片描述

这里密码没有加密

在这里插入图片描述
找到setTimeout函数,用来设置加密的函数

在这里插入图片描述

登录后显示的setTimeout延时函数为什么是异步的?

进入函数

在这里插入图片描述

什么是极光推送

跟进去,定位到传递手机账号的位置,再跟

在这里插入图片描述
得到c-sign

在这里插入图片描述

'J{"c_timestamp":1719152459747,
"c_account":"12",
"c_sign":"23052081735759B6B882378F705AB0F7",
"upvs":"2024-06-23-ccssoft"}'

g.e无法跳转的原因?

  1. 浏览器,或这webview提供的系统函数,无法看源码
  2. VM文件应该想到函数是java代码,是js调用的java文件(函数)

在这里插入图片描述

找到关键代码就是上述浏览器中找到的值

在这里插入图片描述

这样就可以在java代码中还原c_sign了

public ModuleResult jsmethod_encryptCcssoft_sync(UZModuleContext uZModuleContext) {String[] strArr;JSONObject jSONObject = new JSONObject();Long valueOf = Long.valueOf(uZModuleContext.optLong("timestamp", new Date().getTime()));String optString = uZModuleContext.optString("msg", "32025601");String optString2 = uZModuleContext.optString("upvs", new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "-ccssoft");int longValue = (int) (valueOf.longValue() % 2);String[] strArr2 = {"bx1acuimpzf3k2eluw4ffh7sklmdshhtq0cifotpap2wm8qvd1k6psuokdcfjl04mi7th4q2t7kffmod9qj3huznncbbk4p9w46z6tp7lb282om4q5me7uigi7fl0nbt", "qw6bnqbshxkec2ytag0iqdinmt94hkajkdk9f5oa5dn2nzeosqvp0jfxq2elz6sqal7pcjjvi5rm1mgtnp3ob6bl5iueqjzqienlflaiwb5otzcnvful6kmwij3fcrj4", "enp1ogzjzz15fcd1a4ekwiacxlhwgygqd6mdd5ocnjipjnjcbjpeqtm2t7c92cyhapkomeqrfkdtglwlfipgscbt6lfbxxwmq2fudipm72ld8ygln78bnidw4i9od7ch"};Arrays.sort(new String[]{optString, String.valueOf(valueOf), strArr2[longValue], optString2});//四个参数:optString(设备ID),时间戳,数组中三个固定值,时间格式化后的参数String str = "";for (int i = 0; i < 4; i++) {str = str + strArr[i];}StringBuilder sb = new StringBuilder();sb.append(str);sb.append(strArr2[longValue == 0 ? (char) 2 : (char) 1]);String MD5 = MD5Util.MD5(sb.toString());//第一次MD5StringBuilder sb2 = new StringBuilder();sb2.append(MD5);//第二次MD5sb2.append(strArr2[longValue == 0 ? (char) 2 : (char) 1]);String upperCase = HashUtil.hash(MD5Util.MD5(sb2.toString())).toUpperCase();//第三次MD5try {jSONObject.put("c_timestamp", valueOf);jSONObject.put("c_account", optString);jSONObject.put("c_sign", upperCase);jSONObject.put("upvs", optString2);} catch (JSONException unused) {}return new ModuleResult(jSONObject);}

法一、抠代码

法二、可以直接使用自吐算法(如果算法是标准算法,代码又在java中,可以直接跑自吐)

'J{"c_timestamp":1719155384875,"c_account":"12","c_sign":"3542F4335AAD34E4EE5B9401558E2B0C","upvs":"2024-06-23-ccssoft"}'

在这里插入图片描述

这样就得到三次MD5的输入值。

算法还原

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/33043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三十七章 添加和使用自定义标题元素 - 自定义标头的继承

文章目录 第三十七章 添加和使用自定义标题元素 - 自定义标头的继承自定义标头的继承示例 在 SOAPHEADERS 参数中指定支持的标头元素自定义标头的继承 第三十七章 添加和使用自定义标题元素 - 自定义标头的继承 自定义标头的继承 如果创建此Web 服务的子类&#xff0c;该子类…

【vite】入门 publicDir 到高阶玩法

【vite】入门 publicDir 到高阶玩法 &#x1f4cc; 使用方式 &#x1f9e9; 默认选项 publicDir默认选项为字符"public"&#xff0c;表示静态资源默认指向public。 import { defineConfig } from vite export default defineConfig({publicDir: public })说明&am…

昇思25天学习打卡营第6天|使用静态图加速

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 背景介绍 AI编译框架分为两种运行模式&#xff0c;分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行&#xff0c;但也支持手工切换为静态图模式。两种运行模式的详细介…

代码随想录——摆动序列(Leetcode376)

题目链接 贪心 class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length < 1){return nums.length;}// 当前一对差值int cur 0;// 前一对差值int pre 0;// 峰值个数int res 1;for(int i 0; i < nums.length - 1; i){cur nums[i 1] - nums[i];i…

黑苹果EFI详细配置说明

先上网址: https://dortania.github.io/OpenCore-Install-Guide/installer-guide/opencore-efi.html 1: 了解作用 ACPI作用: 总结: ACPI是UEFI引导方式和操作系统之间的硬件抽象接口,概述了硬件设备,如 USB 控制器、CPU 线程、嵌入式控制器、系统时钟等 硬件设备识别和驱动:…

深入理解Java中的线程池和并发编程

深入理解Java中的线程池和并发编程 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我将带大家深入了解Java中的线程池和并发编程。线程池是并发…

似然 与 概率

概率似然概率函数与似然函数的关系似然与机器学习的关系最大似然估计 似然与概率分别是针对不同内容的估计和近似 概率 概率&#xff1a;概率表达给定参数 θ \theta θ下样本随机向量 X x \textbf{X} {x} Xx的可能性。 概率密度函数的定义形式是 f ( x ∣ θ ) f(x|\t…

基于RAG的知识库AI代理机器人,问题思考

基于RAG的知识库AI代理机器人,问题思考 知识库内容分类 对于普通非qa问答格式的知识内容 在分段存储时,需要手动调整,保证每个分段的内容意思完整,不被分割,当然段落也不宜过长,保证内容表达的意思到不可分割为止就行 对于qa问答格式的知识内容 通常需要对问题增加格…

Mac 安装依赖后依旧报错 ModuleNotFoundError: No module named ‘Crypto‘

ModuleNotFoundError: No module named ‘Crypto’ 解决办法 pip uninstall pycryptodome pip uninstall pycrypto pip uninstall crypto pip install pycrypto

头条系统-05-延迟队列精准发布文章-概述添加任务(db和redis实现延迟任务)、取消拉取任务定时刷新(redis管道、分布式锁setNx)

文章目录 延迟任务精准发布文章1)文章定时发布2)延迟任务概述2.1)什么是延迟任务2.2)技术对比2.2.1)DelayQueue2.2.2)RabbitMQ实现延迟任务2.2.3)redis实现 3)redis实现延迟任务4)延迟任务服务实现4.1)搭建heima-leadnews-schedule模块4.2)数据库准备4.3)安装redis4.4)项目集成…

智能BI项目技术点总结

上传文件的安全性设计 文件大小&#xff1a;小于20MB 文件后缀&#xff1a;是否满足.xlsx 文件内容&#xff1a;&#xff08;成本要高一些&#xff09; 文件的合规性&#xff1a;比如敏感内容&#xff0c;建议用第三方的审核功能。 扩展点&#xff1a;接入腾讯云的图片万象数据…

SVM算法-人脸识别背后技术详解

引言 支持向量机&#xff08;SVM&#xff09;是一种强大的监督学习算法&#xff0c;广泛应用于分类和回归任务中。本文将详细介绍SVM算法在人脸识别任务中的应用&#xff0c;并通过代码示例来展示其背后的技术精髓。我们将分三大部分来展开&#xff0c;本部分将重点介绍SVM算法…

3个阶段和9个问题,择业和创业的核心!

从2023年下半年&#xff0c;接触了不少的创业者&#xff0c;他们对创业都是充满了热情。在很多创业者身上&#xff0c;看到的都是执行力&#xff0c;效率&#xff0c;对事业的专注。只要是说今天立即能搞定的事情&#xff0c;一定不会拖到明天。 去年佛山的张兄弟来找我的交流…

Graalvm尝鲜使用

面试时遇到大佬提点了下在性能不足的机器上传统优化JVM调优已经作用不大的背景下&#xff0c;采用graalvm进行打包成二进制文件&#xff0c;脱离java虚拟机&#xff0c;性能提升20%到100%&#xff0c;因此实操记录下来&#xff0c;方便后续使用 1、前置预装 graalvm-ce-java17…

mongoDB基本命令操作

文章目录 1. 安装(1). 启动mongodb(2). 数据库连接 2. 基本命令(1) 数据库操作(2) 集合操作(3) 文档操作1) 简单查询2) 条件查询3) 投影查询4) 文档更新5) 列值增长修改6) 删除文档7) 分页查询8) 排序查询9) 正则查询(模糊查询)10) 比较查询11) 包含查询 3. 索引(1) 执行计划 1…

Java基础的重点知识-06-String、Arrays、Math、static关键字

文章目录 String类(java.lang)static关键字Arrays类(java.uitl)Math类&#xff08;java.lang&#xff09; String类(java.lang) java.lang.String 类代表字符串。 特征&#xff1a; 字符串不变&#xff1a;字符串的值在创建后不能被更改。因为String对象是不可变的&#xff…

PIL实现图片是否可读

对图像数据进行清洗过程中&#xff0c;为了判断图像文件是否可读&#xff0c;可以调用PIL&#xff08;Pillow&#xff09;包的 Image 类。可以使用 Image 类的 open 方法&#xff0c;该方法会尝试打开图像文件并返回一个 Image 对象。如果文件不可读&#xff0c;该方法将抛出一…

RHEL 8下Oracle Database 23ai 安装与配置

前言 随着AI的加入&#xff0c;Oracle正式将Oracle23c改名为Oracle23ai&#xff0c;并且将次版本数据库作为一个长期支持的版本&#xff0c;也意味着Oracle数据库正式从Cloud进入AI时代&#xff0c;本文主要介绍Oracle Database 23ai Free的安装与配置。 安装方式 Oracle Da…

linux下进行epoll的简单使用

先做一个简单实例&#xff1a; #include <arpa/inet.h> #include <assert.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <sys/epoll.h> #include <sys/socket.h> #include <unistd.h>#includ…

C语言 | Leetcode C语言题解之第187题重复的DNA序列

题目&#xff1a; 题解&#xff1a; #define MAXSIZE 769/* 选取一个质数即可 */ typedef struct Node {char string[101];int index;struct Node *next; //保存链表表头 } List;typedef struct {List *hashHead[MAXSIZE];//定义哈希数组的大小 } MyHashMap;List * …