Android软件安全与逆向分析

Android软件安全与逆向分析
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 人民邮电出版社
2013-02
版次: 1
ISBN: 9787115308153
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 407页
字数: 632千字
正文语种: 简体中文
  •   《Android软件安全与逆向分析》由浅入深、循序渐进地讲解了Android系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android软件、如何动态调试Android软件、Android软件的破解与反破解技术的探讨,以及对典型Android病毒的全面剖析。强实践性。缺乏可操作性,是Android安全方面现有论文、白皮书、技术文章大的问题之一,很多人读到后可能对内容有了一些概念,却不知道从何下手。这本书的几乎每一个部分,都结合实际例子,一步步讲解如何操作。强时效性。作者在写作的同时,持续跟随业界新进展,刚刚发布不久的Santoku虚拟机、APIMonitor等工具,以及Androguard的新特性等,已然出现在了这本书中。
      《Android软件安全与逆向分析》适合所有Android应用开发者、Android系统开发工程师、Android系统安全工作者阅读学习。
      丰生强(网名非虫),Android软件安全专家。看雪论坛Android安全版版主;安卓巴士开发交流版版主。
      对Android软件与系统安全有狂热的爱好和独到的见解,对Android系统的全部源代码进行过深入地研究和分析。逆向分析实战经验丰富。
      在国内信息安全杂志上发表过多篇有价值的软件安全文章,目前就职于国内某Android开发企业,常年混迹于看雪论坛(ID非虫)。
    第1章Android程序分析环境搭建1.1Windows分析环境搭建1.1.1安装JDK1.1.2安装AndroidSDK1.1.3安装AndroidNDK1.1.4Eclipse集成开发环境1.1.5安装CDT、ADT插件1.1.6创建AndroidVirtualDevice1.1.7使用到的工具1.2Linux分析环境搭建1.2.1本书的Linux环境1.2.2安装JDK1.2.3在Ubuntu上安装AndroidSDK1.2.4在Ubuntu上安装AndroidNDK1.2.5在Ubuntu上安装Eclipse集成开发环境1.2.6在Ubuntu上安装CDT、ADT插件1.2.7创建AndroidVirtualDevice1.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章进入AndroidDalvik虚拟机3.1Dalvik虚拟机的特点——掌握Android程序的运行原理3.1.1Dalvik虚拟机概述3.1.2Dalvik虚拟机与Java虚拟机的区别3.1.3Dalvik虚拟机是如何执行程序的3.1.4关于Dalvik虚拟机JIT(即时编译)3.2Dalvik汇编语言基础为分析Android程序做准备3.2.1Dalvik指令格式3.2.2DEX文件反汇编工具3.2.3了解Dalvik寄存器3.2.4两种不同的寄存器表示方法——v命名法与p命名法3.2.5Dalvik字节码的类型、方法与字段表示方法3.3Dalvik指令集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.4Dalvik指令集练习——写一个Dalvik版的HelloWorld3.4.1编写smali文件3.4.2编译smali文件3.4.3测试运行3.5本章小结第4章Android可执行文件4.1Android程序的生成步骤4.2Android程序的安装流程4.3dex文件格式4.3.1dex文件中的数据结构4.3.2dex文件整体结构4.3.3dex文件结构分析4.4odex文件格式4.4.1如何生成odex文件4.4.2odex文件整体结构4.4.3odex文件结构分析4.5dex文件的验证与优化工具dexopt的工作过程4.6Android应用程序另类破解方法4.7本章小结第5章静态分析Android程序5.1什么是静态分析5.2快速定位Android程序的关键代码5.2.1反编译apk程序5.2.2程序的主Activity5.2.3需重点关注的Application类5.2.4如何定位关键代码——六种方法5.3smali文件格式5.4Android程序中的类5.4.1内部类5.4.2监听器5.4.3注解类5.4.4自动生成的类5.5阅读反编译的smali代码5.5.1循环语句5.5.2switch分支语句5.5.3try/catch语句5.6使用IDAPro静态分析Android程序5.6.1IDAPro对Android的支持5.6.2如何操作5.6.3定位关键代码——使用IDAPro进行破解的实例5.7恶意软件分析工具包——Androguard5.7.1Androguard的安装与配置5.7.2Androguard的使用方法5.7.3使用Androguard配合Gephi进行静态分析5.7.4使用androlyze.py进行静态分析5.8其他静态分析工具5.9阅读反编译的Java代码5.9.1使用dex2jar生成jar文件5.9.2使用jd-gui查看jar文件的源码5.10集成分析环境——santoku5.11本章小结第6章基于Android的ARM汇编语言基础——逆向原生!6.1Android与ARM处理器6.1.1ARM处理器架构概述6.1.2ARM处理器家族6.1.3Android支持的处理器架构6.2原生程序与ARM汇编语言——逆向你的原生HelloARM6.2.1原生程序逆向初步6.2.2原生程序的生成过程6.2.3必须了解的ARM知识6.3ARM汇编语言程序结构6.3.1完整的ARM汇编程序6.3.2处理器架构定义6.3.3段定义6.3.4注释与标号6.3.5汇编器指令6.3.6子程序与参数传递6.4ARM处理器寻址方式6.4.1立即寻址6.4.2寄存器寻址6.4.3寄存器移位寻址6.4.4寄存器间接寻址6.4.5基址寻址6.4.6多寄存器寻址6.4.7堆栈寻址6.4.8块拷贝寻址6.4.9相对寻址6.5ARM与Thumb指令集6.5.1指令格式6.5.2跳转指令6.5.3存储器访问指令6.5.4数据处理指令6.5.5其他指令6.6用于多媒体编程与浮点计算的NEON与VFP指令集6.7本章小结第7章AndroidNDK程序逆向分析7.1Android中的原生程序7.1.1编写一个例子程序7.1.2如何编译原生程序7.2原生程序的启动流程分析7.2.1原生程序的入口函数7.2.2main函数究竟何时被执行7.3原生文件格式7.4原生C程序逆向分析7.4.1原生程序的分析方法7.4.2for循环语句反汇编代码的特点7.4.3if...else分支语句反汇编代码的特点7.4.4while循环语句反汇编代码的特点7.4.5switch分支语句反汇编代码的特点7.4.6原生程序的编译时优化7.5原生C++程序逆向分析7.5.1C++类的逆向7.5.2AndroidNDK对C++特性的支持7.5.3静态链接STL与动态链接STL的代码区别7.6AndroidNDKJNIAPI逆向分析7.6.1AndroidNDK提供了哪些函数7.6.2如何静态分析AndroidNDK程序7.7本章小结第8章动态调试Android程序8.1Android动态调试支持8.2DDMS的使用8.2.1如何启动DDMS8.2.2使用LogCat查看调试信息8.3定位关键代码8.3.1代码注入法——让程序自己吐出注册码8.3.2栈跟踪法8.3.3MethodProfiling8.4使用AndBug调试Android程序8.4.1安装AndBug8.4.2使用AndBug8.5使用IDAPro调试Android原生程序8.5.1调试Android原生程序8.5.2调试Android原生动态链接库8.6使用gdb调试Android原生程序8.6.1编译gdb与gdbserver8.6.2如何调试8.7本章小结第9章Android软件的破解技术9.1试用版软件9.1.1试用版软件的种类9.1.2实例破解——针对授权KEY方式的破解9.2序列号保护9.3网络验证9.3.1网络验证保护思路9.3.2实例破解——针对网络验证方式的破解9.4In-appBilling(应用内付费)9.4.1In-appBilling原理9.4.2In-appBilling破解方法9.5GooglePlayLicense保护9.5.1GooglePlayLicense保护机制9.5.2实例破解——针对GooglePlayLicense方式的破解9.6重启验证9.6.1重启验证保护思路9.6.2实例破解——针对重启验证方式的破解9.7如何破解其他类型的Android程序9.7.1MonoforAndroid开发的程序及其破解方法9.7.2QtforAndroid开发的程序及其破解方法9.8本章小结第10章Android程序的反破解技术10.1对抗反编译10.1.1如何对抗反编译工具10.1.2对抗dex2jar10.2对抗静态分析10.2.1代码混淆技术10.2.2NDK保护10.2.3外壳保护10.3对抗动态调试10.3.1检测调试器10.3.2检测模拟器10.4防止重编译10.4.1检查签名10.4.2校验保护10.5本章小结第11章Android系统攻击与防范11.1Android系统安全概述11.2手机ROOT带来的危害11.2.1为什么要ROOT手机11.2.2手机ROOT后带来的安全隐患11.2.3Android手机ROOT原理11.3Android权限攻击11.3.1Android权限检查机制11.3.2串谋权限攻击11.3.3权限攻击检测11.4Android组件安全11.4.1Activity安全及Activity劫持演示11.4.2BroadcastReceiver安全11.4.3Service安全11.4.4ContentProvider安全11.5数据安全11.5.1外部存储安全11.5.2内部存储安全11.5.3数据通信安全11.6ROM安全11.6.1ROM的种类11.6.2ROM的定制过程11.6.3定制ROM的安全隐患11.6.4如何防范11.7本章小结第12章DroidKongFu变种病毒实例分析12.1DroidKongFu病毒介绍12.2配置病毒分析环境12.3病毒执行状态分析12.3.1使用APIMonitor初步分析12.3.2使用DroidBox动态分析12.3.3其他动态分析工具12.4病毒代码逆向分析12.4.1Java层启动代码分析12.4.2Native层启动代码分析12.4.3Native层病毒核心分析12.5DroidKongFu病毒框架总结12.6病毒防治12.7本章小结……
  • 内容简介:
      《Android软件安全与逆向分析》由浅入深、循序渐进地讲解了Android系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android软件、如何动态调试Android软件、Android软件的破解与反破解技术的探讨,以及对典型Android病毒的全面剖析。强实践性。缺乏可操作性,是Android安全方面现有论文、白皮书、技术文章大的问题之一,很多人读到后可能对内容有了一些概念,却不知道从何下手。这本书的几乎每一个部分,都结合实际例子,一步步讲解如何操作。强时效性。作者在写作的同时,持续跟随业界新进展,刚刚发布不久的Santoku虚拟机、APIMonitor等工具,以及Androguard的新特性等,已然出现在了这本书中。
      《Android软件安全与逆向分析》适合所有Android应用开发者、Android系统开发工程师、Android系统安全工作者阅读学习。
  • 作者简介:
      丰生强(网名非虫),Android软件安全专家。看雪论坛Android安全版版主;安卓巴士开发交流版版主。
      对Android软件与系统安全有狂热的爱好和独到的见解,对Android系统的全部源代码进行过深入地研究和分析。逆向分析实战经验丰富。
      在国内信息安全杂志上发表过多篇有价值的软件安全文章,目前就职于国内某Android开发企业,常年混迹于看雪论坛(ID非虫)。
  • 目录:
    第1章Android程序分析环境搭建1.1Windows分析环境搭建1.1.1安装JDK1.1.2安装AndroidSDK1.1.3安装AndroidNDK1.1.4Eclipse集成开发环境1.1.5安装CDT、ADT插件1.1.6创建AndroidVirtualDevice1.1.7使用到的工具1.2Linux分析环境搭建1.2.1本书的Linux环境1.2.2安装JDK1.2.3在Ubuntu上安装AndroidSDK1.2.4在Ubuntu上安装AndroidNDK1.2.5在Ubuntu上安装Eclipse集成开发环境1.2.6在Ubuntu上安装CDT、ADT插件1.2.7创建AndroidVirtualDevice1.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章进入AndroidDalvik虚拟机3.1Dalvik虚拟机的特点——掌握Android程序的运行原理3.1.1Dalvik虚拟机概述3.1.2Dalvik虚拟机与Java虚拟机的区别3.1.3Dalvik虚拟机是如何执行程序的3.1.4关于Dalvik虚拟机JIT(即时编译)3.2Dalvik汇编语言基础为分析Android程序做准备3.2.1Dalvik指令格式3.2.2DEX文件反汇编工具3.2.3了解Dalvik寄存器3.2.4两种不同的寄存器表示方法——v命名法与p命名法3.2.5Dalvik字节码的类型、方法与字段表示方法3.3Dalvik指令集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.4Dalvik指令集练习——写一个Dalvik版的HelloWorld3.4.1编写smali文件3.4.2编译smali文件3.4.3测试运行3.5本章小结第4章Android可执行文件4.1Android程序的生成步骤4.2Android程序的安装流程4.3dex文件格式4.3.1dex文件中的数据结构4.3.2dex文件整体结构4.3.3dex文件结构分析4.4odex文件格式4.4.1如何生成odex文件4.4.2odex文件整体结构4.4.3odex文件结构分析4.5dex文件的验证与优化工具dexopt的工作过程4.6Android应用程序另类破解方法4.7本章小结第5章静态分析Android程序5.1什么是静态分析5.2快速定位Android程序的关键代码5.2.1反编译apk程序5.2.2程序的主Activity5.2.3需重点关注的Application类5.2.4如何定位关键代码——六种方法5.3smali文件格式5.4Android程序中的类5.4.1内部类5.4.2监听器5.4.3注解类5.4.4自动生成的类5.5阅读反编译的smali代码5.5.1循环语句5.5.2switch分支语句5.5.3try/catch语句5.6使用IDAPro静态分析Android程序5.6.1IDAPro对Android的支持5.6.2如何操作5.6.3定位关键代码——使用IDAPro进行破解的实例5.7恶意软件分析工具包——Androguard5.7.1Androguard的安装与配置5.7.2Androguard的使用方法5.7.3使用Androguard配合Gephi进行静态分析5.7.4使用androlyze.py进行静态分析5.8其他静态分析工具5.9阅读反编译的Java代码5.9.1使用dex2jar生成jar文件5.9.2使用jd-gui查看jar文件的源码5.10集成分析环境——santoku5.11本章小结第6章基于Android的ARM汇编语言基础——逆向原生!6.1Android与ARM处理器6.1.1ARM处理器架构概述6.1.2ARM处理器家族6.1.3Android支持的处理器架构6.2原生程序与ARM汇编语言——逆向你的原生HelloARM6.2.1原生程序逆向初步6.2.2原生程序的生成过程6.2.3必须了解的ARM知识6.3ARM汇编语言程序结构6.3.1完整的ARM汇编程序6.3.2处理器架构定义6.3.3段定义6.3.4注释与标号6.3.5汇编器指令6.3.6子程序与参数传递6.4ARM处理器寻址方式6.4.1立即寻址6.4.2寄存器寻址6.4.3寄存器移位寻址6.4.4寄存器间接寻址6.4.5基址寻址6.4.6多寄存器寻址6.4.7堆栈寻址6.4.8块拷贝寻址6.4.9相对寻址6.5ARM与Thumb指令集6.5.1指令格式6.5.2跳转指令6.5.3存储器访问指令6.5.4数据处理指令6.5.5其他指令6.6用于多媒体编程与浮点计算的NEON与VFP指令集6.7本章小结第7章AndroidNDK程序逆向分析7.1Android中的原生程序7.1.1编写一个例子程序7.1.2如何编译原生程序7.2原生程序的启动流程分析7.2.1原生程序的入口函数7.2.2main函数究竟何时被执行7.3原生文件格式7.4原生C程序逆向分析7.4.1原生程序的分析方法7.4.2for循环语句反汇编代码的特点7.4.3if...else分支语句反汇编代码的特点7.4.4while循环语句反汇编代码的特点7.4.5switch分支语句反汇编代码的特点7.4.6原生程序的编译时优化7.5原生C++程序逆向分析7.5.1C++类的逆向7.5.2AndroidNDK对C++特性的支持7.5.3静态链接STL与动态链接STL的代码区别7.6AndroidNDKJNIAPI逆向分析7.6.1AndroidNDK提供了哪些函数7.6.2如何静态分析AndroidNDK程序7.7本章小结第8章动态调试Android程序8.1Android动态调试支持8.2DDMS的使用8.2.1如何启动DDMS8.2.2使用LogCat查看调试信息8.3定位关键代码8.3.1代码注入法——让程序自己吐出注册码8.3.2栈跟踪法8.3.3MethodProfiling8.4使用AndBug调试Android程序8.4.1安装AndBug8.4.2使用AndBug8.5使用IDAPro调试Android原生程序8.5.1调试Android原生程序8.5.2调试Android原生动态链接库8.6使用gdb调试Android原生程序8.6.1编译gdb与gdbserver8.6.2如何调试8.7本章小结第9章Android软件的破解技术9.1试用版软件9.1.1试用版软件的种类9.1.2实例破解——针对授权KEY方式的破解9.2序列号保护9.3网络验证9.3.1网络验证保护思路9.3.2实例破解——针对网络验证方式的破解9.4In-appBilling(应用内付费)9.4.1In-appBilling原理9.4.2In-appBilling破解方法9.5GooglePlayLicense保护9.5.1GooglePlayLicense保护机制9.5.2实例破解——针对GooglePlayLicense方式的破解9.6重启验证9.6.1重启验证保护思路9.6.2实例破解——针对重启验证方式的破解9.7如何破解其他类型的Android程序9.7.1MonoforAndroid开发的程序及其破解方法9.7.2QtforAndroid开发的程序及其破解方法9.8本章小结第10章Android程序的反破解技术10.1对抗反编译10.1.1如何对抗反编译工具10.1.2对抗dex2jar10.2对抗静态分析10.2.1代码混淆技术10.2.2NDK保护10.2.3外壳保护10.3对抗动态调试10.3.1检测调试器10.3.2检测模拟器10.4防止重编译10.4.1检查签名10.4.2校验保护10.5本章小结第11章Android系统攻击与防范11.1Android系统安全概述11.2手机ROOT带来的危害11.2.1为什么要ROOT手机11.2.2手机ROOT后带来的安全隐患11.2.3Android手机ROOT原理11.3Android权限攻击11.3.1Android权限检查机制11.3.2串谋权限攻击11.3.3权限攻击检测11.4Android组件安全11.4.1Activity安全及Activity劫持演示11.4.2BroadcastReceiver安全11.4.3Service安全11.4.4ContentProvider安全11.5数据安全11.5.1外部存储安全11.5.2内部存储安全11.5.3数据通信安全11.6ROM安全11.6.1ROM的种类11.6.2ROM的定制过程11.6.3定制ROM的安全隐患11.6.4如何防范11.7本章小结第12章DroidKongFu变种病毒实例分析12.1DroidKongFu病毒介绍12.2配置病毒分析环境12.3病毒执行状态分析12.3.1使用APIMonitor初步分析12.3.2使用DroidBox动态分析12.3.3其他动态分析工具12.4病毒代码逆向分析12.4.1Java层启动代码分析12.4.2Native层启动代码分析12.4.3Native层病毒核心分析12.5DroidKongFu病毒框架总结12.6病毒防治12.7本章小结……
查看详情
12
好书推荐 / 更多
Android软件安全与逆向分析
野猪渡河
张贵兴 著
Android软件安全与逆向分析
东方故事集(插图本)
[法]玛格丽特·尤瑟纳尔
Android软件安全与逆向分析
我和我的命(梁晓声新作)
梁晓声
Android软件安全与逆向分析
当你起航前往伊萨卡:卡瓦菲斯诗集
[希腊]C. P. 卡瓦菲斯 著;黄灿然 译
Android软件安全与逆向分析
在喧嚣和寂静之间
[波]维斯瓦娃·希姆博尔斯卡 著;林洪亮 译
Android软件安全与逆向分析
没有男人的女人们 没有女人的男人们(新丝路文库)
[伊朗]沙赫尔努希·帕尔西普尔 著;穆宏燕 王莹
Android软件安全与逆向分析
中美相遇:大国外交与晚清兴衰(1784-1911)
王元崇 著
Android软件安全与逆向分析
人文与社会译丛:自足的世俗社会
菲尔·朱克曼 著;杨靖 译
Android软件安全与逆向分析
汗青堂丛书071·洪水与饥荒:1938至1950年河南黄泛区的战争与生态
穆盛博;亓民帅;林炫羽
Android软件安全与逆向分析
新民说·贝克德意志史I:皇帝、改革者与政治家(全7册)
[德]马提亚斯·贝歇尔 著;任伊乐 译
Android软件安全与逆向分析
我们这一帮(菲利普·罗斯全集)
菲利普·罗斯 著
Android软件安全与逆向分析
多元宇宙是什么关于宇宙起源的新故事
亚历克斯·维连金 著