前言

从18年毕业至今,就职过两家公司,大大小小项目做了几个,非常感谢我的两位老大,在我的android成长路上给予我很多指导,亦师亦友的关系。

从年前至今参加面试了很多公司,也收到了几家巨头的offer,还有其他公司的。总结下经验,也是对过去的一个回顾和总结吧。

第一阶段: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框架体系架构知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。

下方即为我手绘的Android框架体系架构知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的Android框架体系架构知识脑图原件(包括上方的面试解析xmind文档)

除此之外,前文所提及的Alibaba珍藏版 Android框架体系架构 手写文档以及一本 《大话数据结构》 书籍等等相关的学习笔记文档,也皆可分享给认可的朋友!

——感谢大家伙的认可支持,Free Download请注意:点赞+点赞+点赞!!!
自行下载领取链接:【Git】

想找工作的你还不看这份资料就晚了!论程序员成长的正确姿势相关推荐

  1. 你会的还只有初级安卓工程师的技术吗?论程序员成长的正确姿势

    前言 这里整理的是一些与技术没有直接关系的面试题,但是能够考察你的综合水平,所以不要以为不是技术问题,就不看,往往有时候就是这样一些细节的题目被忽视,而错过了一次次面试机会. 想要成为一名优秀的And ...

  2. 校招一次次被刷,已经不想找工作了,我该怎么办?

    前两天有粉丝联系我,说他软件工程专业,大厂校招屡次被刷,有一个已经到了三面,还是被刷了,感觉很绝望,不想找工作了.邮箱里也有很多信息,初试都没有过,找工作太难了,好累啊 真的被打击到了. 想起两年前我 ...

  3. 看完这个故事,你就知道程序员为什么选公司就要去上升期的

    看完这个故事,你就知道程序员为什么选公司就要去上升期的 https://www.toutiao.com/i6948390604984402462/?tt_from=weixin&utm_cam ...

  4. 你还是只会用数组吗?不懂Java集合,还想找工作?(集合概述)

    零基础学习Java之集合概述 概述 集合的分类 Collection 基本介绍 常用方法 代码示例 Map 基本介绍 常用方法 代码示例 概述 数组想必是很多java学习者都知道的容器.诚然,数组有很 ...

  5. 程序员想找工作怎么办?如果记住这一点,不怕找不到好工作!

    风险提示:找工作就像做投资,只不过你投入的是专业技能和时间精力. 同样,工作这项投资也可以按照风险收益高低来划分:高风险高收益,例如股票期货等:低风险低收益,例如债券存款等.另外,还可以按照持有时长来 ...

  6. 前两天离职了,不想找工作,心态不好

    从三月份给经理说要辞职,折腾到6月15日,上周终于把离职证明拿到手了.高兴啊! 晚上叫了两个朋友,超市买了瓶劲酒,请客吃饭. 离职成功--太不容易了! 再说这两天吧,老是有种感觉特别偷懒的心态,说是要 ...

  7. 想找工作,这一篇15w字数+的文章帮你解决

    文章目录 前言 一 专业技能 1. 熟悉GoLang语言 1.1 Slice 1.2 Map 1.3 Channel 1.4 Goroutine 1.5 GMP调度 1.6 垃圾回收机制 1.7 其他 ...

  8. 计算机本科毕业后还需要参加培训吗?我来聊聊java程序员找工作的经验

    很多人在学习完计算机专业后,会发现在找到满意的工作时,还需要参加培训班并花费大量的时间和金钱,这让他们倍感不解.为什么在学习了四年的计算机专业之后,还需要参加培训班呢?难道这四年的时间和精力白费了吗? ...

  9. 还只看花书,西瓜书?一文告诉你如何正确学习深度学习,从理论到实战。

    如今春招已接近尾声,大家都知道今年就业形势整体不乐观,不仅应聘人数远远大于招聘岗位,而且面试难度加大,想拿到理想的offer更是难上加难! 这段时间,很多人都在自我充电,我也经常在后台给读者解答很多深 ...

最新文章

  1. Bootstrap框架中的字形图标的理解
  2. php函数剩余时间,php计算剩余时间的自定义函数
  3. python 知识 rstrip,strip,lstrip
  4. 服务器虚拟化 需求,虚拟化的优势与需求分析
  5. realtek网卡mac硬改工具_浅谈设备异常、手机硬改参数
  6. springboot启动时报错:Failed to load property source from location 'classpath:/application.yml'
  7. devops handbook 读书笔记_DevOps教程:Azure DevOps
  8. 什么时候不该使用es6箭头函数
  9. java bean jsp_jsp+java bean+servlet开发的mvc简易鞋城在线商城系统
  10. html5提供类似“JQuery”中操作类名的方法
  11. Rav 瑞星产品了解
  12. 视频教程-2020软考--网络规划设计师【综合知识】视频精讲-软考
  13. css 实现三个 div 等分排在一行
  14. linux 触屏校准命令,tslib-触摸屏校准
  15. [强化学习实战]马尔可夫决策-悬崖寻路python实现
  16. [附源码]java毕业设计病历管理系统
  17. RabbitMQ消息100%不丢失?
  18. Excel用正则表达式提取出输入正确的身份证号
  19. c盘增加一些html文件,教你三招,让C盘瞬间多出10个G
  20. c语言延时时间计算器,RC延时电路延时时间计算

热门文章

  1. Erlang笔记 -- 基础
  2. UnityShader入门精要——程序纹理
  3. Ubuntu 16.04 鼠标光标消失的解决方法(右键可弹窗,可以点击)
  4. 转贴一篇Matt Pietrek的关于SEH的文章
  5. 电子通信,嵌入式工程师应对中年危机的上中下策
  6. lin通讯从节点同步间隔场_基于LIN总线的汽车分级制网络结构
  7. 通过用户分级实现精细化运营
  8. DeFi Token 大热但我们想说:FOMO 是病,得治
  9. 抗干扰的接地处理及屏蔽处理[转载]
  10. ubuntu20.04安装opencv4.3.0中出现的问题