对于已经成型的设备来讲,想要从外至内的修改其功能一般不是一件简单的事情,更别提很多制作者为了阻挡这样的行为而对作品进行各种各样的加密处理。不过如果作品内部采用的是我们所熟悉的通信方式或协议的话,那么事情还有一线转机!
24C512和它上面的ATTiny45
Igor购买了一只对讲机:宝峰UV-82。这种对讲机使用电脑写入频率,并储存在内部的EEPROM中。原机自带的EEPROM是一片24C64,8192字节存储容量的EEPROM,并通过IIC与微控制器相互通信。这个对讲机可以存放128个不同的频道数。不过对于Igor来说,这还远远不够,他计划使用一片24C512来替换掉它,不过硬件上的替换很好进行,但软件上的改进就很难了。怎么办呢?
Igor在原有的线路上并联了一个ATTiny45,监视着IIC总线。当有来自控制器的地址访问需求到来时,ATTiny将会在原来地址中添0的位置拉高SDA数据线,使得地址变为了一个新的地址,而这样的操作使得新的大容量EEPROM的所有空间都可以被映射到——只需要改变ATTiny是否修改地址即可。而这步操作是通过ATTiny自动识别外部的一个开关的状态来实现的。当开关为高的时候就修改地址 ,反之则不动手脚。对于原有对讲机的控制器来说,读取到的内容和地址是无关的,它还会认为自己读写的是一块小容量EEPROM。
通过进一步改写EEPROM的内容,Igor甚至可以做到在每次开机的时候在对讲机屏幕上显示出当前使用的是EEPROM哪部分空间。在切换存储空间的时候ATTiny还会自动重启对讲机,这样就更加方便使用了。这个修改的方法非常巧妙,你明白它的道理了吗?
现代通信
转载请注明出处:《现代通信》杂志公众号【CQ现代通信】
现代通信,中国火腿自己的杂志
及时获得最新最全、好玩实用的业余无线电资讯!
留言会友台,点赞留余香