近来好玩逆向工程鬼子某早期固件的代码
我们知道,早期的一些处理器是没有固件锁读功能的(即使有,也可以读取出来进行逆
向),甚至好多的ROM还都在片部;而且,早期的芯片经过一段时间后,其指令格式也基
本都能公开。
所以,纯属好玩,从业界最适合学习和模仿的TI方案入手,进行逆向工程,结果发现学
习到了反逆向工程(增加逆向工程难度)的思路。一些思路虽然很直观简单,但是回味
一下,觉得也挺好玩的。
例如,TI里的某款早期芯片的固件里,就包含着大量的寄存器隐藏机制。打个比方,假
设我们要访问某个寄存器,其地址是0x1234,类汇编的代码一般都是直接的 ldr reg_a
, 0x1234。但是TI它的做法却是,先去找一个ROM存储区,取出其中的数值(到这已步骤
还没啥,许多编译器也都会自动做到这一点),而这个数值并不是0x1234,而是某个不
那么直观的中间数字,经过一系列转化后,才可以得到0x1234。所以,如果不是非常小
心的耐心分析,根本想不到这里是在操作寄存器0x1234,也就是说,即使你拿到了寄存
器手册,想逆向也需要一番功夫。
此外,TI早期芯片里的固件里的反逆向工程,还有好多技巧,上述只是最最基本的一个
增加逆向难度的技巧而已。