美文网首页
安卓安全工程师

安卓安全工程师

作者: 杂夜 | 来源:发表于2018-10-16 19:11 被阅读0次

    Android Security Learning

    ==========================================================================

    1.Basic Requirements

    熟悉Android开发环境,能够较为熟练的开发Android程序

    了解ARM、Smali汇编语言

    熟悉IDA、Gdb等调试分析工具

    熟悉Android/Linux底层框架,熟悉系统的工作原理和细节

    研究Android系统底层,分析漏洞和潜在风险

    2.Learning Route

    ​ 2.1 Android基础知识

    学习Android开发编程,了解其原理。

       1.熟悉Java,C和C++三种在Android系统中使用较多的语言,了解几种语言的特性。

       2.学习Android开发,推荐使用Android studio进行开发,也可以使用eclipse。

       3.完成一些小程序,学习Native开发,利用NDK完成一些native程序。

       4.在过程中了解Android系统的层次结构,四大组件等Android系统的基本知识。

       5.尽可能的了解Andorid系统的概貌。

       6.在基础学习的过程中学习有效的使用搜索引擎,对不熟悉的属于进行了解学习。

    ​ 2.2  逆向基础知识

    学习逆向基础相关知识和工具、并试图动手实践。

       1. 熟悉Android逆向工具的使用,如dex2jar,JEB,AndroidKiller,Androguard等.

       2.大致学习APK中包含的各文件格式,可以阅读Android系统解析APK的源码,也可以利用开源项目 Androguard来学习。

       3.学习和熟悉smali语言。

       4.尝试自己写小程序,并利用工具逆向,对比学习。

       5.尝试逆向一些小程序,分析其功能逻辑。

    ​ 2.3 逆向进阶学习

    对ARM汇编、Smali语法、相关调试工具等进行学习。

       1.学习和熟悉ARM汇编指令;

       2.学习学习并熟悉IDA,gdb两种逆向工具的使用;

       3.学习Smali调试的方法,参考书籍《Android软件安全与逆向分析》;

       4.学习使用IDA静态分析Native程序,自己写Native程序并逆向,对比学习;

       5.使用IDA和gdb对Native程序进行调试;

       6.分析和调试一些带有Native代码的APK;

       7.开始学习Android系统知识,推荐《Android系统源代码情景分析》;

    ​ 2.4 逆向实战

    病毒分析语脱壳学习

      1.找一些病毒木马分析博客跟着博客内容的教程进行分析实践推荐用Ransomware类和木马类进行学习

      2.找一些分析加壳程序的分析文章进行手动脱壳

    ​ 2.5 漏洞分析与挖掘

    学习漏洞类型和原理。

       1.学习常见的漏洞类型,例如堆溢出,栈溢出,UAF等,可以参考SecWiki漏洞分析相关书籍;

       2.关注android security bulletin,根据提供的diff分析漏洞成因;

       3.学习并调试以前的经典漏洞和分析文章;

       4.学习漏洞挖掘fuzzing思路,参考书籍《Android安全攻防权威指南》;

    3.Website Summary

    Exercise

    DIVA  Android

    Android安全项目入门篇

    Skill

    Android App漏洞学习(一)

    Android App漏洞学习(二)

    wiki android

    Android组件安全

    通过 WebView 攻击 Android 应用

    Complement: IOS

    OSX/iOS reverse engineering

    相关文章

      网友评论

          本文标题:安卓安全工程师

          本文链接:https://www.haomeiwen.com/subject/fhfkzftx.html