Android逆向笔记-破解某APP签名摘要算法

article/2025/9/16 16:26:56

这里科普几个摘要算法,散列算法(签名算法)有:MD5、SHA1、HMAC

用途:主要用于验证,防止信息被修。具体用途如:文件校验、数字签名、鉴权协议

MD5:MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

SHA1:是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的Hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

HMAC:是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的,而SHA1不需要。

这里使用JEB打开apk后,使用Ctrl + f进行搜索关键字符串:如X-Sign,看下对应的代码:

 

需要破解的就是这个X-Sign,从中可以看到,

这里X-Sign最后会放v0的字符串,而v0是:

最开始的v0来自:

 也就是不会变的,X-Device-ID。

而v2_2是

 从十进制10000到十进制99999的数,这个数在HTTP包头中的X-RandomNum

 这个v3是空字符串!

 这个v4_2是当前时间戳,在HTTP包头的X-TimeStamp有提现:

 最后加上一串死的字符串:

 随后进行SHA1签名算法:

 就是最后的X-Sign了。

这里可以猜到服务端是这么验证的:

从HTTP包头中拿到X-Device-ID,然后拿到X-RandomNum再拿到X-TimeStamp,随后与F403F982CA92F73AC142D50FFA69853D这个字符串进行SHA1进数据签名。这个值与X-Sign对比,如果一样,就认可这个操作了。

其中X-Device-ID和那一串字符(F403F982CA92F73AC142D50FFA69853D)是死的。这样就好模拟了,其中这个F403F982CA92F73AC142D50FFA69853D为32位,估计他是一个MD5摘要。


http://chatgpt.dhexx.cn/article/Y9qwwv8Y.shtml

相关文章

APP抓包加密破解(hook)

简介 做APP安全评估,调试代码等,都会要抓取数据包…但现在安全对抗在不断升级,大型公司的APP数据包传输一般都进行加密,和签名校验.还做了证书双向校验.今天介绍下APP抓包加密破解(hook). 测试过程 安装frida-tools 需要先安装Python pip install frida-tools 这里注意Py…

成功破解某app加密接口

逆向工程是一件痛并快乐着的过程 ~请不要转载~ 今天看到某款App的数据挺诱人的,本着探索精神,就尝试了一下接口,发现每次请求都会被限制 1、时间戳限制(算个屁) 2、参数md5加密(反编译) 还…

【逆向】Android逆向破解某APP

每日一言:高手不是叫所有人都输给你,而是叫所有人都想赢你。 欢迎一起讨论和学习,QQ:732258496 QQ群:478720016 前言 三人行必有我师焉,取长补短,借鉴优秀的APP,提升自己的认知和能力&#x…

安卓app逆向破解脱壳教程

From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frida ( 信抢红包 ):https://www.freebuf.com/company-information/180480.html APP逆向神器之Frida【Android初级篇】…

推荐收藏黑客APP破解常用工具集合

抓包 HTTP请求类 Fiddler/Charles(必备常用工具之一) 最常见的代理抓包工具,这两个就不用多说了吧?应该都知道了。 ProxyDroid(必备常用工具之一) 强制全局代理工具,详细介绍见当你写爬虫抓…

破解app 在so层的密钥key

一、抓包分析 首先下载app半次元,打开并抓取视频链接 二、无需脱壳,用jadx-gui打开 分析加密参数 搜索关键字 一步一步往上推,就知道密钥在System.loadLibrary("random"); 三、hook方法 上frida,hook md5 frida脚本如下 hook.js Ja…

Charles破解和安装【破解APP抓包限制】Xposed+JustTrustMe关闭SSL证书验证

第一步:安装抓包工具 下载 Download a Free Trial of Charles • Charles Web Debugging Proxy​www.charlesproxy.com/download/https://link.zhihu.com/?targethttps%3A//www.charlesproxy.com/download/ 破解网站 Charles破解工具​www.zzzmode.com/mytools/c…

利用沙盒技术破解APP的API协议加密

项目地址:https://github.com/tbruceyu/AppCaller 无聊的需求 前段时间闲的没事,经常刷某视频App。里面有很多有才的人,突然想把他们的视频都给下载下来在电脑上面存起来慢慢看。正好这段时间比较空闲,就尝试去破解一下它的Http…

记一次结合fiddler逆向破解app注册码

某天测试app时,需要注册码才能进入应用,二话不说开始进行破解… 详细过程 运行app时会弹出先输入注册码的弹框,只有输入正确的注册码才可进入。 共采用了3种尝试方式 1.暴力hook 搜索字符串“请输入注册码”,定位到几个可疑函…

【移动安全基础篇】——26、两个简单app破解

1. 试用版软件破解 使用 ApkIde 打开要破解的 app 进行反编译 分别显示各个按钮的相关 smali 代码 将 v0 置为专业版的密钥 保存后重新编译,破解成功2. 网络验证 使用 apkIde 对目标 app 进行反编译操作 定位到点击函数中,分析其中的操作 找到网络连接…

逆向破解思路和获取app的代码,脱壳操作(一)

.我们的app首先是经过我们写代码、最后经过签名、打包最后生成.app文件,那么这个.app的文件在哪里呢,我用我自己的项目做个例子大致他的位置在这里: 他这个其实就是包含我们项目中的资源和我们写的代码,我们要学习逆向那么其实就是…

逆向破解思路和获取app的代码,脱壳操作(四)

加壳 什么是加壳? 我们的ipa文件上传appstore,苹果会给我们做一个加密,其实我们运行在内存中的过程是一个加密的壳程序,当然在手机中我们会对他进行解密壳程序,来直接运行可执行的文件,当然苹果这样做的目…

骚操作“破解“App

mitmproxy就是用于MITM的proxy,MITM即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次会实时查、记录其截获的数据或篡改数据,…

逻辑回归算法实现

逻辑回归算法原理还是比较容易理解的,根据计算的结果实现一下: 手写的推导过程如下: 然后我们开始写实现的过程 1、写出判断模型准确性的函数,这个比较容易理解 import numpy as np from math import sqrtdef accuracy_score(y…

逻辑回归算法 - 乳腺癌预测

1 目标 根据历史女性乳腺癌患者数据集(医学指标)构建逻辑回归分类模型进行良/恶性乳腺癌肿瘤预测 2 数据集 2.1 数据集来源 数据集源于威斯康星州临床科学中心。每个记录代表一个乳腺癌的随访数据样本。这些是DR Wolberg自1984~1995随访搜…

以《简单易懂》的语言带你搞懂逻辑回归算法【附Python代码详解】机器学习系列之逻辑回归篇

大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师。欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦。 目录 必看前言逻辑…

逻辑回归算法梳理(从理论到示例)

逻辑回归算法的名字里虽然带有“回归”二字,但实际上逻辑回归算法是用来解决分类问题的算法。线性回归和逻辑回归相当于一对“孪生兄弟”,本文将从二分类入手,介绍逻辑回归算法的预测函数、损失函数(成本函数)和梯度下…

机器学习 逻辑回归算法应用案例

机器学习 逻辑回归算法应用案例 时间:2020.09.12 出处:https://www.kesci.com/home/project/5bfe39b3954d6e0010681cd1 注明:初学逻辑回归,跟着博客大佬文章过了一遍,自己留个记录以便之后翻阅,也供大家学…

机器学习——逻辑回归算法代码实现

机器学习——逻辑回归算法代码实现 前言一、逻辑回归是什么?二、代码实现1.数据说明2.逻辑回归代码 前言 最近准备开始学习机器学习,后续将对学习内容进行记录,该文主要针对逻辑回归代码实现进行记录! 一、逻辑回归是什么&#x…

逻辑回归算法的优化

一:有无截距: 如上图。可以知道,有截距的线条数比无截距的线条数(过原点的线条)要多。所以在选择逻辑回归的时候,通常要设置截距。增加正确的概率。 代码: val lr = new LogisticRegressionWithSGD() ----创建逻辑回归对象 l…