- 发帖
- 9521
- M币
- 25134
- 专家
- 21
- 粉丝
- 1362
|
本人文科宅男一枚,在此新春佳节之际,本着独乐乐不如众乐乐的高尚心态,特别奉献出研究几天的成果,tf存储卡写保护的朋友们,也许,你们的救星来了!
前一阵子,无聊翻看网页,发现国外的玩家早在几年前就已经研究 出sd卡tf卡的加锁解锁装置,核心部分是一个avr单片机,通过改写sd卡CSD信息实现写保护和解锁,已有两个玩家分别制作出2种版本,原始版是基于atmega328单片机,后来有人移植到attiny85上,据说work fine! 网页在这里:http://www.seanet.com/~karllunt/sdlocker.html 、、、
咦? Atmel? atmega? 这字眼好熟悉啊,好像是见过的,赶紧去翻俺滴垃圾去! 找呀找呀找朋友,找到一个烂盒子:
这是一个盗版的模拟有线电视解扰器,核心部分是一个atmel单片机,不过好像不知所踪了?! 不甘心,继续翻我的垃圾,功夫不负有心人,终于在一堆拆机零件里找到了它,Atmega48,能工作于20Mhz主频,居然这么多年了还没扔掉它! 不过型号跟外国佬用的不同,立即上网查资料,老外的atmega328比它高档一些,主要是内部flash、eeprom、ram都大了不少,而atmega48的flash空间只有4k,老外编译好的烧写文件就有20多K,肯定不能直接用到它上面的。
可怜的文科宅男,为了数码电子这点爱好,也是蛮拼的! 虽然早就知道有单片机这东西,可是根本没心思去细细研究,完完全全是一小白呀! 小白呀!! 小白呀!!! 重要的事情说三遍...... 这次是下了苦功夫啦!先到网上下载avr的学习资料研究,再仔细看老外的源代码,老外已经声明,他的代码不能直接再次编译,里面含有他自己定义的一些库和头文件,如果非要重编译,可以删除他的串口通信模块。 于是,俺就硬着头皮看完了源代码,硬着头皮删了串口通信部分,硬着头皮把它编译在atmega48上,虽然最后有个错误提示,不过好像最后还是生成了个hex文件可以烧录。
下面就是搭建烧录程序的平台了,将原来的盗版解扰盒电路板做为实验板,找了个并口接头做最简单连IC都没一个的isp下载线焊到上面,网上找的原理图用的4个330欧姆电阻,我只找到两个,另外两个用别的代替了,最后竟然也能用。
翻出尘封的垃圾主板和电源,硬盘用的是97年左右的4.3G昆腾火球:
装系统,拷软件,开刷!
好像刷进去了耶!!!
用洞洞板焊个简单的玩意儿,照葫芦画瓢:
不要笑!!! 都说了,本人是文科宅男,高手们无视焊功和走线。本来是要装个加锁开关的,可是它自己掉下来了,也就偷懒没焊,反正主要功能是用来清除tf卡写保护;供电是用手捏着一节锂电,板子上有一个二极管降压,最终电压在3.4伏左右,无所谓啦;加锁开关定义在23脚,紧挨着gnd,用镊子短接一下23、22 脚, 使用效果:
再次插入电脑,文件并没有被删除,
也格式化不掉,换hp格式化工具也不行。
取下来插到装置上,按绿色钮,绿灯亮,
解锁后,tf卡删、写、格都恢复正常了。
本人测试了几张卡,正常的正规卡片肯定能正常使用的,加锁效果就跟坏的写保护tf卡一样,无法改变卡的内容,解锁后恢复正常。 个别扩容的tf卡无法实现加锁解锁,原因是黑心厂商根本就没有写入规范的CSD、CID信息。或者报告的信息是假的用来欺骗电脑的,所以根本写入不到真实的地址里去。 另外,因读写次数达到设计寿命,卡片的固件改写了永久写保护位的,这个装置就无能为力了,它只能改写临时写保护位,具体可以查看sd卡说明文档。 最后,纪念一下为这个装置贡献了器官的电子垃圾们:
我修改后的原理图:
我修改后的源码及编译后的文件: 因为用的led拆自废网卡,颜色不对,我修改了led引脚定义,跟原理图上的是反的。需要的自己下载玩去! 之前在我爱单片机板块发过帖请教:http://bbs.mydigit.cn/read.php?tid=1539422 在此对回帖的朋友们表示感谢!
|