《Android软件安全与逆向分析》
基本信息
作者: 丰生强 [作译者介绍]
丛书名: 图灵原创
出版社:人民邮电出版社
ISBN:9787115308153
上架时间:2013-2-7
出版日期:2013 年2月
开本:16开
页码:1
版次:1-1
所属分类:计算机 > 软件与程序设计 > 移动开发 > Android
更多关于 》》》《Android软件安全与逆向分析》
内容简介
书籍
计算机书籍
《android软件安全与逆向分析》由浅入深、循序渐进地讲解了android 系统的软件安全、逆向分析与加密解密技术。包括android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析android 软件、如何动态调试android 软件、android 软件的破解与反破解技术的探讨,以及对典型android 病毒的全面剖析。
《android软件安全与逆向分析》适合所有android 应用开发者、android 系统开发工程师、android 系统安全工作者阅读学习。
目录
《android软件安全与逆向分析》
第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 arm与thumb指令集 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
第7章 android ndk程序逆向分析 187
7.1 android中的原生程序 187
7.1.1 编写一个例子程序 187
7.1.2 如何编译原生程序 188
7.2 原生程序的启动流程分析 194
7.2.1 原生程序的入口函数 194
7.2.2 main函数究竟何时被执行 198
7.3 原生文件格式 199
7.4 原生c程序逆向分析 200
7.4.1 原生程序的分析方法 200
7.4.2 for循环语句反汇编代码的特点 204
7.4.3 if...else分支语句反汇编代码的特点 208
7.4.4 while循环语句反汇编代码的特点 211
7.4.5 switch分支语句反汇编代码的特点 215
7.4.6 原生程序的编译时优化 218
7.5 原生c++程序逆向分析 222
7.5.1 c++类的逆向 222
7.5.2 android ndk对c++特性的支持 225
7.5.3 静态链接stl与动态链接stl的代码区别 227
7.6 android ndk jni api逆向分析 232
7.6.1 android ndk提供了哪些函数 232
7.6.2 如何静态分析android ndk程序 233
7.7 本章小结 235
第8章 动态调试android程序 236
8.1 android动态调试支持 236
8.2 ddms的使用 237
8.2.1 如何启动ddms 237
8.2.2 使用logcat查看调试信息 238
8.3 定位关键代码 240
8.3.1 代码注入法——让程序自己吐出注册码 240
8.3.2 栈跟踪法 244
8.3.3 method profiling 247
8.4 使用andbug调试android程序 250
8.4.1 安装andbug 251
8.4.2 使用andbug 251
8.5 使用ida pro调试android原生程序 254
8.5.1 调试android原生程序 255
8.5.2 调试android原生动态链接库 256
8.6 使用gdb调试android原生程序 260
8.6.1 编译gdb与gdbserver 260
8.6.2 如何调试 262
8.7 本章小结 264
第9章 android软件的破解技术 265
9.1 试用版软件 265
9.1.1 试用版软件的种类 265
9.1.2 实例破解——针对授权key方式的破解 265
9.2 序列号保护 271
9.3 网络验证 272
9.3.1 网络验证保护思路 272
9.3.2 实例破解——针对网络验证方式的破解 273
9.4 in-app billing(应用内付费) 277
9.4.1 in-app billing原理 277
9.4.2 in-app billing破解方法 280
9.5 google play license保护 281
9.5.1 google play license保护机制 281
9.5.2 实例破解——针对google play license方式的破解 283
9.6 重启验证 284
9.6.1 重启验证保护思路 285
9.6.2 实例破解——针对重启验证方式的破解 285
9.7 如何破解其他类型的android程序 296
9.7.1 mono for android开发的程序及其破解方法 296
9.7.2 qt for android开发的程序及其破解方法 301
9.8 本章小结 309
第10章 android程序的反破解技术 310
10.1 对抗反编译 310
10.1.1 如何对抗反编译工具 310
10.1.2 对抗dex2jar 311
10.2 对抗静态分析 312
10.2.1 代码混淆技术 312
10.2.2 ndk保护 315
10.2.3 外壳保护 316
10.3 对抗动态调试 316
10.3.1 检测调试器 316
10.3.2 检测模拟器 317
10.4 防止重编译 318
10.4.1 检查签名 318
10.4.2 校验保护 319
10.5 本章小结 320
第11章 android系统攻击与防范 321
11.1 android系统安全概述 321
11.2 手机root带来的危害 321
11.2.1 为什么要root手机 321
11.2.2 手机root后带来的安全隐患 322
11.2.3 android手机root原理 322
11.3 android权限攻击 329
11.3.1 android权限检查机制 329
11.3.2 串谋权限攻击 333
11.3.3 权限攻击检测 336
11.4 android组件安全 339
11.4.1 activity安全及activity劫持演示 340
11.4.2 broadcast receiver 安全 343
11.4.3 service安全 345
11.4.4 content provider安全 346
11.5 数据安全 347
11.5.1 外部存储安全 347
11.5.2 内部存储安全 348
11.5.3 数据通信安全 350
11.6 rom安全 351
11.6.1 rom的种类 352
11.6.2 rom的定制过程 352
11.6.3 定制rom的安全隐患 359
11.6.4 如何防范 360
11.7 本章小结 361
第12章 droidkongfu变种病毒实例分析 362
12.1 droidkongfu病毒介绍 362
12.2 配置病毒分析环境 363
12.3 病毒执行状态分析 364
12.3.1 使用apimonitor初步分析 365
12.3.2 使用droidbox动态分析 369
12.3.3 其他动态分析工具 373
12.4 病毒代码逆向分析 376
12.4.1 java层启动代码分析 376
12.4.2 native层启动代码分析 381
12.4.3 native层病毒核心分析 393
12.5 droidkongfu病毒框架总结 404
12.6 病毒防治 406
12.7 本章小结 406
相关推荐
《Android软件安全与逆向分析》是一本深入探讨Android应用安全和逆向工程的书籍,带书签功能方便读者查阅和学习。在Android平台上,软件安全与逆向分析是极其重要的话题,因为随着移动设备的普及,恶意软件和隐私...
android 软件安全与逆向分析android 软件安全与逆向分析android 软件安全与逆向分析
在Android软件安全与逆向分析领域,理解和掌握各种工具至关重要。这个合集包含了从相关书籍源码中提取的工具,旨在帮助开发者、安全研究员以及对Android应用安全性有深入研究的人们更加便捷地进行学习和实践。 一、...
《Android软件安全与逆向分析》是一门深入探讨Android应用安全和逆向工程的学科,旨在帮助开发者、安全研究员以及对Android系统有深入研究兴趣的人理解Android应用的内部运作机制,提升软件的安全性,并能够进行有效...
android安全和逆向分析 pdf打包
包含以下文件 AndBug-master.zip androguard-1.6.tar.gz AntiLVL-1.4.0-linux.zip AntiLVL-1.4.0-win.zip apktool-install-linux-r04-brut1.tar.bz2 apktool-install-windows-r04-brut1.tar.bz2 ...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
本书由浅入深、循序渐进地讲解了Android 系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android 软件、如何动态调试Android 软件、Android 软件的...
《Android安全与逆向分析进阶》是一本深入探讨Android平台安全性和逆向工程的专著,旨在帮助读者提升在Android应用开发、安全检测和漏洞分析方面的能力。在这个数字化时代,移动安全尤其重要,Android作为全球最广泛...
逆向分析是评估和增强软件安全性的关键技术之一。本文将深入探讨Android逆向分析工具及其在签名工具中的应用,这些都是确保应用程序安全性和防止未授权修改的关键。 首先,让我们了解什么是逆向分析。逆向分析是对...
Android 恶意代码的逆向分析是当前 Android 安全领域中的一项重要研究方向。本文主要研究基于逆向工程的 Android 应用程序中恶意代码的分析方法。该方法首先通过逆向工程获取 Android 应用程序的 Java 源代码和资源...
在Android应用开发中,安全测试是一项至关重要的环节,它确保应用程序不会被恶意攻击,保护用户数据的安全...在实际应用中,结合使用这三款工具,可以有效提高对Android应用的逆向分析效率,确保软件的安全性和合规性。
在Android应用开发领域,逆向分析是一个重要的环节,主要用于安全检查、漏洞挖掘、代码学习以及调试等目的。本文将深入探讨“Android逆向分析工具”,特别是提到的“ApkIDE最新3.3.1少月版”。 ApkIDE是一款功能...
源代码来源于《Android软件安全与逆向》这本书,这可能是一本深入讨论Android应用安全性和逆向工程的教材。通过分析这个工具的实现,开发者和安全研究人员可以了解如何在APK文件上添加保护层,防止恶意攻击者篡改或...
【Android官网逆向助手少月版V2018】是一款专为安卓应用逆向分析设计的工具,它集成了多种实用功能,旨在帮助开发者、安全研究人员或爱好者深入理解APK文件的内部工作原理,从而进行调试、优化或安全检测。...
Android软件逆向分析基础 [MP4] frida从配置到实战 [MP4] (1G) 手游逆向实操技术实战课 [MP4] (1.2G) 安卓逆向2期~ [MP4] (11.9G) 大型安卓安全协议算法分析公开课 [MP4] APK加固保护及对抗 [MP4] ...
在学习《Android软件安全与逆向分析》时,掌握Baksmali和Dedexer的使用是非常关键的技能。这两个工具可以帮助我们深入理解APK的内部运作,发现潜在的安全漏洞,或者对代码进行优化。同时,它们也是逆向工程和恶意...
"Android官网逆向助手少月版V2018"就是专为Android逆向工程设计的一款实用工具,它集成了多种功能,旨在简化逆向分析的过程,提升效率。 首先,我们要理解什么是Android逆向工程。逆向工程是将已编译的程序反向解析...
在学习《Android软件安全与逆向分析》的过程中,掌握apktool的使用至关重要。 首先,我们需要了解APK文件的结构。APK是Android应用的打包格式,包含了应用的所有代码、资源、清单文件(AndroidManifest.xml)以及库...
"Android一键逆向助手"正是这样一个工具,它简化了逆向分析的过程,让开发者和安全专家能够更加高效地探索应用内部的工作机制。 一、逆向工程基础 逆向工程,简而言之,就是通过对目标程序进行反编译和分析,理解...