写点什么

2021 年 Android 开发前景如何,详解 Android 架构进阶面试题

发布于: 18 小时前

第一阶段: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,迎娶白富美,走上人生巅峰!!


不论遇到什么困难,都不应该成为我们放弃的理由!


很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习


如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

用户头像

VX:vip204888 领取资料 2021.03.16 加入

还未添加个人简介

评论

发布
暂无评论
2021年Android开发前景如何,详解Android架构进阶面试题