小文字 吃饭,睡觉,溜狗头


Janus 二元神漏洞测试

背景 12月9号,Andorid对外曝光了一个名为Janus的重量级系统漏洞CVE-2017-13156), 由安全研究公司Guard Square发现。 Janus原意是神话中的二元身,用于描述这个漏洞还真是贴切。 整个漏洞其实建立在文件校验规则之上: 一个文件即是APK,又是DEX,在安装APK和执行阶段的校验规则差异,导致可以在APK头部附加一个恶意DEX来欺骗系统 下面我们从市场上随意下载一个apk来做测试。 测试APK 本文涉及的测试APK,只用于单击研究之用... 更多


OkHttp【三】Call/RealCall源码分析

前言 在OkHttpClient实例化一个请求时,我们使用了newCall方法来构造一个Call对象,并执行。 本文一起分析Call的相关实现逻辑。 /** * Prepares the {@code request} to be executed at some point in the future. */ @Override public Call newCall(Request request) { return RealCall.newRealCall(this, requ... 更多


OkHttp【二】OkHttpClient 源码分析

背景 回顾一下,在最简单的GET请求场景中,我们的程序都做了那些事情? 在不考虑个性化配置的情况下,我们只需三步: 我们首先实例化了一个OkHttpClient,如果有多个请求需要发送,这个类将会做一个单例来复用; 同时我们会构造一个Request实例,用于传入我们的请求参数; 最后通过OkHttpCLient实例,new出一个Call, 并执行(或者丢入异步队列)。 OkHttpClient client = new OkHttpClient(); String ru... 更多


MD5/SHA与进制的表达

背景 日常生活中十进制用的最多,但是编码中二进制和十六进制也是随处可见,在打开各种二进制文件数据时,经常出现十六进制, 同时表示MD5,SHA时也常用到。 Hex 与 bit 从表示范围来讲: 一个16进制数:最多可以表示16=2^4 两个16进制数:最多表示16*16=2^8 一个字节是8位,因此既可以用8位二进制数表示,也可以用2位16进制数表示; 总结一句话,2个十六进制 => 一个字节 MD5 与 Hex 在输出MD5的时候我们一般看到的是一个16进制... 更多


OkHttp 【一】开篇

前言 软件开发领域在不断产生新技术,新框架。作为Android开发者,我们经历了他的巨大演进,从2.1到如今的8.0,系统本身在变化,开源世界也在变化。 过去每个团队在使用自身封装的图片框架,网络框架,如今Picasso,Fresco已经逐步取而代之,甚至Android系统本身也内置了OkHttp的支持。 站在使用者的角度,到最后也只能是使用者,如果要更好理解这些框架背后的技术原理,有必要对其进行深度的源码剖析。 后续分析,将基于如下版本: OkHttp: http://squa... 更多