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