自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Loyean

曾记否,到中流击水,浪遏飞舟。

  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android ActivityGroup Back键的处理

在使用ActivityGroup时,可以发现,当我们在每个子Activity中覆写了onBackPressed()方法以期望处理back键在不同tab之间的操作后,实际应用中按下back之后并不会调用子Activity中的onBackPressed()而是直接退出程序,实际上按下back之后程序调用了ActivityGroupActivity中的onBackPressed(),所以我们应该

2013-11-13 10:52:46 1621

转载 Android中 android:layout_weight 属性 完美解释

http://www.cnblogs.com/xiaoQLu/archive/2011/08/08/2130328.htmllinearLayout中包含有weight的child时,linearLayout会measure两次:设屏幕宽度为X第一次:button1 的measuredWidth为X, button2也为X (因为用了weight,所以lin

2013-05-23 15:48:44 745

转载 Android程序运行且退出后却不会显示在近期任务里

solution:在AndroidManifest.xml中对应的Activity中找到“android:excludeFromRecents”,把值改为false,或直接去掉该项。e.g.AndroidManifest.xml                  android:name=".FMRadio"                  android:label="

2013-05-22 21:09:39 1295

转载 让ProgressDialog在setCancelable(false)时按返回键可dismiss

最近发现Android4.0系统中ProgressDialog设置为setCancelable(true)时,点击ProgressDialog以外的区域也可以让ProgressDialog dismiss掉。但有时我们不希望是这样的效果,于是将ProgressDialog设置setCancelable(false),再点击ProgressDialog以外的区域就不会出现前面所说的情况了,然而这样以

2013-05-21 21:26:11 1890

原创 在Activity的onResume()方法中更新ListView

描述:今天在做一个功能的时候,从Aactivity跳到Bactivity。由于Bactivity的操作,影响了Aactivity的数据,所以再回到A的时候,需要A能够进行刷新操作。但是默认跳回去的时候,A界面还是上次那个。解决方案:重写Aactivity的onResume()方法,在onResume()方面里进行刷新操作。因为按照activity的生命周期模型,当activ

2013-05-08 01:46:05 5393

转载 Android中RelativeLayout各个属性的含义

android:layout_above="@id/xxx"  --将控件置于给定ID控件之上android:layout_below="@id/xxx"  --将控件置于给定ID控件之下android:layout_toLeftOf="@id/xxx"  --将控件的右边缘和给定ID控件的左边缘对齐android:layout_toRightOf="@id/xxx"  --将控件

2013-05-06 19:43:30 706

转载 setTextSize() 和 getTextSize() 的默认单位

使用如下代码时,发现字号不会变大,反而会变小:size = (int) mText.getTextSize() + 1;mText.setTextSize(size);后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果。这里可以用setTextSize()的另外一种形式,可以指定单位:

2013-05-06 17:18:28 1589

转载 android:scaleType属性解析

ImageView.ScaleType.CENTER|android:scaleType="center" 以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放,当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView的size.当图片小于View 的长宽时,只显示图片的size,不剪裁。ImageView

2013-05-05 16:23:13 867

原创 解决android:layout_marginBottom在RelativeLayout中无效的问题

先看我原来的XML文件:<RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <ImageView

2013-05-01 22:49:33 6838 1

转载 List<Map<String,String>> 输出

Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); List> list = new ArrayList>(); list.add(map); for (Map m : list) { for (String k : m.keySet()) { System

2013-05-01 17:11:32 1260

原创 杂记

May.5SimpleDateFormat 指定时区String pattern = "HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = new Date(3600000); Sy

2013-04-28 21:13:12 696

转载 android中的居中

android:gravity用于设置View组件的对齐方式 android:layout_gravity用于设置Container组件的对齐方式 eg:通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示 时我们设置EditText的android:layout_gravity="center"来

2012-03-08 16:40:58 605

转载 去掉android的屏幕上的title bar

在进行android开发时,每个Activity会默认带上一个title bar用以显示程序名,有时为了扩大屏幕的显示区域需要去掉这个titlebar,去掉屏幕上的title bar有3个方法,第一个方法是在代码去掉title bar在Activity的onCreate中加入如下代码:this.requestWindowFeature(Window.FEATURE_NO_T

2012-01-17 22:13:26 620

Android软件安全与逆向分析pdf

目 录 第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 Plag 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

2013-05-08

空空如也

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

TA关注的人

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