自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (3)
  • 收藏
  • 关注

转载 Android出现“Read-only file system”解决办法

操作设备文件系统上的文件结果遇到"... Read-only file system"。 解决办法: 1. 最简单的,adb remount 2. 不行的话,adb shell su之后将文件系统remount为读写权限: mount -o remount rw /system。出于安全考虑,记得完事后remount回只读: mount -o ro,remount /syst

2017-04-24 20:18:33 1285

设计模式之禅

前 言 第一部分 大旗不挥,谁敢 冲锋—热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 第2章 里氏替换原则 2.1 爱恨纠葛的父子关系 2.2 纠纷不断,规则压制 2.3 最佳实践 第3章 依赖倒置原则 3.1 依赖倒置原则的定义 3.2 言而无信,你太需要契约 3.3 依赖的三种写法 3.4 最佳实践 第4章 接口隔离原则 4.1 接口隔离原则的定义 4.2 美女何其多,观点各不同 4.3 保证接口的纯洁性 4.4 最佳实践 第5章 迪米特法则 5.1 迪米特法则的定义 5.2 我的知识你知道得越少越好 5.3 最佳实践 第6章 开闭原则 6.1 开闭原则的定义 6.2 开闭原则的庐山真面目 6.3 为什么要采用开闭原则 6.4 如何使用开闭原则 6.5 最佳实践 第二部分 我惹了谁— 真刀实枪篇 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象工厂模式的定义 9.3 抽象工厂模式的应用 9.3.1 抽象工厂模式的优点 9.3.2 抽象工厂模式的缺点 9.3.3 抽象工厂模式的使用场景 9.3.4 抽象工厂模式的注意事项 9.4 最佳实践 第10章 模板方法模式 10.1 辉煌工程—制造悍马 10.2 模板方法模式的定义 10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 我是游戏至尊 12.2 代理模式的定义 12.3 代理模式的应用 12.3.1 代理模式的优点 12.3.2 代理模式的应用 12.4 代理模式的扩展 12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 13.3.2 原型模式的使用场景 13.4 原型模式的注意事项 13.4.1 构造函数不会被执行 13.4.2 浅拷贝和深拷贝 13.4.3 clone与final两个冤家 13.5 最佳实践 第14章 中介者模式 14.1 进销存管理是这个样子的吗? 14.2 中介者模式的定义 14.3 中介者模式的应用 14.4 中介者模式的实际应用 14.5 最佳实践 第15章 命令模式 15.1 项目经理也难当 15.2 命令模式的定义 15.3 命令模式的应用 15.3.1 命令模式的优点 15.3.2 命令模式的缺点 15.3.3 命令模式的使用场景 15.4 命令模式的扩展 15.4.1 未讲完的故事 15.4.2 反悔问题 15.5 最佳实践 第16章 责任链模式 16.1 古代妇女的枷锁—“三从四德” 16.2 责任链模式的定义 16.3 责任链模式的应用 16.3.1 责任链模式的优点 16.3.2 责任链模式的缺点 16.3.3 责任链模式的注意事项 16.4 最佳实践 第17章 装饰模式 17.1 罪恶的成绩单 17.2 装饰模式的定义 17.3 装饰模式应用 17.3.1 装饰模式的优点 17.3.2 装饰模式的缺点 17.3.3 装饰模式的应用 17.4 最佳实践 第18章 策略模式 18.1 刘备江东娶妻,赵云他容易吗 18.2 策略模式的定义 18.3 策略模式的应用 18.3.1 策略模式的优点 18.3.2 策略模式的缺点 18.3.3 策略模式的应用 18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展—上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 19.3.3 适配器模式的注意事项 19.4 适配器模式的扩展 19.5 最佳实践 第20章 迭代器模式 20.1 整理项目信息—苦差事 20.2 迭代器模式的定义 20.3 迭代器模式的应用 20.4 最佳实践 第21章 组合模式 21.1 公司的人事架构是这样的吗 21.2 组合模式的定义 21.3 组合模式的应用 21.3.1 组合模式的优点 21.3.2 组合模式的缺点 21.3.3 组合模式的应用 21.3.4 组合模式的注意事项 21.4 组合模式的扩展 21.4.1 真实的组合模式 21.4.2 透明的组合模式 21.4.3 组合模式的遍历 21.5 最佳实践 第22章 观察者模式 22.1 韩非子身边的卧底是谁派来的 22.2 观察者模式的定义 22.3 观察者模式的应用 22.3.1 观察者模式的优点 22.3.2 观察者模式的缺点 22.3.3 观察者模式的应用 22.3.4 观察者模式的注意事项 22.4 观察者模式的扩展 22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面模式的缺点 23.3.3 门面模式的应用 23.4 门面模式的注意事项 23.4.1 一个子系统可以有多个 门面 23.4.2 门面不参与子系统内的 业务逻辑 23.5 最佳实践 第24章 备忘录模式 24.1 如此追女孩子,你还不乐 24.2 备忘录模式的定义 24.3 备忘录模式的应用 24.3.1 备忘录模式的应用 24.3.2 备忘录模式的注意事项 24.4 备忘录模式的扩展 24.4.1 clone方式的备忘录 24.4.2 多状态的备忘录模式 24.4.3 多备份的备忘录 24.4.4 封装得更好一点 24.5 最佳实践 第25章 访问者模式 25.1 员工的隐私何在? 25.2 访问者模式的定义 25.3 访问者模式的应用 25.3.1 访问者模式的优点 25.3.2 访问者模式的缺点 25.3.3 访问者模式的应用 25.4 访问者模式的扩展 25.4.1 统计功能 25.4.2 多个访问者 25.4.3 双分派 25.5 最佳实践 第26章 状态模式 26.1 城市的纵向发展功臣—电梯 26.2 状态模式的定义 26.3 状态模式的应用 26.3.1 状态模式的优点 26.3.2 状态模式的缺点 26.3.3 状态模式的应用 26.3.4 状态模式的注意事项 26.4 最佳实践 第27章 解释器模式 27.1 四则运算你会吗 27.2 解释器模式的定义 27.3 解释器模式的应用 27.3.1 解释器模式的优点 27.3.2 解释器模式的缺点 27.3.3 解释器模式使用的场景 27.3.4 解释器模式的注意事项 27.4 最佳实践 第28章 享元模式 28.1 内存溢出,司空见惯 28.2 享元模式的定义 28.3 享元模式的应用 28.3.1 享元模式优点和缺点 28.3.2 享元模式的应用 28.4 享元模式的扩展 28.4.1 线程安全的问题 28.4.2 性能平衡 28.5 最佳实践 第29章 桥梁模式 29.1 我有一个梦想…… 29.2 桥梁模式的定义 29.3 桥梁模式的应用 29.3.1 桥梁模式的优点 29.3.2 桥梁模式的应用 29.3.3 桥梁模式的注意事项 29.4 最佳实践 第三部分 谁的地盘谁做主—模式PK篇 第30章 创建类模式大PK 30.1 工厂方法模式VS建造者模式 30.1.1 按工厂方法建造超人 30.1.2 按建造者模式建造超人 30.1.3 最佳实践 30.2 抽象工厂模式VS建造者模式 30.2.1 按抽象工厂模式生产车辆 30.2.2 按建造者模式生产车辆 30.2.3 最佳实践 第31章 结构类模式大PK 31.1 代理模式VS装饰模式 31.1.1 代理模式 31.1.2 装饰模式 31.1.3 最佳实践 31.2 装饰模式VS适配器模式 31.2.1 按装饰模式描述丑小鸭 31.2.2 按适配器模式实现丑小鸭 31.2.3 最佳实践 第32章 行为类模式大PK 32.1 命令模式VS策略模式 32.1.1 策略模式实现压缩算法 32.1.2 命令模式实现压缩算法 32.1.3 小结 32.2 策略模式VS状态模式 32.2.1 策略模式实现人生 32.2.2 状态模式实现人生 32.2.3 小结 32.3 观察者模式VS责任链模式 32.3.1 责任链模式实现DNS 解析过程 32.3.2 触发链模式实现DNS 解析过程 32.3.3 小结 第33章 跨战区PK 33.1 策略模式VS桥梁模式 33.1.1 策略模式实现邮件发送 33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 33.2.3 最佳实践 33.3 包装模式群PK 33.3.1 代理模式 33.3.2 装饰模式 33.3.3 适配器模式 33.3.4 桥梁模式 33.3.5 最佳实践 第四部分 完美世界— 混编模式 第34章 命令模式+责任链模式 34.1 搬移UNIX的命令 34.2 混编小结 第35章 工厂方法模式+策略模式 35.1 迷你版的交易系统 35.2 混编小结 第36章 观察者模式+中介者模式 36.1 事件触发器的开发 36.2 混编小结 第37章 规格模式 37.1 规格模式的实现 37.2 最佳实践 第38章 MVC框架 38.1 MVC框架的实现 38.1.1 MVC的系统架构 38.1.2 模型管理器 38.1.3 值栈 38.1.4 视图管理器 38.1.5 工具类 38.2 最佳实践 附录:23个设计模式

2014-06-20

Android软件安全与逆向分析(完整版)

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 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

2014-06-20

程序员的数学思维修炼

本书总结并生动地阐述了成为高效的开发人员所需具备的 45个习惯、思想观念和方法,涵盖了软件开发进程、编程和调试工作、开发者态度、项目和团队管理以及持续学习等几个方面。本书适合所有程序员阅读。 本书简明实用、见解深刻,总结了高效程序员在开发过程中的45个个人习惯、思想观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等5个方面积极修炼。通过学习这些内容,养成这些好的习惯,你可以极大地提升自己的编程实力,更快速、更可靠地交付更高质量的软件,从而成为真正的高效程序员。

2014-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除