某图app逆向分析

# 某图app逆向分析 ##### 本次分析仅作学习参考,别无他用,侵权即删。 ## 1. 前言 --- app可以通过查看之前的帖子了解,由于web端限制图片查看数量,而app上可以浏览全部图片,因此选择逆向分析app。 ## 2. 分析过程 使用到的工具:一台安卓手机,Charles,jadx,python+frida,r0capture ### 2.1 抓取数据包 --- 在抓包的过程中发现,使用fiddler、httpcanary等均无法成功抓包,使用trustme模块后也不行。经过分析并搜索后判断app使用了ssl双向验证,因此选择r0ysue的r0capture项目,成功导出p12证书。 ![](https://upload-images.jianshu.io/upload_images/28310029-8743baf6a5858621.png) ![](https://upload-images.jianshu.io/upload_images/28310029-680ca313c72f7cf6.png) 将证书导入Charles后,成功抓取到app的数据包。(此处有个疑惑:我将p12证书导入httpcanary后仍然无法抓取数据包,不知道是何原因,希望有大佬解惑。) ![](https://upload-images.jianshu.io/upload_images/28310029-cc4692fca4f4d2f6.png) ![](https://upload-images.jianshu.io/upload_images/28310029-39c0f1f1e63f1ea6.png) 很明显,我们抓取到的是加密后的数据,结合网站加密分析,看起来应该是aes或者des加密,下面分析数据的加密逻辑。 ### 2.2 探究加密方法 --- app使用了数字加固,低版本安卓可以使用反射大师脱壳,也可以使用frida项目一键脱壳。 ![](https://upload-images.jianshu.io/upload_images/28310029-88f4ac45308d9724.png) 将得到的dex文件在jadx中打开,经过多次分析后还是认为加密应该在signature内,但是无法找出具体的加密方法。分析过程中可以搜索上面抓到的一些参数(page,data等),搜索出来后可以使用frida进行hook,但是我在尝试多次后仍然没有找到。本来已经没有思路,但是突然想起web端加密中使用到fromhex,因此想到这里应该也要进行进行同样的方法,经过搜索果然发现了这个方法。 ![](https://upload-images.jianshu.io/upload_images/28310029-8e5778e90f65e818.png) 那么接下来看看哪个地方调用了这个方法应该就可以,向上找成功找到了这个decrypt方法,hook这个方法后选择继续往上追溯。 ![](https://upload-images.jianshu.io/upload_images/28310029-3dbc03dcdf51183b.png) 果然找到了这两个方法,其实最开始hook过第二个方法,但是没有结果就以为上面的方法也不是,结果事实证明上面的函数就是加密之处。 ![](https://upload-images.jianshu.io/upload_images/28310029-5266008e5e3c23f7.png) 同时在这个类中发现了一个md5方法,而hook出来的iv值是固定的,key值却一直在变化,返回的数据包中每次都有一个类似id的值,直接尝试对id取md5(其实经过了多次查找和分析),发现key值直接出来了。 ![](https://upload-images.jianshu.io/upload_images/28310029-089b4274f5863d07.png) 至此分析完毕,采用AES的CBC加密模式,传入一个变化的key和固定的iv值,解密获取数据。 ## 3. 复现数据解密 --- 使用python的requests-pkcs12库传入p12证书,并设置verify为False即可成功请求。具体解密代码可参考之前的web端加密。 ![](https://upload-images.jianshu.io/upload_images/28310029-0cfec57c2ef07e96.png) ![](https://upload-images.jianshu.io/upload_images/28310029-e5933c5ee23edd2e.png) ## 4. 总结 成功分析出加密方法后,感觉其实app的加密难度并不是很大,主要是中间走了一些弯路。在这次分析和之前对另一个app的分析中,frida起到了很大的帮助,在不修改原app的前提下,可以捕获内部的方法,同时还可以对加固应用脱壳,实用性非常大。总的来看分析过程简单,难度较小,不过经验应该值得借鉴。 本文由[mdnice](https://mdnice.com/?platform=6)多平台发布
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容