IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 360团队封神之作《安卓App逆向与安全防护学习手册》,首次开源分享,下载量破10W+! -> 正文阅读

[移动开发]360团队封神之作《安卓App逆向与安全防护学习手册》,首次开源分享,下载量破10W+!

随着移动互联网的兴起,“APP”成了99%的互联网企业主要运营的产品,知名的例如“支付宝”、“美团”、“滴滴”、“抖音”等。用户基数的不断变大,安全性也经历着巨大的挑战。

app越来越多,也离不开我们的生活,而安卓逆向也是近几年才兴起的一个行业,市场饱和度不高,发展前景广阔。

随着app的增加安全是一个很大问题,想要解决安全问题就得用到逆向知识,由此逆向岗位会随着app得的增加会越来越多。

就我自己从事安卓逆向这几年的经验来说,对没有编程基础的朋友如何学习安卓逆向最好制定以下学习路线:

一. 安卓逆向基础(建议1周)

  1. 学习安卓逆向第一步必须先把环境搭建好,这是你学习安卓逆向的开始,环境搭建好后表示正式迈入安卓逆向。在环境安装的工程中会遇到很多细节上的问题,针对这些坑可以去看看使用教程,或者看看网课老师的教程操作都可以。

  2. 第二步就是要了解我们要分析的是什么文件,很多0基础的都不知道安卓逆向分析的什么文件。我们要分析的是应用程序或者安装包(就是.apk文件),了解apk是怎么生成的以及如何安装到我们的手机里面,apk是怎么运行的,也是我们探讨的内容。

  3. 第三步如何逆向分析.apk文件,掌握apk反编译及回编译,完成这个操作使用的工具是apktool。

二. Java层逆向(建议3周)

  1. 掌握Java语法基础,达到能看懂Java代码。

  2. 了解smali语法,能看懂smali代码。

  3. 掌握逆向分析apk中常用的方法和技巧。

三. Native层逆向(建议4周)

  1. 了解安卓操作系统和四大组件。

  2. 了解NDK开发流程,自己编写案例练习。

  3. 掌握常用ARM汇编指令,达到能看懂ARM汇编指令。

  4. 掌握IDA工具的使用,熟练使用IDA进行各种操作。

四. APK保护策略(建议1周)

  1. 了解Java代码混淆、资源混淆。

  2. 掌握签名验证、文件校验、模拟器检测。

  3. 本地验证、网络验证。

  4. 案例练习。

五. 反调试与反-反调试(建议1周)

  1. 掌握常用反调试方法及过反调试技巧,比如关键文件检测、调试端口检测、进程名称检测、防附加、轮训检测TracerPid值、时间检测、信号检测等反调试。

  2. 掌握IDA过反调试思路。

  3. 案例练习。

六. HOOK框架(建议2周)

  1. 掌握HOOK插件开发。

  2. 掌握Xposed、Substrate、Fridad等框架。

  3. 案例练习。

七. 常见加密算法(建议2周)

  1. 掌握编码算法、消息摘要算法、对称加密算法(Java加密与解密的艺术)。

  2. 掌握非对称加密算法、数字签名算法。

八. 协议加解密分析(建议4周)

  1. 了解客户端与服务器如何进行交互的(OSI模型、TCP/IP模型)。

  2. 掌握常用的抓包工具及环境配置,HTTP协议与HTTPS安全协议,数字证书、SSL证书检测(计算机网络与通信、信息安全工程师)。

  3. 案例练习。

九. 文件结构(建议2周)

  1. 掌握DEX、ELF、XML、ARSC等文件结构。

  2. 自编写文件解析工具。

十. 系统源码分析(建议2周)

  1. 了解安卓操作系统启动流程、Zygote启动流程。

  2. 掌握Dalvik虚拟机、ART虚拟机、SO加载流程。

十一. 加固与脱壳(建议4周)

  1. 了解Dex文件整体加密、Dex代码抽取加密。

  2. 了解SO文件整体加密、函数加密、区段加密、加壳、混淆。

  3. 分析通用脱壳机的实现原理及应用场景。

  4. 了解主流加固特点及对应的脱壳技巧。

十二. 学习方法

  1. 看一遍教程后自己实战操作,养成做笔记的习惯。

  2. 注重基础,一定要把Java层和Native层搞懂。

  3. 学习中不要纠结细节,要学会抓大放小。

  4. 学完后自己画脑图,回顾学习的过程中那些不理解在花时间去看,此过程就是查漏补缺。

最后,如果大家对安卓逆向的学习感兴趣而又缺少学习资料,我最近正好薅到一份360团队成员分享在GitHub,标星7.5k的《安卓App逆向与安全防护学习手册》,通俗易懂,实例丰富,既有基础知识,也有操作技能,能够帮助读者快速入门进阶。

第一章 基础篇

  • Android中锁屏密码加密算法分析

  • Android 中NDK开发

  • Android中开发与逆向常用命令总结

  • so文件格式解析

  • AndroidManifest.xml文件格式解析

  • resource . arsc文件格式解析

  • dex文件格式解析

第二章 防护篇

  • Android应用安全防护的基本策略

  • Android中常用权限分析

  • Android中的run-as命令

  • Android中的allowBackup属性

  • Android中的签名机制

  • Android应用加固原理

  • Android中的so加固原理

第三章 工具篇

  • Android逆向分析基础

  • 反编译神器apktool和Jadx

  • Hook神器Xposed

  • 脱壳神器ZjDroid

  • Native层Hook神器Cydia Substrate

第四章 操作篇

  • 静态方式逆向应用

  • 动态调试smali源码

  • IDA工具调试so源码

  • 逆向加固应用软件技术分析

  • 逆向应用经典案例分析

  • Android中常见漏洞分析

  • 文件加密病毒Wannacry样本分析

由于篇幅限制,展示了部分内容截图,需要这些文档资料的,可以点赞支持一下我,然后【点击我的GitHub】免费阅读下载。
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-07 13:57:32  更:2021-10-07 13:58:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:50:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码