Android 软件安全与逆向分析

本书特色

[

  编辑的话
  每一本书的诞生,都有让人记住的事情。在这本书的出版中,我印象深刻的是三点:
  一,作者丰生强在**次给我交来样稿时,其粗糙不规范的写书格式和读起来不是那么顺溜的语言表达让我囧了一下,我耐心的(也或许是有些耐着性子的?)在qq上边截图边详细地告诉了他有哪些地方的格式被他忽略了,有哪些地方的话说得不够清楚。

  我说完后,他说他会认真修改好后再次给我发来。但说实话,我心里没指望他**次就能把格式给改好,因为对于**次写书的作者来说,这种情况几乎不曾出现过。我做了继续指导第3、4次的心理准备。让我没想到的是,几天后他第二次交来的稿件就相当靓仔,让我多少有些不相信自己的眼睛,格式规范美观,语言流畅清楚,很难相信这是同一个人仅相隔几天后的作品。他跟我说他是一个字一个字地来阅读和修改每句话的。

  二,他是很少的按时且保质保量完成书稿的。对于作者,不管水平高低,大多都擅长干一件事情——拖稿,而策划编辑不得不被迫干另一件事情——催稿。但丰生强以实际行动打破了这一魔咒,他努力工作,在合同规定的期限内按时交来了全稿。作为对作者拖稿见怪不怪的一名策划编辑来说,纵然不至于说是老泪纵横吧,那也是感触良多啊。

  但从另一角度说,那些能完全视合同交稿期限为无物的作者也着实让人不敢小觑,这得有多强大的心理素质才能做到这一点呢,就这么心平气地跨过了*后期限。真心让人纠结。

  三,在整个写作过程中,在谈及技术时,丰生强所表现出的那些热情、专注和乐观。我一直信奉的一点是,如果一个作者不能在他所钻研的领域体会到乐趣和幸福,那这样的作者写出来的东西是不值得一读的。好的内容就像好的食材,而那份热情和乐趣则是烹饪的手法。

  现在,书已经打开,希望你会喜欢。
  本书策划编辑 陈冰
   2013年1月15日

]

内容简介

[

  《android软件安全与逆向分析》由浅入深、循序渐进地讲解了android
系统的软件安全、逆向分析与加密解密技术。包括android软件逆向分析和系统安全方面的**知识及概念、如何静态分析android
软件、如何动态调试android 软件、android 软件的破解与反破解技术的探讨,以及对典型android
病毒的全面剖析。
  《android软件安全与逆向分析》适合所有android 应用开发者、android 系统开发工程师、android
系统安全工作者阅读学习。

]

作者简介

[

  丰生强(网名非虫),Android软件安全专家。看雪论坛Android安全版版主;安卓巴士开发交流版版主。
  对Android软件与系统安全有狂热的爱好和独到的见解,对Android系统的全部源代码进行过深入地研究和分析。逆向分析实战经验丰富。

  在国内信息安全杂志上发表过多篇有价值的软件安全文章,目前就职于国内某Android开发企业,常年混迹于看雪论坛(ID非虫)。

]

目录

第1章  android程序分析环境搭建1.1  windows分析环境搭建1.1.1  安装jdk1.1.2  安装android sdk1.1.3  安装android ndk1.1.4  eclipse集成开发环境1.1.5  安装cdt、adt插件1.1.6  创建android virtual device1.1.7  使用到的工具1.2  linux分析环境搭建1.2.1  本书的linux环境1.2.2  安装jdk1.2.3  在ubuntu上安装android sdk1.2.4  在ubuntu上安装android ndk1.2.5  在ubuntu上安装eclipse集成开发环境1.2.6  在ubuntu上安装cdt、adt插件1.2.7  创建android virtual device1.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 world3.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  程序的主activity5.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  switch分支语句5.5.3  try/catch语句5.6  使用ida pro静态分析android程序5.6.1  ida pro对android的支持5.6.2  如何操作5.6.3  定位关键代码–使用ida pro进行破解的实例5.7  恶意软件分析工具包–androguard5.7.1  androguard的安装与配置5.7.2  androguard的使用方法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.1  android与arm处理器6.1.1  arm处理器架构概述6.1.2  arm处理器家族6.1.3  android支持的处理器架构6.2  原生程序与arm汇编语言–逆向你的原生hello arm6.2.1  原生程序逆向初步6.2.2  原生程序的生成过程6.2.3  必须了解的arm知识6.3  arm汇编语言程序结构6.3.1  完整的arm汇编程序6.3.2  处理器架构定义6.3.3  段定义6.3.4  注释与标号6.3.5  汇编器指令6.3.6  子程序与参数传递6.4  arm处理器寻址方式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.5  arm与thumb指令集6.5.1  指令格式6.5.2  跳转指令6.5.3  存储器访问指令6.5.4  数据处理指令6.5.5  其他指令6.6  用于多媒体编程与浮点计算的neon与vfp指令集6.7  本章小结第7章  android ndk程序逆向分析7.1  android中的原生程序7.1.1  编写一个例子程序7.1.2  如何编译原生程序7.2  原生程序的启动流程分析7.2.1  原生程序的入口函数7.2.2  main函数究竟何时被执行7.3  原生文件格式7.4  原生c程序逆向分析7.4.1  原生程序的分析方法7.4.2  for循环语句反汇编代码的特点7.4.3  if…else分支语句反汇编代码的特点7.4.4  while循环语句反汇编代码的特点7.4.5  switch分支语句反汇编代码的特点7.4.6  原生程序的编译时优化7.5  原生c++程序逆向分析7.5.1  c++类的逆向7.5.2  android ndk对c++特性的支持7.5.3  静态链接stl与动态链接stl的代码区别7.6  android ndk jni api逆向分析7.6.1  android ndk提供了哪些函数7.6.2  如何静态分析android ndk程序7.7  本章小结第8章  动态调试android程序8.1  android动态调试支持8.2  ddms的使用8.2.1  如何启动ddms8.2.2  使用logcat查看调试信息8.3  定位关键代码8.3.1  代码注入法–让程序自己吐出注册码8.3.2  栈跟踪法8.3.3  method profiling8.4  使用andbug调试android程序8.4.1  安装andbug8.4.2  使用andbug8.5  使用ida pro调试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.4  in-app billing(应用内付费)9.4.1  in-app billing原理9.4.2  in-app billing破解方法9.5  google play license保护9.5.1  google play license保护机制9.5.2  实例破解–针对google play license方式的破解9.6  重启验证9.6.1  重启验证保护思路9.6.2  实例破解–针对重启验证方式的破解9.7  如何破解其他类型的android程序9.7.1  mono for android开发的程序及其破解方法9.7.2  qt for android开发的程序及其破解方法9.8  本章小结第10章  android程序的反破解技术10.1  对抗反编译10.1.1  如何对抗反编译工具10.1.2  对抗dex2jar10.2  对抗静态分析10.2.1  代码混淆技术10.2.2  ndk保护10.2.3  外壳保护10.3  对抗动态调试10.3.1  检测调试器10.3.2  检测模拟器10.4  防止重编译10.4.1  检查签名10.4.2  校验保护10.5  本章小结第11章  android系统攻击与防范11.1  android系统安全概述11.2  手机root带来的危害11.2.1  为什么要root手机11.2.2  手机root后带来的安全隐患11.2.3  android手机root原理11.3  android权限攻击11.3.1  android权限检查机制11.3.2  串谋权限攻击11.3.3  权限攻击检测11.4  android组件安全11.4.1  activity安全及activity劫持演示11.4.2  broadcast receiver 安全11.4.3  service安全11.4.4  content provider安全11.5  数据安全11.5.1  外部存储安全11.5.2  内部存储安全11.5.3  数据通信安全11.6  rom安全11.6.1  rom的种类11.6.2  rom的定制过程11.6.3  定制rom的安全隐患11.6.4  如何防范11.7  本章小结第12章  droidkongfu变种病毒实例分析12.1  droidkongfu病毒介绍12.2  配置病毒分析环境12.3  病毒执行状态分析12.3.1  使用apimonitor初步分析12.3.2  使用droidbox动态分析12.3.3  其他动态分析工具12.4  病毒代码逆向分析12.4.1  java层启动代码分析12.4.2  native层启动代码分析12.4.3  native层病毒核心分析12.5  droidkongfu病毒框架总结12.6  病毒防治12.7  本章小结

封面

Android 软件安全与逆向分析

书名:Android 软件安全与逆向分析

作者:丰生强 著

页数:407

定价:¥69.0

出版社:人民邮电出版社

出版日期:2013-02-01

ISBN:9787115308153

PDF电子书大小:66MB

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注