自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

七月冷雨

Get your hands dirty!

原创 Groovy开发环境搭建

一 Groove SDK 安装 1.从官网下载Groove SDK包:http://www.groovy-lang.org/download.html, 注意Groove是基于JVM的,所以首先安装JDK 解压目录 配置环境变量 GROOVY_HOME = G:\Progr...

2019-03-11 18:39:56 212 0

原创 java动态代理解析

一、Java创建动态代理对象步骤 java动态代理创建对象的过程为如下步骤: 1. 通过实现InvocationHandler接口创建自己的调用处理器。 调用处理器实现InvocationHandler接口的invoke方法。代理类的方法调用会将代理对象、调用方法的Method对象、方法的参...

2018-04-13 14:14:10 173 0

原创 java编程思想 第 10 章 内部类

将一个类的定义放在另一类的定义内部,这就是内部类 一、 创建内部类 把内部类的定义置于外围类的里面: //: innerclasses/Parcel1.java // Creating inner classes. public class Parcel1 { class Co...

2018-04-12 16:17:13 191 0

原创 java编程思想 第 6 章 访问权限控制

更新类库时为了让开发人员知道哪些类是被其它类引用的,不能被修改而引人了访问权限控制。 public > protect >(默认) > private 一、包:库单元 包内包含一组类、它们在单一的名称空间下被组织到了一起: java.utils...

2018-04-10 17:27:58 244 0

原创 java核心技术 第三章 Java 基本程序结构

3.1 简单Java程序 public class FirstSample { public static void main(String[] args) { System.out.println("We will not use Hello,Worl...

2018-04-09 19:37:47 140 0

原创 java核心技术 第四章 对象与类

4.1 面向对象概述 面向对象层序设计(OOP),Java是完全面向对象。 面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。 面向对象将数据放在第一位。 4.1.1 类 类(class)是构造对象的模板或蓝图。由类构造(construct)对象的过...

2018-04-09 19:33:31 239 0

转载 AppTheme属性设置集合

作者:Wing_Li 链接:http://www.jianshu.com/p/bc38d6a15809 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现在新建一个项目基本都会在 style.xml 设置基础的 AppTheme,但是系统的给提供的设置属性又比...

2017-12-05 22:32:18 569 0

原创 zygote详解

在init进程详解的一章中,我们知道init.rc文件中的zygote启动脚本命令是service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class main ...

2017-11-30 11:29:53 352 0

原创 Init 进程详解

Android 内核加载完成后,就会启动init进程,init进程是Android系统用户空间的第一个进程。init程序放在系统根目录下,init进程代码位于源码的目录“system/core/init”下面。下面我们来分析init进程的启动过程1. 分析入口函数进程init入口函数是main,具...

2017-11-13 11:16:13 5314 0

翻译 Android Android.mk 文件语法详解

一、Android.mk简介二、参考文章: http://www.cnblogs.com/wainiwann/p/3837936.html http://blog.sina.com.cn/s/blog_602f8770010148ce.html http://blog.csdn.net/h...

2017-10-11 15:29:10 179 0

原创 Android NDK 编程常见错误收集

1.错误提示: undefined reference to '__android_log_write'解决方法: 在Android.mk文件中引入 liblog库。LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

2017-10-10 22:12:39 332 1

原创 Android JNI 分析

本文我们将分析Android的jni机制。一、JNI 概述JNI 的全称是 Java Native Interface, 中文名称 “Java本地调用接口”, JNI标准是Java平台的一部分,它允许Java代码能够和其它语言写的代码进行交互。出现JNI技术有以下原因: Java语言平台无关,但执...

2017-09-21 16:18:01 243 0

原创 Android View事件分发机制 三 (Activity)

在上面两篇的分析中,我们知道View中的事件是由ViewGroup组件分发的,但是根ViewGroup又是由Activity承载的,所以这次我们探讨Actitity与事件分发机制的关系。

2017-09-15 16:28:50 149 0

原创 Android View事件分发机制 二(ViewGroup)

在上篇文章中,我们讨论了View 的事件分发机制。这篇文章我们讨论布局控件 ViewGroup的事件分发机制。ViewGroup继承自View组件。一、小例子分析这次由于要讨论布局控件ViewGroup,所以这次我们重写Button、LinearLayout两个控件。自定义Button类publi...

2017-09-12 14:23:02 198 0

原创 Android Studio Gradle相关资料汇总

1.Android studio Gradle手动更新官网:https://gradle.org/release-candidate/ 各版本下载地址:http://services.gradle.org/distributions/

2017-09-08 15:55:18 172 2

原创 Android Studio 工具错误汇总

1. Gradle version 2.2 is required. Current version is 2.10解决方法:1 . Open gradle-wrapper.properties2 . Change this line: distributionUrl=https\:/...

2017-08-29 22:08:36 185 0

原创 Android Studio 快捷键汇总

导航到工具窗口1.[Alt] + 1 打开Project工具窗口 2.[Alt] + 2 打开 Favorate 工具窗口 3.[Alt] + 7 打开Structure工具窗口 4.[Shift] + 上箭头 从光标处向上选择 5.[Shift] + A 全选 6.[S...

2017-08-29 22:02:05 139 0

原创 Android View事件分发机制 一(View)

下面我们来讨论Android事件分发机制.一、点击事件小例子分析为了分析安卓事件分发机制,我们先分析一个小例子。项目名叫做ClickExample1.下载地址:1.项目源码界面如下: 布局文件如下,布局中1个LinearLayout中有1个Button按钮。<?xml version=...

2017-08-20 18:03:22 194 0

原创 IDA 动态调试Android SO .init .init_array JNI_Onload总结

在安卓脱壳过程中,经常需要用ida动态调试so,并且在解密代码执行前下断点,下面介绍用IDA在Android so文件的.init、.init_array上和JNI_OnLoad处下断点方法。我们以自己编写的一个小程序initTest.apk为例,该apk实现了在.init、.init_array...

2017-08-03 11:25:23 1202 0

原创 Android NDK error收集

error: undefined reference to ‘__android_log_print’ 解决办法:在Android.mk 文件中添加下面的log模块 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

2017-08-01 20:53:28 186 0

原创 Andorid so加载流程图(4.4.4_r1)

下面是Android 4.4.4_r1 版本的so加载流程图:

2017-08-01 16:02:39 358 1

原创 ROM定制修改镜像

在ROM定制中,通常需要修改 system.img、userdata.img 、boot.img 、recovery.img这四个镜像文件。 一、修改系统镜像(system.img) 对于system.img文件,通常使用 unyaffs命令进行解压。unyaffs 源码文件地址 : ...

2017-07-28 22:13:52 4736 3

原创 Android系统su命令源码分析

这篇文章将介绍Android 4.4.4_r1 系统源码中自带的 su命令源码。su二进行值文件一般放在Android 设备中的/system/bin 目录或/system/xbin 目录中,我们在Android 设备中的shell命令窗口中执行su 命令,当前的shell命令窗口便可获得roo...

2017-07-16 15:27:45 2735 0

原创 三、Android系统内核编译及刷机实战 (修改反调试标志位)

前言在 二、Android系统源码编译及刷机实战 一文中,我们成功编译了Android 4.4.4_r1源码并刷入系统了 Nexus 5 设备,下面是设置界面的信息。上面显示的内核版本信息是3.4.0-gd59db4e,内核的编译时间是Mon Mar 17 15:16:36 PDT 2014,也就...

2017-06-18 22:25:33 12749 0

原创 二、Android系统源码编译及刷机实战

在Android系统源码下载实战 一文中,我们配置好了编译环境以及下载好了系统源码,下面我们我们来实战系统源码的编译。Google官方教程https://source.android.com/source/building一、下载专有的二进制文件目前网络上的中文教程以及出版的书籍几乎都是直接编译A...

2017-06-15 13:27:44 14295 4

原创 NEXUS 5 工厂镜像刷机教程及刷机包目录解析

下面我们来介绍NEXUS 5 工厂镜像刷机教程.一、下载官方最新Android SDK Platform-Tools刷机工具和工厂镜像Android SDK Platform-Tools刷机工具官方地址:https://developer.android.com/studio/releases/p...

2017-06-02 12:20:23 4543 0

原创 Ubuntu 下JDK的安装与环境配置

在 Ubuntu 64 12.4 位操作系统下安装jdk-6u45-linux-x64.bin文件一、复制JDK到安装目录1.假设JDK安装文件放在桌面,我们要安装的目录为:/usr/local/java。 我们先在 /usr/local/目录下创建java文件夹:aosp444@aosp444...

2017-05-30 13:09:37 2887 0

原创 一、Android系统源码下载实战

最近买了个Nexus 5 手机准备学习android4.4.4源码。Nexus 5 刷入从第三方下载的ROM后,总是推送各种第三方APP,于是自己打算下载编译一次官方的源码。一、编译环境搭建1.官方推荐环境介绍关于Android各个版本的编译环境的搭建,大家可以参考我去年翻译的Android 官方...

2017-05-30 12:25:24 10341 2

转载 Java 多线程安全之 Atomic

一、 Atomic类简介 在Java.util.concurrent.atomic包下,有AtomicBoolean , AtomicInteger, AtomicLong, AtomicReference等类,它们的基本特性就是在多线程环境下,执行这些类实例包含的方法时,具有排他性,即当某个线...

2017-05-29 16:07:44 419 0

翻译 密码学之Padding

本文参考自:https://en.wikipedia.org/wiki/Padding_(cryptography)一、Padding简介在书面语中,明文经常以可预测的方式开始和结束。例如:尊敬的、此敬等等。为了防止已知明文攻击,随机长度的填充来防止攻击者知道明文的长度。二、Padding在对称加...

2017-04-08 11:17:00 1715 0

原创 linux/android进程的模块信息获取

本文参考自腾讯游戏安全实验室,感谢腾讯游戏安全实验室的技术分享,如有侵权,请联系我@@linux进程空间中有较多的模块信息,模块信息一般包括:动态加载的链接库和可执行文件的信息。通过遍历模块可获取的进程信息包括:模块基地址和模块路径等。 下面我们以HelloWord 程序来讲讲解linux上进程...

2017-04-04 11:29:03 2877 0

原创 动态链接之可执行文件的装载与进程

一、进程的虚拟地址空间 程序 是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件。 进程 是一个动态的概念,它是程序运行时的一个过程。 每个进程被运行起来以后,它将有自己独立的虚拟地址空间(Viretual Address),虚拟地址空间的大小由CPU的位数决定。32位的硬件平...

2017-04-04 10:36:47 254 0

原创 Android Ptrace 注入

由于安卓采用的是修改后的linux内核,所以linux上的很多注入技术都可以用于安卓。ptrace远程注入技术便是一种。现在我们将实现对一款游戏进行注入。该例子是腾讯游戏安全实验室提供的,再此表示感谢!如有侵权的话,希望联系我。 一、Ptrace函数介绍 Ptrace注入技术主要使用的是l...

2017-04-04 10:35:38 6296 3

原创 静态链接之静态链接

一、空间与地址分配 如果我们有两个目标文件a.o和b.o,我们用链接器将两个文件链接后输出到可执行文件中ab.o中,输出文件中的空间如何分配给输入文件? 1。按序叠加 最简单的方案就是将输入的目标文件按次序叠加起来。但这样会造成空间的浪费。 2.相似段合并 比较贴近事实的方法是将...

2017-03-23 16:40:39 648 0

原创 Linux Ptrace 详解

一、系统调用操作系统提供一系列系统调用函数来为应用程序提供服务。关于系统调用的详细相关知识,可以查看<<程序员的自我修养》第十二章。 对于x86操作系统来说,用中断命令“int 0x80”来进行系统调用,系统调用前,需要将系统调用号放入到%EAX寄存器中,将系统的参数依次放入到...

2017-03-05 18:59:58 12953 1

转载 Linux源码分析之Ptrace

本文摘自互联网,如有侵权,请联系我。一、函数说明1.函数使用说明名字ptrace – 进程跟踪形式#include <sys/ptrace.h> int ptrace(int request, int pid, int addr, int data); 描述Ptrace 提供了一种父...

2017-03-05 16:44:36 4020 0

原创 系统调用与API

一、系统调用介绍1.什么是系统调用在现代操作系统中,程序运行的时候,本身并没有权利访问多少系统资源,系统有限的资源有可能别多个不同的程序同时访问,为了保护系统资源,让应用程序有能力访问系统资源,每个操作系统都提供了一套接口,以供应用程序使用。这些接口往往通过系统中断来实现。比如Linux使用0x8...

2017-03-01 14:52:39 1230 1

原创 Xposed框架的检测

参考文章:http://d3adend.org/blog/?p=589Xposed和CydiaSubstrate是常用的两款hook框架。其中Xposed能够对java层进行hook,CydiaSubstrate能够对java层和native层进行hook。我们如何检测当前的手机已经安装了相应的框...

2017-02-23 16:40:05 5850 0

原创 Xposed的框架的使用

一、Xposed简介Xposed是一款优秀的android java层 hook 框架。它允许你在不修改apk源码的情况下,通过编写自己的模块来改变apk的行为。它的优点是采用了插件机制,模块能够适用不同版本的框架和rom。模块改变apk行为的操作发生在内存中,对源apk不进行任何修改。你只需要安...

2017-02-16 12:19:06 19972 0

原创 静态链接之目标文件的内容

编译器编译源代码后生成的文件叫做目标文件,目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有调整。一、目标文件的格式现在PC上流行的可执行文件格式(Executable)主要是Windows下的PE(Portable Executable...

2017-01-30 16:50:05 2241 0

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