自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dronity的编译和使用

之前按照github上dronity项目对应的介绍编译过一次,后来给忘了。第二次编译的时候花了比较多的时间,mark一下备忘。首先到git clone https://github.com/vitorallo/dronity到本地。可以看到项目中有详细的编译步骤介绍,但是还需要根据自己ndk的环境做一些修改:第一步:进入ndk目录下,我自己的对应/opt/android-ndk-r11

2017-03-10 19:15:37 1108 2

转载 Android:学习AIDL,这一篇文章就够了(下)

前言上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识。强烈建议大家在看这篇博文之前先看一下上一篇博文:Android:学习AIDL,这一篇文章就够了(上)注:文中所有代码均源自上一篇博文中的例子。另:在看这篇博文之前,建议先将上一篇博文中的代码

2016-10-10 15:00:21 784

转载 Android:学习AIDL,这一篇文章就够了(上)

前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转念一想,我辈年轻人自当有一种一往无前的锐气,标题大气一点岂不更好?并且大家都是文明人,总归更多的是理解与补充而不是侮辱与谩骂?所以最终还是厚颜用了这么一个不怎么有耻的标题。好了,接下来进入正题,

2016-10-10 11:12:48 1183

转载 Xposed介绍

随着移动设备硬件能力的提升,Android系统开放的特质开始显现,各种开发的奇技淫巧、黑科技不断涌现,InfoQ特联合《深入理解Android》系列图书作者邓凡平,开设深入理解Android专栏,探索Android从框架到应用开发的奥秘。一、背景Xposed,大名鼎鼎得Xposed,是Android平台上最负盛名的一个框架。在这个框架下,我们可以加载很多插件App,这些插件App可

2016-08-25 15:37:38 2704

原创 adb协议模拟实现静默安装apk

0x0 参考源码https://github.com/tananaev/adblibhttps://github.com/tananaev/rootless-logcat0x1 原理第一步,最重要的,一切的前提:Adb tcpip 5555。连接手机,执行命令后,adb deamon会监听0.0.0.0:5555,通过自己的app和这个5555端口通信,模拟adb消息让de

2016-08-09 14:32:22 3835

原创 谈一谈我的对编码的理解

作为通信出身的我,自然接触过很多的编码方式,在通信领域中,数字信号的收发端信号除了要进行调制解调外,还需要编码和译码。说的通俗点,编解码即就是一种约定的规范,来将人类世界的存在映射到计算机能表示并解译的存在。Nodepad++相信大家都有用过,格式那一栏有ANSI格式编码,UTF-8格式编码,UTF-8无BOM格式编码,UCS-2 Big Endian以及UCS-2 Little Endi

2016-08-01 14:29:30 3249

原创 Android系统crash的几种情况

Android程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的。这里把Android平台程序崩溃的各种类型做一个简述和原因列举。1.ANR(可见ANR):发生场景:应用发生ANR。崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”。         “Force Close”将杀掉发生ANR的应用进程

2016-07-29 10:47:44 3612

转载 android中system_server中的服务概述

System_Server进程运行在system server进程中的服务比较多,这是整个Android框架的基础 Native服务SurfaceFlinger 这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序 Java服务:这部分的服务大部分都有一个

2016-06-27 16:43:57 2492

原创 序列化机制之-Parcel

一.先从Serialize说起         我们都知道Java中的Serialize机制,译成串行化、序列化……,其作用是能将数据对象存入字节流当中,在需要时重新生成对象。主要应用是利用外部存储设备保存对象状态,以及通过网络传输对象等。 二.Android中的新的序列化机制         在Android系统中,定位为针对内存受限的设备,因此对性能要求更高,另外系统中采用了新

2016-06-22 14:46:12 932

转载 从mediaserver入手学习快速理解binder机制

(一) 概述       android的binder机制提供一种进程间通信的方法,使一个进程可以以类似远程过程调用的形式调用另一个进程所提供的功能。binder机制在Java环境和C/C++环境都有提供。    android的代码中,与C/C++的binder包括一些类型和接口的定义和实现,相关的代码在下面这几个文件中:    frameworks\base\include\uti

2016-06-21 19:10:04 1938 1

原创 Android的底层库libutils

第一部分 libutils 概述    libutils 是 Android 的底层库,这个库以 C++ 实现,它提供的 API 也是 C++ 的。 Android 的层次的 C 语言 程序和库,大都基于 libutils 开发。     libutils中的 头文件如下所示: frameworks/base/include/utils libutils 的源文件: fra

2016-06-21 17:13:47 5781 1

转载 Android内存优化之OOM

Android内存优化之OOMSEP 12TH, 2015 | COMMENTSAndroid的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点,这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Goog

2016-06-20 15:11:57 640

原创 IOCTL命令-_IO, _IOR, _IOW, _IOWR 幻数的理解

有一年半时间没有一行一行的写过linux驱动程序了,有的东西会发现遗忘了,今天就当是复习一下吧。在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个

2016-06-20 12:05:16 2047

转载 linux常见漏洞利用技术实践

这篇文章好像被很多人转载,以至于我都不能找到谁的才是原创,因此就不加原创链接了。个人感觉,对于pwn入门的人来说很有启发意义,这套工具,方法理论移植到android平台其实差别不大,android平台现在的安全机制趋于更完善的阶段,因此在做exploit的时候可能遇到的问题会多点,但是起步走的思路和过程是差不多的。如果说还需要补充什么,我觉得在ret2libc之后可以添加rop的介绍,因为其实ro

2016-06-14 11:27:25 10212

原创 Android安全框架认识

根据Android四大框架来解说安全机制  代码安全java不同于C/C++,java是解释性语言,存在代码被反编译的隐患;默认混淆器为proguard,最新版本为4.7; proguard还可用来压缩、优化java字节码,删除无用的类、字段、方法、属性、注释等。配置方法为在Android.mk中设置LOCAL_PROGUARD_FLAG_FILES

2016-06-13 21:29:34 1535

原创 编写poc和exploit的几款常用工具介绍

1.pwntoolspwntools是一个CTF框架和漏洞利用开发库,用Python开发,由rapid设计,旨在让使用者简单快速的编写exploit。pwntools对Ubuntu 12.04和14.04的支持最好,但是绝大多数的功能也支持Debian, Arch, FreeBSD, OSX, 等等。sudo pip install pwntools即可安装

2016-06-12 11:30:00 19410

原创 Linux对内存管理的两篇好文章

https://jaq.alibaba.com/community/art/show?spm=a313e.7916648.0.0.OdxEY9&articleid=315https://jaq.alibaba.com/community/art/show?spm=a313e.7916648.0.0.93g9Yd&articleid=334

2016-06-08 15:53:40 579

原创 利用python快速实现不同机器间文件夹共享

Python有一个比较好用的功能,那就是很方便的实现共享文件夹。首先两台主机都需要安装python,在未建立逻辑连接之前它们是不区分主从机的。例如:现在有两台机器,一台windows和一台linux,现在你想要让linux机器的文件夹被共享,那么1.就在linux机器下的期望被共享的文件夹下执行:python –m SimpleHTTPServer (端口号,可选,默认是8000)

2016-05-25 09:44:42 3452

原创 多台主机鼠键共享工具syngery的配置使用

作为一位程序员,逼格很重要!!!对于大多数开发人员来说,都需要至少两台机器,一般都是windows+linux,因为新换了单位来实习,因此就又得重新干令人挠头的环境搭建。不过大公司就是给力,两台高配的台式机器,我分别安装了windows 7 和ubuntu14.04系统。那么问题来了,办公桌就那么大,上面放置两套鼠键显然很拥挤,于是就认识了synergy。粘自wiki:

2016-05-21 15:30:13 1654

原创 sed-非交互式流编辑器详解

sed是一个非交互式的流编辑器(stream editor)。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行。整个文件像流水一样被逐行处理然后逐行输出。sed一次处理一行内容。处理时,把

2016-05-19 17:46:17 1325

原创 linux下的文件查找命令总结:find、locate、whereis、which

工作中经常会使用到linux的查找命令。比如find、locate、whereis、which在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。建议大家必须掌握find、whereis、which。1. findfind是最常见

2016-05-19 12:59:42 754 3

原创 shell命令-read详解

read命令-p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 和“读文件”深入学习 1、基本读取 read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令 的最简单形式:: #!/bin/bash echo -n "Enter your name:" 

2016-05-19 12:30:17 625

原创 awk命令详解

同样的,每个知识点的学习都是来自项目驱动。今天看了一个开源的框架:dtf下面是关于dtf的介绍:The Android Device Testing Framework ("dtf") is a data collection and analysis framework to help individuals answer the question: "Where are the

2016-05-18 19:45:28 836

转载 租房心经--教你如何租房子

近期一直由于实习需要一直在找房子租,然而种种奇葩经历让人烦躁不已,于是觉得必须要科普一下租房这门学问。万般无奈中看到这篇文章,原作者也是北漂一枚,经历丰富,这篇文章对我来说受益匪浅,对于正要租房的你也绝对值得一读。 一、关于租房的总体注意事项:1. 合租是一件非常令人蛋疼的事情——无论合租者的性别、年龄、性取向。对此,不解释。2. 租房的话,尽量不要找中介。租房3年以来我学会一个道

2016-05-03 20:19:47 8905

转载 Binder设计与实现

binder机制在Android中我们经常会见到,但是本着底层工作者的精神我这几天对它进行了重点学习。不过,由于理解并没有那么深刻,还需要时间和实际相关的工程去消化它,因此我就不做总结了,而是将网上这篇理解比较通俗易懂的文章搬过来分享一下吧。转自:http://www.cnblogs.com/linucos/archive/2012/05/24/2516623.htmlBind

2016-04-22 11:29:53 605

原创 如何在Ubuntu 12.04上安装Android静态分析工具包:Androguard

Androguard是目前大家比较常用的Android静态分析工具,目前最新的版本是1.9。  但是Androguard是通过源码发布的,本身依赖关系很多,安装起来非常复杂。  笔者在Ubuntu 12.04上成功编译安装通过,下面将具体步骤简单叙述一下。  可以从这里下载到Androguard 1.9的源码:https://androguard.googlecode.com/file

2016-04-18 11:19:14 1144

原创 Android Dalvik虚拟机

估计很多人和我一样,在java学习和android学习过程中经常会见到JVM和Dalvik虚拟机这两个名字,特别是由于Dalvik虚拟机,我对其了解一直处于比较片面的状态。没有从远处整体的看过它是一个什么东西,以及为什么会有这样的一个东西出来。可能是为了解决移动设备上软件运行效率的问题,也可能是为了规避与(从jdk下载我们就知道了~)Oracle公司的版权纠纷,Google为Andro

2016-04-13 22:18:27 3424

原创 360移动安全岗位实习生笔试和面试之旅

之前抱着试一试的心态投了360的安全岗位,个人觉得移动安全在未来会有很大的需求量,并且人才比较少,安全圈子本来就很小,安全技术本来价值就很高,所以很多大公司以及真正的黑客很少分享一些安全方面的技术。这些感受是我作为一个脚本小子半年来的感触,毕竟,想要使用别人的代码并不是一件轻松的事情。而且安全岗位的压力是比应用开发大很多的,特别是在一些大型的安全事件产生后,我们必须及时的追踪和关注。做安全

2016-04-13 17:11:39 5235 3

转载 Android中Context详解 ---- 你所不知道的Context

大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中   时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是   因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个

2016-04-12 11:10:08 374

原创 利用select函数实现非阻塞式的socket accept

利用select函数实现非阻塞式的socket accept这个实现是我在阅读Superuser源码的过程中看到的。当时就在想,虽然我们知道select函数的使用方法,为什么我们在适当的地方想不起来使用它呢。看来这些好的习惯需要有意识的去养成。select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句

2016-04-11 22:39:31 2472

原创 Android应用向su申请root权限,以及Superuser进行授权管理的原理浅析

最近研究了好几天su+Superuser的源码,感觉大概梳理通了整个大体的思路框架,mark一下。 一.su和Suepruser进行root授权的处理流程对于su命令行程序在对来自Android应用的Root权限请求处理流程大致如下图所示(因为快要找工作了,为了节约时间花了一副丑到哭的图片):图中Android应用是申请Root权限的申请者,su命令行程序时Root权限拥有者,因su设

2016-04-11 21:34:03 20291 1

原创 linux自旋锁和futex

自 旋锁最初是为了在多处理器系统(SMP)使用而设计的,但是只要考虑到并发问题,单处理器在运行可抢占内核时其行为就类似于SMP。因此,自旋锁对于 SMP和单处理器可抢占内核都适用。可以想象,当一个处理器处于自旋状态时,它做不了任何有用的工作,因此自旋锁对于单处理器不可抢占内核没有意义,实际 上,非抢占式的单处理器系统上自旋锁被实现为空操作,不做任何事情。在Linux下,信号量和线程互斥

2016-04-09 15:32:56 2446

转载 HTTPS原理

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据1. 客户端发起HTTPS请求这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。2. 服务端的配

2016-04-08 20:54:49 393

原创 搜索你的rop链开源工具-ROPgadget

This tool lets you search your gadgets on your binaries to facilitate your ROP exploitation. ROPgadget supports ELF/PE/Mach-O format on x86, x64, ARM, ARM64, PowerPC, SPARC and MIPS architectures. S

2016-04-07 16:15:56 6036

原创 网络相关系列之四:数据解析之SAX方式解析XML数据

一、XML和Json数据的引入:通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器获取数据。不过这个时候就有一个问题,这些数据是以什么格式在网络上传输的呢?一般我们都会在网络上传输一些格式化后的数据,这种数据会有一定的结构规格和语言,当另一方收到数据消息后就可以按照相同的结构规格进行解析,从而取出它想要的那部分内容。在网络上传输数

2016-04-01 16:09:37 897

原创 网络相关系列之三:通过GET和POST方法发送数据

写在最前面:年少的安逸舒适在随着年龄的到来和现实生活的压迫总有一天会全数归还(其实就是《无间道》中那句:“出来混,迟早要还的!“)so fighting!一、GET和POST的对比:在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GET和POST方法。而之前已经讲过了通过GET方法获取数据,今天来学习一下如何分别通过GET和POST获取数据。举个例子

2016-03-31 20:47:43 2714

原创 网络相关系列之二:HTTP请求头与响应头

虽然今天离朋友圈杯摄影展(清明节日)还有三天,但是朋友们已经按耐不住心中的喜悦纷纷开始在朋友圈中展示祖国的大好河山了,这着实也让我心中有点不安分,不过谁让咱是苦逼的程序猿呢...继续mark吧。前面一篇文章中主要介绍了使用HttpClient发送HTTP请求。这篇文章中介绍请求头与响应头的知识。一、HTTP头引入:正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访

2016-03-30 21:51:13 2005

原创 网络相关系列之一:Android中使用HttpClient发送HTTP请求

一、HTTP协议初探:HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Internet上目前使用最广泛的应用层协议,它基于传输层的TCP协议进行通信,HTTP协议是通用的、无状态的协议。这几个名词有一种通俗的解释:通讯协议:双方对话的标准通用的:用了都说好,谁

2016-03-30 16:06:15 936

原创 网络相关系列文章前传

好像之前一直没有写过网络相关的文章,导致有时候分不清所涉及的网络协议是在哪层提供支持的,每天的接触新东西,旧的就容易遗忘和混淆。所以还是那句老话,好记忆力不如烂笔头。就将我已经接触到的网络相关知识做一个简单的总结吧。OSI参考模型OSI参考模型是ISO的建议,它是为了使各层上的协议国际标准化而发展起来的。OSI参考模型全称是开放系统互连参考模型(Open System

2016-03-30 10:48:29 726

转载 Android安全研究经验谈

很显然,Android安全研究方面我还没有能力去谈经验,不过retme大神的经验值得我们大家共同学习和借鉴,于是分享出来。安全研究做什么从攻击角度举例,可以是:对某个模块进行漏洞挖掘的方法,对某个漏洞进行利用的技术,通过逆向工程破解程序、解密数据,对系统或应用进行感染、劫持等破坏安全性的攻击技术等。而防御上则是:查杀恶意应用的方法,检测和防范漏洞利用,为增强系统和第三方应用

2016-03-29 09:14:15 1241

Superuser源码

关于su和Superuser进行root权限获取和管理原理分析的那篇 文章的附件http://blog.csdn.net/koozxcv/article/details/51125046

2016-04-11

空空如也

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

TA关注的人

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