从2013年进入到移动互联网时代,在Android系统广泛应用在手机厂商中,App承载了我们生活工作的方方面面,原来需要在PC或者线下才能做的事情,现在点一点手指就可以做到了。这类方便也带来更多的系统安全危害。正所谓魔高一尺道高一丈,为了保护App的运行安全,越来越多的企业开始将业务向移动端延伸,面临着针对App的安全攻击威胁,因此需要进行安全评估和漏洞挖掘。而逆向工程是安全评估和漏洞挖掘的重要手段之一。
像:“抖音、京东、淘宝、支付宝、……等”,这些软件公司也是非常看重逆向安全个岗位。
而逆向工程在学术领域的研究也是十分活跃的,如反汇编技术、静态和动态代码分析、模糊测试等,这些技术在App性能优化、热修复、App隐私保护、应用领域研究等方面都有应用
逆向工程在应用开发领域也具有一定的应用,如动态调试工具(如Xposed Framework)可以对App进行hook,实现自定义模块的功能,也可以对市面上的App进行分析,提出改进建议。
Android市场对逆向工程的需求量也在逐渐增加。逆向工程的应用领域也在不断拓展,对了解移动应用的设计、实现和漏洞修复等方面都有很大的帮助。
具可靠数据看来,目前就Android逆向工程师的岗位就业率比较平稳。并不像普通的Android业务岗位一样,就业率处于负增长的状态。
再从薪资的角度来看,也远高于传统的业务Android开发岗位。
至于该岗位的技术要求也是有的,像:
- 熟悉Android开发,了解打包、反编译、破解流程;熟悉dex、so等脱壳、还原、混淆对抗;熟悉ollvm混淆、有实际的对抗经验和成熟的对抗方案;熟悉Android设备指纹、环境分析对抗
- 熟练掌握静态分析工具 IDA 等逆向分析工具,熟悉 smali 、 ARM 或x86指令集和汇编语言,可以熟练逆向分析 Java , C / C ++代码
- 熟练掌握常见的客户端攻防逆向和调试技巧,使用逆向工具分析定位接口并给出解决方案
- ……
可能很多对人这类技术安全不太理解,不知道会在哪里应用,毕竟逆向与反逆向一般属于技术安全团队负责的事项,在一般中小公司基本都不会有专门的人进行负责这类工作。
为了帮助到大家搞清楚,Android逆向安全需要学习些什么,下面梳理了一份比较全面的Android 逆向安全开发的学习路线,对逆向Android感兴趣的可以看看:
大家在学习过程中可能会发现,这类相关的学习文档或视频什么的很少,学起来会比较困难,正考虑到这点,下面也整理了《App逆向安全学习笔记》供大家参考:https://qr18.cn/CQ5TcL
1.Android 逆向模拟器环境搭建(详解)
2.Smali指令详解
3.加壳和脱壳入门
4.NDK与逆向:https://qr18.cn/CQ5TcL
5.Xposed框架
6.Frida-逆向开发的屠龙刀
7.安卓逆向之常用加密算法:https://qr18.cn/CQ5TcL