Android软件安全与逆向分析下载电子书pdf下载

相关推荐
Android软件安全逆向分析》由浅入深、循序渐进地讲解了Android系统的软件安全逆向分析加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android软件、如何动态调试Android 软件Android 软件的破解反破解技术的探讨,以及对典型Android病毒的全面剖析。 作者简介:丰生强(网名非虫),Android软件安全专家,看雪论坛Android安全版版主,安卓巴士开发交流版版主。 目录 第1章  Android程序分析环境搭建 1.1  Windows分析环境搭建 1.1.1  安装JDK 1.1.2  安装Android SDK 1.1.3  安装Android NDK 1.1.4  Eclipse集成开发环境 1.1.5  安装CDT、ADT插件 1.1.6  创建Android Virtual Device 1.1.7  使用到的工具 1.2  Linux分析环境搭建 1.2.1  本书的Linux环境 1.2.2  安装JDK 1.2.3  在Ubuntu上安装Android SDK 1.2.4  在Ubuntu上安装Android NDK 1.2.5  在Ubuntu上安装 Eclipse集成开发环境 1.2.6  在Ubuntu上安装CDT、ADT插件 1.2.7  创建Android Virtual Device 1.2.8  使用到的工具 1.3  本章小结 第2章  如何分析Android程序 2.1  编写第一个Android程序 2.1.1  使用Eclipse创建Android工程 2.1.2  编译生成APK文件 2.2  破解第一个程序 2.2.1  如何动手? 2.2.2  反编译APK文件 2.2.3  分析APK文件 2.2.4  修改Smali文件代码 2.2.5  重新编译APK文件并签名 2.2.6  安装测试 2.3  本章小结 第3章  进入Android Dalvik虚拟机 3.1  Dalvik虚拟机的特点--掌握Android程序的运行原理 3.1.1  Dalvik虚拟机概述 3.1.2  Dalvik虚拟机Java虚拟机的区别 3.1.3  Dalvik虚拟机是如何执行程序的 3.1.4  关于Dalvik虚拟机JIT(即时编译) 3.2  Dalvik汇编语言基础为分析Android程序做准备 3.2.1  Dalvik指令格式 3.2.2  DEX文件反汇编工具 3.2.3  了解Dalvik寄存器 3.2.4  两种不同的寄存器表示方法--v命名法p命名法 3.2.5  Dalvik字节码的类型、方法字段表示方法 3.3  Dalvik指令集 3.3.1  指令特点 3.3.2  空操作指令 3.3.3  数据操作指令 3.3.4  返回指令 3.3.5  数据定义指令 3.3.6  锁指令 3.3.7  实例操作指令 3.3.8  数组操作指令 3.3.9  异常指令 3.3.10  跳转指令 3.3.11  比较指令 3.3.12  字段操作指令 3.3.13  方法调用指令 3.3.14  数据转换指令 3.3.15  数据运算指令 3.4  Dalvik指令集练习--写一个Dalvik版的Hello World 3.4.1  编写smali文件 3.4.2  编译smali文件 3.4.3  测试运行 3.5  本章小结 第4章  Android可执行文件 4.1  Android程序的生成步骤 4.2  Android程序的安装流程 4.3  dex文件格式 4.3.1  dex文件中的数据结构 4.3.2  dex文件整体结构 4.3.3  dex文件结构分析 4.4  odex文件格式 4.4.1  如何生成odex文件 4.4.2  odex文件整体结构 4.4.3  odex文件结构分析 4.5  dex文件的验证优化工具dexopt的工作过程 4.6  Android应用程序另类破解方法 4.7  本章小结 第5章  静态分析Android程序 5.1  什么是静态分析 5.2  快速定位Android程序的关键代码 5.2.1  反编译apk程序 5.2.2  程序的主Activity 5.2.3  需重点关注的Application类 5.2.4  如何定位关键代码--六种方法 5.3  smali文件格式 5.4  Android程序中的类 5.4.1  内部类 5.4.2  监听器 5.4.3  注解类 5.4.4  自动生成的类 5.5  阅读反编译的smali代码 5.5.1  循环语句 5.5.2  
1-12章节,完整版 目 录 第1 章 ANDROID 程序分析环境搭建................................1 1.1 Windows 分析环境搭建...................................... 1 1.1.1 安装JDK..................................................1 1.1.2 安装Android SDK..........................................3 1.1.3 安装Android NDK..........................................5 1.1.4 Eclipse 集成开发环境.....................................6 1.1.5 安装CDT、ADT 插件........................................6 1.1.6 创建Android Virtual Device...............................8 1.1.7 使用到的工具.............................................9 1.2 Linux 分析环境搭建........................................ 9 1.2.1 本书的Linux 环境.........................................9 1.2.2 安装JDK..................................................9 1.2.3 在Ubuntu 上安装Android SDK..............................10 1.2.4 在Ubuntu 上安装Android NDK .............................11 1.2.5 在Ubuntu 上安装Eclipse 集成开发环境.....................12 1.2.6 在Ubuntu 上安装CDT、ADT 插件............................13 1.2.7 创建Android Virtual Device..............................13 1.2.8 使用到的工具............................................15 1.3 本章小结..................................................15 第2 章 如何分析ANDROID 程序...................................16 2.1 编写第一个Android 程序....................................16 2.1.1 使用Eclipse 创建Android 工程............................16 2.1.2 编译生成APK 文件........................................19 2.2 破解第一个程序............................................20 2.2.1 如何动手?..............................................20 2.2.2 反编译APK 文件..........................................20 2.2.3 分析APK 文件............................................21 2.2.4 修改Smali 文件代码......................................26 2.2.5 重新编译APK 文件并签名..................................26 2.2.6 安装测试................................................27 2.3 本章小结..................................................28 第3 章 进入ANDROID DALVIK 虚拟机..............................29 3.1 Dalvik 虚拟机的特点——掌握Android 程序的运行原理...........29 3.1.1 Dalvik 虚拟机概述.......................................29 3.1.2 Dalvik 虚拟机Java 虚拟机的区别........................29 3.1.3 Dalvik 虚拟机是如何执行程序的...........................34 3.1.4 关于Dalvik 虚拟机JIT(即时编译)........................36 3.2 Dalvik 汇编语言基础为分析Android 程序做准备...............37 3.2.1 Dalvik 指令格式.........................................37 3.2.2 DEX 文件反汇编工具......................................39 3.2.3 了解Dalvik 寄存器.......................................40 3.2.4 两种不同的寄存器表示方法——v 命名法p 命名法............42 3.2.5 Dalvik 字节码的类型、方法字段表示方法.................43 3.3 Dalvik 指令集.............................................44 3.3.1 指令特点................................................45 3.3.2 空操作指令..............................................45 3.3.3 数据操作指令............................................46 3.3.4 返回指令................................................46 3.3.5 数据定义指令............................................46 3.3.6 锁指令..................................................47 3.3.7 实例操作指令............................................47 3.3.8 数组操作指令............................................48 3.3.9 异常指令................................................48 3.3.10 跳转指令...............................................48 3.3.11 比较指令...............................................49 3.3.12 字段操作指令...........................................50 3.3.13 方法调用指令...........................................50 3.3.14 数据转换指令...........................................51 3.3.15 数据运算指令...........................................51 3.4 Dalvik 指令集练习——写一个Dalvik 版的Hello World...........52 3.4.1 编写smali 文件..........................................52 3.4.2 编译smali 文件..........................................54 3.4.3 测试运行................................................54 3.5 本章小结..................................................55 第4 章 ANDROID 可执行文件.....................................56 4.1 Android 程序的生成步骤....................................56 4.2 Android 程序的安装流程....................................59 4.3 dex 文件格式..............................................66 4.3.1 dex 文件中的数据结构....................................66 4.3.2 dex 文件整体结构........................................68 4.3.3 dex 文件结构分析........................................71 4.4 odex 文件格式.............................................80 4.4.1 如何生成odex 文件.......................................80 4.4.2 odex 文件整体结构.......................................81 4.4.3 odex 文件结构分析.......................................83 4.5 dex 文件的验证优化工具dexopt 的工作过程.................88 4.6 Android 应用程序另类破解方法..............................91 4.7 本章小结..................................................93 第5 章 静态分析ANDROID 程序...................................94 5.1 什么是静态分析............................................94 5.2 快速定位Android 程序的关键代码............................94 5.2.1 反编译apk 程序..........................................94 5.2.2 程序的主Activity........................................95 5.2.3 需重点关注的Application 类..............................95 5.2.4 如何定位关键代码——六种方法..............................96 5.3 smali 文件格式............................................97 5.4 Android 程序中的类.......................................100 5.4.1 内部类.................................................100 5.4.2 监听器.................................................102 5.4.3 注解类.................................................105 5.4.4 自动生成的类...........................................108 5.5 阅读反编译的smali 代码...................................110 5.5.1 循环语句...............................................110 5.5.2 switch 分支语句........................................115 5.5.3 try/catch 语句.........................................121 5.6 使用IDA Pro 静态分析Android 程序.........................127 5.6.1 IDA Pro 对Android 的支持...............................127 5.6.2 如何操作...............................................128 5.6.3 定位关键代码——使用IDA Pro 进行破解的实例...............132 5.7 恶意软件分析工具包——Androguard ..........................135 5.7.1 Androguard 的安装配置................................135 5.7.2 Androguard 的使用方法..................................137 5.7.3 使用Androguard 配合Gephi 进行静态分析..................144 5.7.4 使用androlyze.py 进行静态分析..........................148 5.8 其它静态分析工具.........................................152 5.9 阅读反编译的Java 代码....................................152 5.9.1 使用dex2jar 生成jar 文件...............................152 5.9.2 使用jd-gui 查看jar 文件的源码..........................153 5.10 集成分析环境——santoku ..................................154 5.11 本章小结................................................156 第6 章 基于ANDROID 的ARM 汇编语言基础逆向原生! .............157 6.1 Android ARM处理器......................................157 6.1.1 ARM 处理器架构概述.....................................157 6.1.2 ARM 处理器家族.........................................158 6.1.3 Android 支持的处理器架构...............................159 6.2 原生程序ARM 汇编语言——逆向你的原生Hello ARM ...........160 6.2.1 原生程序逆向初步.......................................160 6.2.2 原生程序的生成过程.....................................162 6.2.3 必须了解的ARM 知识.....................................164 6.3 ARM 汇编语言程序结构.....................................166 6.3.1 完整的ARM汇编程序......................................166 6.3.2 处理器架构定义.........................................167 6.3.3 段定义.................................................168 6.3.4 注释标号.........................................,,,,169 6.3.5 汇编器指令.............................................169 6.3.6 子程序参数传递.......................................170 6.4 ARM 处理器寻址方式.......................................170 6.4.1 立即寻址...............................................170 6.4.2 寄存器寻址.............................................171 6.4.3 寄存器移位寻址.........................................171 6.4.4 寄存器间接寻址.........................................171 6.4.5 基址寻址...............................................171 6.4.6 多寄存器寻址...........................................171 6.4.7 堆栈寻址...............................................172 6.4.8 块拷贝寻址.............................................172 6.4.9 相对寻址...............................................172 6.5 ARMThumb 指令集........................................173 6.5.1 指令格式...............................................173 6.5.2 跳转指令...............................................174 6.5.3 存储器访问指令.........................................175 6.5.4 数据处理指令...........................................177 6.5.5 其它指令...............................................184 6.6 用于多媒体编程浮点计算的NEON VFP 指令集..............185 6.7 本章小结.................................................186
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页