不知不觉研一的生活已经结束了,想当初进实验室的时候被安排到了APP分析(移动安全)这个组,当时基本没接触过这方面的东西,大学都是打CTF,Web渗透&Windows逆向等,进来以后便开始了我的Android逆向之路。因为组里的主要的工作是协议分析和样本检测,前期积累了下来大量的样本,这里说的样本是具有比如说抓包失败,检测代理, 某壳加固,反调试反hook等特征,这是一个从量变到质变的前提。
前面的文章已经谈了很多技术方面的东西,这里主要分享一下我的一些学习方法和经验。
带你深入一款Android应用程序动态分析工具———Inspeckage
Inspeckage是一个用来动态分析安卓app的xposed模块。Inspeckage对动态分析很多常用的功能进行了汇总并且内建一个webserver。整个分析操作可以在友好的界面环境中进行。
安装和使用笔记Inspeckage使用笔记
安卓分析工具Inspeckage介绍
Frida后记——看我是怎么不用脱壳&逆向来解密APP的数据
这篇文章其实是前面的Traceview+frida这对绝配的组合的一个案例,不了解的可以去可以去看我直接写的几篇文章,这次以之前的一个搞的投资APP为例,这个应用数据是加密的,而且apk本身是360加固的,当时一看麻烦又要脱壳又要逆向就没弄,这次正好拿它来开整。
点击投资这个页面(或者刷新)
评测篇——关于Android中动态追踪函数的那些工具
最近这两天把Android几个主流的跟踪函数和方法的工具进行了下简单测评。
第一个不得不提的就是DDMS的Traceview工具,这个工具优点是不用手动注入语句,重打包等繁琐操作就能输出APP的所有调用的函数,简单粗暴,这也是我为什么推荐这个工具的原因。缺点是界面可操作性差(Google自己都不维护了),无法过滤,所有这里有几个技巧需要注意:
这里一定要选择Trace based profiling,不要选择那个sample based profiling,否则trace过程中会漏掉很多APP的函数(一开始选项是默认上面那个被这地方坑了)
由一道CTF题目引发的连环血案
这里的例子是以前比赛的一道mobile题目,正好综合一下前面几篇文章讲的工具和方法,这比赛是两年前的当时并不会做,读研以后这一年开始接触了Android安全方向,逐渐掌握了这方面的东西,就把这题目重新拿来做了做。 题目链接
这个题目打开是这个样子的,要爬的楼是一个很大的数字,手动点肯定是不行的,我们使用JEB进行反编译它
使用Frida框架进行hook
这次继续上次的案例,同样是hook方法的参数和返回值,只不过这次我们换个更牛逼的框架————frida
四哥的Android逆向之旅之frida
看雪两篇很好的教程 初识Frida–Android逆向之Java层hook
官网示例
推荐一篇国外的精华总结文章(里面包括好几个系列frida案例)链接
由于frida 12.0版本开始把frida和CLI工具frida-tools分开了,所以要在命令行使用frida命令的话还要装tools 见官方介绍,看雪有个一键运行的脚本,这里精简了一下贴在了评论里,第一次配置好了之后直接运行bat文件即可,省去了繁琐的操作命令
使用Xposed框架进行hook
xposed创建教程参考 Android Studio Xposed模块编写
没有Android基础都能学会的Xposed基础教程
推荐一个xposed入门的很好的公众号:安卓Xposed框架交流
最后创建完毕就是这个样子
Nexus4刷Android4.4教程及Android逆向工具推荐
今天从博士那弄了个新的nexus4,但是系统是CyanogenMod的,开机老是报错,所以一怒之下想刷个原生系统(四哥小黄书推荐的Android4.4),找了一下午中文教程没个靠谱的,所以直接Google搜英文的
各类Hash算法-Java版
以下Hash算法经常被用在数据的签名中,这里整理了一下Java版sha-x和md5算法
各类加密算法-Java版
在APP的网络协议中,这些对称加密和非对称加密算法常会用在APP和服务器的交互数据中request和response(部分可能会用在数据的签名),识别这些算法是非常重要的,这里给出整理好的Java版(smali层)加密算法,C/C++(so层)也类似,主要就是识别这两行