破解官方recovery的签名验证

步骤简述
1.解包recovery.img,
2.反编译/sbin/recovery,用ida64plus
3.在反编译出来的文本中查找:signature

破解官方recovery的签名验证_第1张图片

4.简单的看一下指令流程,CBZ下面是failed提示,则说明不能跳转指令为签名验证失败,把CBZ指令改为相反的CBNZ指令,
当然这里不能直接改,要转到二进制窗口查看,CBZ包含在B1中(根据指令结构,B1不一定完全表示CBZ机器码,这个可以不深究),

 

破解官方recovery的签名验证_第2张图片

查找一下CBNZ指令,大部分都对应16进制:B9,所以把 1改为9,
(另外还有遇到BEQ改为BNE)

 

破解官方recovery的签名验证_第3张图片

应用,

 

破解官方recovery的签名验证_第4张图片

再看签名验证处的指令解析,已经CBZ已经变成CBNZ,

破解官方recovery的签名验证_第5张图片

这样的话签名验证失败,反而会执行后面的刷机操作
5.ida似乎不支持修改后保存,所以用UltraEdit搜索周围的16进制关键字,

 

破解官方recovery的签名验证_第6张图片

破解官方recovery的签名验证_第7张图片

修改B1->B9(其他机器我不知道是不是也是B1,B9)

5.替换原来的recovery,打包回去recovery.img。

你可能感兴趣的:(over)