很早之前就听说过修改内核源码过反调试检测,于是我直接打开小米的 github 上去找内核源码编译,然而小米 12 的源代码开源的并不是很彻底,缺少了一堆东西,还没法编译.-_-
那既然弄不到内核源码来编译,那我逆向你的内核总该可以吧.
下载对应版本的线刷包
用 7z 打开
把 boot.img 提取出来
解包
现在百度到的解包基本上都已经过时或者不可用了,但是没关系,我们可以借助 Magisk 的 magiskboot 来帮忙.
下载 Magisk apk, 用 7z 打开进入 lib 目录
把 libmagiskboot.so 拖出来。注意,这个 libmagiskboot.so 其实是一个可执行文件.
把它改成 magiskboot 即可.
把这个和 boot.img 丢到你手机的 /data/local/tmp 里
1 | ./magiskboot unpack boot.img |
就可以把 kernel 文件解包出来了.
修改
直接用 ida 打开 kernel 文件,shift+f12 搜索
1 | TracerPid |
双击进去查找交叉引用 (快捷键 X), 点进去就看到了代码.
然后把
1 | MOV X2, X22 |
改成
1 | MOV X2, #0 |
就行.
重打包
1 | ./magiskboot repack boot.img |
刷入新的 boot.img
1 | adb reboot fastboot |
最后
本文主要参考了
绕过 Android 内核模块加载验证.
谢谢这位大佬.