The quiter you become,the more you are able to hear!

Author: geneblue

Blog: https://geneblue.github.io/

0X01 前言

内核驱动是漏洞的高发区,了解Android驱动代码的编写是分析、利用驱动漏洞的基础。本文以一个“hello”驱动为例,简单介绍内核驱动编写、编译的基本过程,包括内核模块的内建编译和动态加载方式的编译。

Read more »

Author: geneblue

Blog: https://geneblue.github.io/

0X01 PXN技术介绍

PXN是Privileged eXecute Never的缩写,意为非特权执行,简单点说PXN是ARM平台下的一项内核保护措施,该措施的目的是阻止内核执行用户态代码,保证内核的执行流程不会被劫持到用户空间。

Read more »

Author: geneblue

Blog: https://geneblue.github.io/

0X01 环境

Device: Nexus 5
OS Version: Android4.4.4 KTU84P
Kernel Version: 3.4.0

0X02 内核提取

Android 内核文件存放在boot分区,先在设备中找到boot分区存放的位置:

adb shell
su
cd /dev/block/platform/msm_sdcc.1/by-name
ls -l boot
Read more »

Author: geneblue

Blog: https://geneblue.github.io/

0X01 前言

研究Android底层或漏洞方面的知识,编译调试内核源码是必不可少的。这篇文章介绍内核编译调试的基本步骤。

0X02 环境

Android开发环境:SDK,NDK
PC OS:Ubuntu 14.04 LTS 64bit
Kernel Source:goldfish3.4   
Android Source: android-4.4.4_r1
Read more »

Author: geneblue

Blog: https://geneblue.github.io/

本章主要作为JNI函数的参考手册。这里提供完整的JNI函数列表,也提供JNI函数表的设计。

注意“必须”这个词常常描述对JNI开发人员的限制。如,当你看到一个JNI函数“必须”接收一个非空的对象时,你就要确保NULL值不会被传递到该JNI函数。所以,该JNI函数的实现是不需要执行NULL值检查的。

Read more »