“安卓逆向”不是一个新名词,它伴随着安卓开发而生,但是一直以来,仅限于技术圈内流行,对于非技术圈人士,往往把“APP破解”和“安卓逆向”划等号。这是写给非技术圈人士看的,在于普及安卓逆向的概念及其应用场景。
简单地来说,安卓逆向是对已经打包好的APP进行反编译、源码分析了解APP实现逻辑的一门技术。
在5G时代,移动终端的应用场景及应用深度将进一步提升,移动应用已经完全渗透到人们的工作和生活中。随着移动终端的发展,移动应用所隐含的安全问题逐渐浮出水面并对人们的生活产生越发深远的影响。
据统计,全球每年至少新增150万种移动端恶意软件,至少造成了超过1600万件的移动恶意攻击事件。近年来,工业和信息化部针对移动应用长期存在的违规收集用户个人信息、违规获取终端权限、隐私政策不完整等行为进行了多次综合整治行动,国家“等级保护2.0”标准中也增加了移动安全拓展条款,移动安全将会成为未来我国网络安全人才培养的一个核心内容板块。
Mobile的学习不是一个轻松的过程,既需要你掌握逆向(Reverse)的知识,也需要你去深入了解学习Android系统,学习的过程十分不易,但是也会非常的有趣,比如学习过程中你可能会对"外挂"和"应用破解"产生很大的兴趣,笔者也是认为非常刑的哦
如果你从来没有接触过安卓逆向这档事,没关系,你可以采纳以下几点建议:
1.买一本有关安卓安全的书籍进行学习。
2.下载并尝试学习一些安卓逆向工具的使用,如Frida、jadx、GDAE、IDA、MT管理器、NP管理器、HttpCanary、Apktool、BlackBox、jeb等。(凡事都有个开始,当你下载某个工具开始学习的时候你已经超过大部分人了)
3.买一台小米/红米手机,作为安卓学习者,最好有一台可以获取root权限的设备,这可以帮助你更快、更全面地了解安卓系统,并且方便于一些工具的使用。
如果你曾经学习过安卓逆向的知识:
1.学习frida要用到的JavaScript编程语言。
2.学习apk签名校验保护以及加固保护的知识,尝试自己脱壳并回填修复apk。
3.学习一些加密算法的逻辑,如tea系列等,并尝试写脚本解密。
4.学习arm汇编,同样可以买一本arm的汇编书籍看一看,这会使你在so文件分析方面如鱼得水。
5.学习使用内存工具如GameGuardian、CE等,内存分析是很重要的一部分,也是目前很多安卓脱壳机用到的原理。
学习安卓要多做题、多见题。我们学习ctf的目的就是去打比赛,不做题是不行的。Nssctf平台上有很多适合新手学习的题型,可以做一做iscc比赛往年的mobile题,或者可以自己找一些有mobile题型的比赛去做一做题,题目见多了就可以自己尝试出一出题,对自己都是一种提升。另外出题会用到Android Studio、IDE等工具,也希望大家可以提前学习。
逆向的学习不仅需要扎实的理论基础,更需要大量的实践和探索。希望大家在今后的学习中,多动手、多思考,多浏览ctf学习论坛发布的文章 下面推荐几个适合逆向学习的论坛:
https://bbs.binmt.cc MT论坛
期待大家能在接下来的纳新赛中能有出色的表现!
如果对Mobile感兴趣的话,可以找我聊一聊哦,QQ:1253016986