破解官方recovery的签名验证


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

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

 

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

 

应用,

 

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

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

 

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM