说到“难以**”,其实只要把bootloader代码搞得复杂一些难以理解一些就行了(理论上反汇编之后可以弄清楚代码的所有细节——但是,现在这个世上有几个人有这个能力和耐心去做这种事?)
对于STM32,可以这样干:
1-把bootloader0做得很小,放到Flash的开头,启动后加载到SRAM;
2-bootloader0向服务器请求bootloader1,bootloader1就不是那么小巧了……
3-……
思路就是函数放在一个巨大的虚拟空间里,需要的时候服务器才会把相关片断下载到SRAM里,然后执行;
理论上总可以**,但是足够把**人弄的痛不欲生……
还有一些非技术手段也能让**人头痛不已,例如电脑的开机密码,错三次你就得重启;银**密码,错三次你就得去找齐证件那号排队申请……依此类推,当你的服务器监测到异常的时候,就可以中止该设备的升级,打电话找客户了…… |