[TOC]
起源
基于某些原因,有朋友建议写个程序去获取航司动态,然后根据获取的结果做一些工作,欣然同意。
之前写了一版,效果不好,容易被ban,而其它app,都各自有个自己的加密,最近破解了某航app可以正常工作。
https分析
抓到的https包都是这样的,body完全加密,这个一看就是base64加密过的,base64decode一下,发现不行,乱码,又用tosring,utf8转码,也不行,还是乱码,说明body被加密了,而且是很麻烦的那种加密,https这边分析不行,所以试着脱壳加密
image.png
获取加密算法
脱壳apt后分析代码,发现加密算法获取如图,DesUtilTool.desEncrypt(p1)函数就是加密了p1,而p1就是发送的未加密的body
image.png
DesUtilTool.desEncrypt的关键是里面有个参数叫getkey,它是另外一个函数生成的,它的关键在于另外两个参数sc和sc2
image.png image.png
最终破解
sc和sc2是最麻烦的地方,磕磕碰碰,耽搁了一个礼拜把,就是看不懂一个public string的空函数怎么生成字符串的
原因是,native关键字是用来调用Android里的sc函数,并返回
而so文件是加密好的,无法破解,所以它就这么写了,让你没法儿调它的原文
然后就是想办法破解so文件了
花了不少时间,终于破解了so文件,获取了原文的key,有了key,某航的程序就破解好了
剩下的工作就是写程序去分析并且使用分析的结果,这是另外一个话题,over
image.png
网友评论