前言
上次DDCTF结束后,和BinCrack师傅交流,他提到用了自己编译的安卓内核,直接修改源码更改了TracerPID,之后在国赛也遇到了对status的检测,虽然可以修改内存绕过(ref 4),但是还是想试一试把内核patch掉。查阅了很多资料后,大概有三种方法:
1.修改源码,重新编译内核 (ref 2)
2.逆向修改内核文件,patch二进制文件
3.hook fopen 函数,检测/proc/pid/status调用 (ref 3)
比较了几种方法的工作量和自己的基础知识(并没有),选择了第二种方法,以看雪的一篇文章最为典型,但由于机型和版本的区别,遇到了几个坑,找到了一个较为通用的方法。
以下工作基于samsung note3 9008,armeabi-v7a2,第三方官改rom,5.0,twrp rec
原文同时保存在blog
准备工作
boot.img提取
首先确保有root权限
先找到目录
将boot导出为boot.img
dd if=/dev/block/mmcblk0p14 of=/data/local/boot.img
adb pull /data/local/boot.img boot.img
准备bootimg-too