2021 年 Android 开发前景如何,详解 Android 架构进阶面试题
第一阶段:Android 基础知识回顾:
回顾 Android 开发编程,深入理解 Android 系统原理和层次结构,深入分析 Handler 源码和原理;
回顾 Java,C/C++,Kotlin、dart 在 Android 开发中必用的语言,熟悉一下几种语言混淆后的特性;
回顾 Android IPC 和 JNI 的底层原理和热更新技术回顾 Native 开发要点,使用 C++结合 NDK 完成 Android Native 开发;
回顾 Android 开发中常用的 AMS、PMS、WMS 原理和 App 启动中服务加载的流程;
回顾 Android 开发中必用的 Google 的 MVVM 框架:DataBinding+LiveData+ViewModel;
回顾 Android 开发中必用的 Google 的 MVP 框架:Dagger2;
回顾 Android 开发必用的网络架构:Okhttp3+RxJava2+Retrofit2+Rxdownload4+Rxcache+Glide;
Android 逆向基础知识:
熟悉 Android 逆向工具的使用,如 apktool,IDA,dex2jar,JEB,Androidkiller,Androguard 等;
深入分析 APK 中包含的各文件格式,分析 Android 系统源码中解析 APK 的相关代码;学习和熟悉 smali 语言(重点);
仿微信写一个 APP,并利用工具逆向出 apk 内的代码,并对比源码分析。
入门知识总结和实战(逆向入门):
知识梳理,常用工具安装,adb 命令与 Linux 常用命令,常见登录逻辑分析;
分析 ELF 可执行程序,调式 ELF 可执行程序;ARM 汇编与寄存器,ARM 反汇编速成,ARM 指令机器码,常用 ARM 指令集;
反编译 ELF 文件与 ObjDump,ELF 文件解析与 readelf,ELF 文件解析与 010Editor,深入分析 ELF 文件结构;IDA 静态分析,IDA 动态调式;
简易计算器实现及分析(练习);
字符串加密与解密,冒泡排序算法分析;
关键 android_server 文件检测,IDA 调试端口检测;
ELF 可执行程序加载 so 库,DEX 解析与 dexDump,DEX 解析与 010Editor;
实现自己的 Dex 解析工具与 GDA(练习);
Androidkiller 动态调试 smali 代码插件,AS+smalidea 调式 smali 代码;
Log 注入实现免注册,如何定位关键代码,去除 java 层签名验证,去除广告和弹窗(实战);
推荐阅读《AndroidXXXXXX……》随便找本系统源码讲解的书看看吧;
Android 基础算法和安全协议:
密码学,对称加密算法,非对称加密算法,散列函数;
数字签名,数字证书,SSL 证书检测,协议与安全协议;
了解服务器端与客户端通信协议分析;
使用 Charles 抓登录封包和验证码,协议构造与 Java 层 MD5 算法,动态调式 smali 代码与 sign 字段;
协议构造类与 SO 层 DESCBC 算法,协议关键字段 SIGN 与 SO 层 MD5 算法,动态调试协议字段,动态调式协议关键字段 SIGN;
协议关键字段 pwad 和 sign,动态调式协议字段拼接与 MD5 加密,分析 so 层 OpenSSLSHA1 算法;
封包加密与反编译失败,使用方法跟踪分析加密;java 层逆向分析,分析 so 层 TEA 算法;
练习:抓取验证码和登录封包,分析协议关键字段与 RSA 算法,证书与 RSA 原理及源码分析;
对称加密 AES、PBE 与 CRC 算法,数字签名 RSA、DSA 算法;
第二阶段:Android 逆向进阶学习:
Android 系统结构深入分析,自定义 ClassLoader,自定义注解和元注解原理分析;
了解 AndroidNDK,静态注册,动态注册,SO 加载分析,
App 保护策略去除霸哥磁力搜素 APK 签名验证,一键去除签名验证,静态代{过}{滤}理,动态代{过}{滤}理 Hook Activity 启动函数,
Hook 签名验证函数介绍 xposed 框架:Xposed 框架:
绕过验证码注册 Xposed 框架:
登陆劫持 Xposed 框架:
篡改 IMEI 信息介绍 CydiaSubstrate 框架:
Java 层 Hook:
篡改系统文字颜色 Java 层 Hook:
修改方法返回值绕过登录 Java 层 Hook:
篡改游戏金币 Java 层 Hook:
篡改主机名和端口号
Native 层 Hook:
ADBI 框架:ELFARMHOOK 框架内存抠取 Dex 文件过反调试技巧 C++游戏
逆向练习:动态调试 2048 纯算法游戏,Zygote+Hook 使 2048 游戏秒过关;
Android NDK 与 JNI 全面剖析:
so 动态库的介绍
JNI 动态注册和静态注册
NDK Build 工具介绍
Cmake 工具介绍
JNI.h 介绍
Android 源码工具和技巧
ijkplayer 源码分析及原理讲解
AndFix 源码分析及原理讲解
Java 调用 so 库的动态流程解析
NDK 实现增量更新
案例:NDK 实现换脸等工业级图像识别
案例:NDK 文件实现拆分和加密处理
Android 加固防护和脱壳简介:
DEX 文件、ODEX 文件与 OAT 文件;
XML 文件与 ARSC 文件;
分析 App 加固的产生及背景,最初加固方式,加固技术的发展;
HOOK 制作脱壳机,定制自己的脱壳系统;
DexClassLoader 动态加载分析,DEX 自解析重构技术;
三代梆梆加固原理分析;爱加密加固原理分析;
360 加固与脱壳机,360 加固 VM 与置换表;
辅助脱壳机,IDA 动态调式脱爱加密壳;
IDA 动态调式脱 360 壳,IDA 动态调式脱 SO 壳;
脱 360 壳-dex2oat,脱 360 壳-drizzleDumper;
百度加固 DD 大法,百度加固 VM 与置换表;
阿里加固与脱壳机,腾讯乐固;
ARSC 资源保护与注解;
脱壳神器 ZjDroid:
捕鱼达 3 加固技术总结;
Android 脱壳与反脱壳分析:
Android 脱壳中的思路,技巧 elf 结构详解:
动态运行库 so 文件的文件组成结构 elf 结构详解:
加载 so 文件的流程 elf 文件变形与保护,elf 文件修复分析,so 加壳文件修复常用调试检测方法与过检测方法
Android 源码定制添加反反调试机制 Android dvm 脱壳,Dalvik dex 处理分析 IDA 脱壳脚本编写,Odex 修复方法,
IDAOdex 修复脚本编写
进阶知识总结和企业级实战(逆向进阶):
病毒分析与脱壳学习,用 Ransomware 类和木马类进行学习;
手动脱壳《王者 X 耀》练习;
从 0 开始打造自己的破解代码库;
第三阶段:Android 漏洞分析和挖掘:
学习常见的漏洞类型和原理。例如堆溢出,栈溢出,UAF 等,可以参考漏洞分析相关书籍;
关注 Android Security Bulletin,根据提供的 diff 分析漏洞成因;
学习并调试以前的经典漏洞;
学习漏洞挖掘 fuzzing 思路,参考书籍推荐《Android 安全 XXXX》;
病毒分析与病毒脱壳实战;
Android 虚拟机技术、系统源码分析、刷机机制介绍、制作 ROM 刷机包:
ASP 代码注入式写法;
Android 免 root 进行 hook;
Android 虚拟机原理,Android 多开原理讲解;
在 apk 内部写一个虚拟机,在 apk 内安装 apk;
虚拟机适配 Android 10 和 64 位系统;
从 0 开始开发自己的虚拟机库;
最完善的刷机工具 :魔趣 ROM;
最完善的刷机工具 :Devices - TWRP;
最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。
开源分享:Android学习PDF+架构视频+面试文档+源码笔记
小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任 CEO,迎娶白富美,走上人生巅峰!!
不论遇到什么困难,都不应该成为我们放弃的理由!
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。
评论