环境
Redmi K40 Gaming
、MIUI 12.5.8
提取boot.img
查看文件名:
1 | ls -al /dev/block/by-name | grep boot |
提取boot.img
:
1 | dd if=$(readlink /dev/block/by-name/boot_a) of=/sdcard/boot.img |
提取内核
法1 PC
自己编译或者使用affggh/magiskbootkitchen
1 | adb pull /sdcard/boot.img . |
法2 手机
1 | ./magiskboot unpack /sdcard/boot.img |
反编译
使用IDA64
打开kernel
,选择ARM processer
、64-Bit
。
执行Python脚本:
1 | import idc |
然后等待IDA
分析结束。
定位check_version
使用010Editor
搜索字符串disagrees about version of symbol
,复制地址。
在IDA64
中查看交叉引用,定位到的函数即为check_version
Patch
将函数体的第一个跳转Patch为B指令。然后F5,查看返回值是否为1。
例如:CBZ X2, loc_FB8A8
Patch为:B loc_FB8A8
相关代码:
1 | ROM:00000000000FB8A8 loc_FB8A8 ; CODE XREF: sub_FB804+14↑j |
1 | ROM:00000000000FB8D4 loc_FB8D4 ; CODE XREF: sub_FB804+74↑j |