您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > APP

这次有点sao了,破解安卓某 APP 低层加密

时间:2020-12-14 12:15:06  来源:  作者:

今天给大家分享一下如何逆向分析 Native 层的加密,整个过程的思路值得借鉴,接下来由小帅b的朋友 Houser 给大家进行演示,搞起:

 

所需设备和环境

 

设备:

Android/ target=_blank class=infotextkey>安卓手机(获取root权限)

 

抓包:

fiddler + xposed + JustTrustMe

 

反编译:

jadx-gui,ida

 

抓包

 

按照惯例,这里隐去 App 的名称,开启 fiddler 抓包后 app 提示连接不到网络,判断是证书验证,开启 xposed 框架,再次请求,成功抓到包,连续请求两次来对比参数变化:

这次有点sao了,破解安卓某 APP 低层加密

 


这次有点sao了,破解安卓某 APP 低层加密

 

可以看到 x-app-token 这个参数不一样,其他参数都是固定的,先简单看一下 x-app-token 的构成:

这次有点sao了,破解安卓某 APP 低层加密

 

这样做了一下换行,有没有发现什么规律?

 

我一眼就看出来第二行是手机的 deviceID,因为爬虫写多了,这个字符串经常出现,第一行是 32 位,应该就是个 md5, 第三行是个 16 进制数,知道了这些,接下来就来反编译,搜索这个关键字。

 

反编译

 

反编译之前先使用 ApkScan-PKID 查一下是否有壳,养成好习惯,这个 app 没有加壳,直接用 jadx 打开,全局搜索 “x-app-token”,只有一处,应该就在这里了:

这次有点sao了,破解安卓某 APP 低层加密

 


这次有点sao了,破解安卓某 APP 低层加密

 

从框中代码发现 x-app-token 的值就是 as,而 as 是函数 getAS 生成的,按住鼠标左键,点击 getAS 进去看看详情:

这次有点sao了,破解安卓某 APP 低层加密

 

它把函数过程写到 native 层中去了,那只好去分析这个名为native-lib 的 so 文件了,解压目标 apk 获取到了如下图这些文件:

这次有点sao了,破解安卓某 APP 低层加密

 

so文件就在这个lib文件夹里:

这次有点sao了,破解安卓某 APP 低层加密

 

ida中打开这个文件,切换到 Export 导出函数选项卡,先来直接搜索getAS:

这次有点sao了,破解安卓某 APP 低层加密

 

没有搜到getAS,倒是搜到了 getAuthString,名字很像,打开看看吧,按 F5 可以把汇编代码转换为伪 c 代码,下拉分析一波,看到了 md5 关键字:

这次有点sao了,破解安卓某 APP 低层加密

 

代码有点难懂,连懵带猜 v61 应该是 MD5 加密后的结果,然后 append 似乎是在拼接字符串,看到了“0x”,根据抓包的结果已经知道 x_app_token 的第三行是个 16 进制数,那应该是这里的v86了,向上看看它具体是什么:

这次有点sao了,破解安卓某 APP 低层加密

 

v86存的是 v40 的值,而 v40 就是当前的时间戳,那 x-app-token 第三行应该就是时间戳的 16 进制数。接下来看看 md5 的入参为v58,v52,v53,重点来看v52,往上追朔看到其和 v51 是相等的,而 v51 是一个未知字符串经过 base64 编码得到的,先来hook这两个函数,写段脚本:

这次有点sao了,破解安卓某 APP 低层加密

 

第1处和2处分别是目标函数的地址,鼠标点到目标函数处,ida左下角会显示,加1是为何,只记得大学时候学过汇编语言讲到段地址,偏移地址,物理地址这些,猜测和这些知识有关,还需研究,这里先这样用,第3处的写法是当这个参数为字符串时的写法,运行一波,看看打印输出:

这次有点sao了,破解安卓某 APP 低层加密

 

同时也来抓包:

这次有点sao了,破解安卓某 APP 低层加密

 

把v52的值放到在线MD5网站中加密看看:

这次有点sao了,破解安卓某 APP 低层加密

 

和抓包得到的结果是一样的,那就证明hook点找对了,那么v49就是base64编码之前的值,v49是什么呢,仔细一看,里面也有deviceID,再来分割一下:

这次有点sao了,破解安卓某 APP 低层加密

 

第一行通过两次hook,发现他是固定不变的,第二行是改变的,32位,看起来又是个md5,第六行是包名,返回伪c代码,再来分析看看,在前面又看到了MD5加密的地方:

这次有点sao了,破解安卓某 APP 低层加密

 

那来hook这个函数,看看入参:

这次有点sao了,破解安卓某 APP 低层加密

 

打印的入参数据为:

这次有点sao了,破解安卓某 APP 低层加密

 

S是一个时间戳,拿到MD5加密网站上验证一下,正好和v49中包含的字符串相同:

这次有点sao了,破解安卓某 APP 低层加密

 

至此,逆向就完成了,来总结一下x-app-token的获取过程,先是带有把时间戳进行md5,按下图顺序拼接:

这次有点sao了,破解安卓某 APP 低层加密

 

然后把拼好的字符串进行base64编码,最后把编码结果进行MD5,得到x-app-token的开头部分,组成如下:

这次有点sao了,破解安卓某 APP 低层加密

 

接下来写个脚本来请求数据

请求

代码如下:

这次有点sao了,破解安卓某 APP 低层加密

 

运行,成功拿到数据:

这次有点sao了,破解安卓某 APP 低层加密

 

总结

 

今天主要介绍了 native 层 hook 的方法,虽然 so 文件中的伪c代码要有一定的基础才能看懂,但是先不要怕,分析的过程中可以先大胆假设,有 frida 非常强大的 hook 功能,就能一步步验证之前的假设。这两次都是静态分析方法,下次我们再来介绍一下动态调试的方法。

 

最后,以上内容仅供学习交流,希望对你有帮助,那么我们下回见,peace!



Tags:低层加密   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天给大家分享一下如何逆向分析 Native 层的加密,整个过程的思路值得借鉴,接下来由小帅b的朋友 Houser 给大家进行演示,搞起: 所需设备和环境 设备:安卓手机(获取root权限) 抓包...【详细内容】
2020-12-14  Tags: 低层加密  点击:(116)  评论:(0)  加入收藏
▌简易百科推荐
  1、明确产品的需求分析+功能  这是最基本的也是第一步,我们要明确自己或者客户真的想要开发一款app应用,其次就要了解到底要开发什么功能什么类别和种类的app应用。所...【详细内容】
2021-12-27  木子科技    Tags:App   点击:(1)  评论:(0)  加入收藏
前言目前,即时通讯在app中逐渐成了不可或缺的功能,尤其是在疫情期间,音视频会议功能更是火了一把,但是想自己开发即时通讯功能,却一点都不简单,如果用原生开发的话,那么Android、iO...【详细内容】
2021-07-29  中控易动    Tags:APP   点击:(104)  评论:(0)  加入收藏
本篇博文将会提供一个关于如何使用WebRTC建立一个视频会议App的教程。我们不会将其设计的太复杂,它将会是一个简单的一对一视频会议App,并且仅仅使用了WebRTC APIs和一些其他...【详细内容】
2021-07-29  易简视源云会议    Tags:视频会议App   点击:(113)  评论:(0)  加入收藏
开发一款app需要多少钱?这是一个比较笼统的问题,没有确切的需求,拥有不同技术经验的团队往往报价都各不相同,因为不知道开发需求,所以无法给出一个准确的价格。因此,想知道app开发...【详细内容】
2021-07-13  hey衡道    Tags:app   点击:(79)  评论:(0)  加入收藏
Hybrid APP指的是半原生半Web的混合类App。需要下载安装,看上去类似Native App,但只有很少的UI Web View,访问的内容是 Web 。 原生是Native APP,H5就是Web App在Hybrid 当中,如...【详细内容】
2021-04-28  扣丁学堂  今日头条  Tags:APP页面   点击:(289)  评论:(0)  加入收藏
介绍MIP(Mobile Instant Pages - 移动网页加速器),是一套应用于移动网页的开放性技术标准。通过提供 MIP-HTML 规范、MIP-JS 运行环境以及 MIP-Cache 页面缓存系统,实现移动网页...【详细内容】
2021-04-12  爱分享Coder  今日头条  Tags:WebApp   点击:(309)  评论:(0)  加入收藏
在开发直播APP时,核心要素和基本要素是稳定性,一般各大服务商都有提供demo,并且可以免费测试的,测试可以初步评估下稳定性,看看视频流畅度如何,卡顿是不是很频繁,延时效果怎么样,视...【详细内容】
2021-03-19      Tags:直播APP   点击:(292)  评论:(0)  加入收藏
TOKEN作为用户身份凭证并不能保证数据安全,别人通过抓包等方式很容易拿到TOKEN,带上TOKEN请求我们的API接口就能获取数据;其实换一个角度想:我们只需保证即使TOKEN被别人冒用,也...【详细内容】
2021-02-18      Tags:APP,API   点击:(229)  评论:(0)  加入收藏
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。目前...【详细内容】
2021-02-05      Tags:APP   点击:(201)  评论:(0)  加入收藏
虽然目前许多企业都进行了长沙APP开发,开始了移动互联网转型之路,但由于其中绝大部分企业都属于传统行业,对APP应用了解并不多,故而对开发工作也不是很清楚。为了大家能更好的了...【详细内容】
2021-02-01      Tags:APP应用   点击:(214)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条