|
发表于 2011-3-10 08:22:50
|
显示全部楼层
被骗了,就是些这玩意
序言
刚才在存储社区一些帖子上看到关于FIRMWARE的讨论,感觉大家对FIRMWARE还是比较生疏,有的居然想出一些拆掉芯片用编程器烧录后再焊回去的方式,这种方式千万不能使用,因为一些隐含的问题会发生。具体的问题不必多说大家都会明白。
为什么很难获得FIRMWARE?
作为固件程序员,我这里几乎有全部种类的FIRMWARE,但是,有些不能公开,有的是为一些厂商而做的,是规定收取费用的种类,有的是内部测试版本,针对特定的方案而专门编写的,不能公开。一般公开的版本号有特别的规定,不能高于市场正在销售的版本。(FIRMWARE)
Q1:对于普通用户来说,有没有升级硬盘固伯的必要?如果有,什么情况下推荐升级Firmware?
A1:对于普通用户来说,没有必要升级硬盘固件,一般微小的缺陷可以在软件里使用补丁程序解决。除非和适配器的兼容性存在问题或者弥补硬件的某些缺陷,厂家才会推出升级的程序(包括全部升级或部分补丁升级)。这里要着重说一下补丁,补丁具有很严密的针对性,不是每个同型号的产品都适用补丁,不正当的升级会导致严重的问题。(huyiyang)
Q2:如果真的要升级硬盘固件,是如何升级?是否跟升级DVD的Firmware一样?即跟涮新BIOS相似的道理和过程?
A2:PC里的SCSI硬盘升级程序只是一个传送升级代码的程序,是把升级代码送到硬盘缓冲里,然后让硬盘的DSP运行升级代码,升级代码运行过程中执行升级过程并修改EEPROM相应的区域,这时候升级程序进入了状态监视过程。(huyiyang)
你们看到的FIRMWARE为什么和EEPROM的大小不一样,现在该明白是什么原因了吧。
Q3:厂家会不会不断升级Firmware,就像升级驱动程序一样,不断更新版本?如果是的话,Firmeware对于厂商又有何意义?
A3:厂家会不断升级Firmware,并且应用到新生产的产品中去,但是厂家不会公开发布FIRMWARE,只有当厂家判定你的硬盘确实需要升级的时候才会给你。当然对于升级的后果厂家不会承担任何责任。FIRMWARE的作用,打个比方硬盘的控制板是台电脑,FIRMWARE就是操作系统,它包括很多模块:驱动,控制,解码,传送,检测……
这里建议大家不要随便升级硬盘的FIRMWARE,你的硬盘现在能够正常使用就是没有升级的必要,因为升级的后果有不可预见性。一定要小心!!!(huyiyang)
Q4:据说富士通硬盘的Firmware有公开发行的?这是真的否?
A4:对于SCSI公开的只是一部分况且是退出市场的产品型号,你能取得现在正在销售的MAP,MAS的FIRMWARE吗?如果能获得,我认为你是从一些渠道获得的,而不是他们公开发布的。
厂家往往提醒大家不要使用网上流传的一些FIRMWARE,网上流传的一些FIRMWARE很多是好奇者修改的版本。据我所了解,在某BSD论坛上曾经有一个SCSI工具打包发布了一部分FIRMWARE,但是就在这个四月,他们的新版本里删除了那一部分FIRMWARE,具体原因可能是受到厂商的警告。
当然对于一些计算机大厂有自己的FIRMWARE开发能力(象HP,SUN,COMPAQ,IBM,etc)为了自己的整个产品的性能会推出一些较新的FIRMWARE,但是这些FIRMWARE具有特别严密的针对性,发布的版本往往是经过加密换算的,需使用专门提供的升级程序。专门提供的升级程序在升级前会判断你的硬盘是否属于升级范围内的硬盘,升级代码在执行过程中也会判定当前硬盘是不是属于要升级的类型。
另外提醒的是厂家的硬盘生产型号往往是系列的,比方说,现在大部分36,72,148的硬件方案都是一样的,有时候为了生产调配,明明是72G的硬盘,厂家可能会写成36G销售,这样一些非法商人可能会破解FIRMWARE,如果JS能把那些硬盘从36G改变回去成了72G,JS就获利,厂家受到损失。这也是厂家为什么不公开发布FIRMWARE的原因。(
想自由增大或缩小硬盘的容量吗?固件给你答案
事实上硬盘的生产和CPU等配件的生产是一样的,如果你找到了厂家的漏洞也可以“升级”。同一系列的盘体和控制板是可以互换的,比如说36G和73G,大部分时候,厂家会尽量少装盘片在里面,但是有时候赶货固不来时间就会用73G或者148G的盘体,只是修改了型号显示和LBA参数。
例如,在大陆市场很少看到ST336605这个型号,因为盘体就是ST373405,73G的。在IBM微盘也很少看到512MB的,其实就是1GB的。
有些盘体不是也没有关系呀,可以当成坏盘拿回厂商维修更换,知道以前QUANTUM为什么会被收购,IBM为什么出售了硬盘部门吗?大量的非法坏盘造成了巨大的负担。
还有比如上面所说的大厂HP、COMPAQ、IBM、SUN、DELL等,盘体采用硬盘生产商的产品,FIRMWARE是自己写的,在这些大厂的FIRMWARE里往往包含一些各自的特有的或专利的技术,价格也是市面的几倍。(打个比方市面的盘就好象用DOS,大厂的盘就是用WINDOWS,UNIX etc.),一些非法商人擅自修改VENDOR ID 和PRODUCT ID,或者抄袭大厂的FIRMWARE,使之和大厂的表面显示一样,从中谋取暴利。
[高朋]:举个例子:美钻二代有三种容量,10G、15G和20G,其实内部都是一个盘片一个磁头,电路板也一样,只是firmware不同而己。谁有本事也可能把10G的改成20G出售。
如果硬盘能够具备改大,剩下的就是FIRMWARE和一些参数了。
因为涉及到行业秘密,我笼统的说一下,硬盘容量的修改要经过FIRMWARE的判定,当LBA值小于等于厂方标定的容量参数时,可以继续。大于时返回错误信息,终止执行指令。JS们首先破解FIRMWARE的着一模块,让他能接受任意参数,剩下的就是用一些工具改变参数了。如果暴力的拆焊编程方式修改就不存在这个问题,但是会破坏当前硬盘的很多预置信息,甚至破坏电路部分,影响硬盘的性能,当然JS为了利益是不会在乎这一点的。
拿某一个型号的硬盘为例,厂方标定的容量参数LBA最大为222EE00(18G),存储方式为00 EE 22 02,有些人居然把它改成了445DC00(36G)存储方式为00 DC 45 04,JS们修改了FIRMWARE后,那样JS就可以在0-36G之间任意修改容量了,当然还要修改别的东西以保证磁头的移位安全。
这是随便举的例子,即使和你的硬盘参数一样,请也不要尝试!
再说一点,为便于理解我会尽量通俗一些,少用一些专用词多打些比方(有的可能不恰当)。
其实可以把硬盘的控制板看成是一台电脑(没有显示器的)它的FIRMWARE存放的EEPROM就相当于一个硬盘,也是分为很多块(BLOCK)的,不同的功能模块占用着这些BLOCK,如果熟悉计算机的BIOS的人就知道BIOS也是很多功能模块(原理一样)。JS们破解相应的模块就可以了,或者删除模块或者把其他的相应模块嵌入到FIRMWARE里。
当前计算机大厂使用的硬盘都在自己的FIRMWARE里嵌入了一些身份识别的东西,如IBM,普通硬盘上去可能就不好管理,用了他自己的硬盘就特别顺,因为在计算机的硬件除了常规的指令请求外还有一些它们内部自己定义的东西。
我的一个同事居然在业余时间写了个函数模块在他的硬盘里,计算机的程序把参数送到硬盘里执行,执行完毕后再把结果返回给计算机。这才是真正的硬盘加密,很多很牛的程序员都无法破解,因为他们就不知道怎样提取分析那个模块,当前对于很大很大部分SCSI硬盘来说,因为FIRMWARE的严格保密,至今还没有能把FIRMWARE上载到计算机的程序,因为FIRMWARE也没有模块来支持这个功能(就是说备份FIRMWARE是不可能的)。当然对于这样的加密,烙铁是非常有用的。
如果大家感兴趣,好好学习并分析FIRMWARE,以后可以自己加个些功能模块在自己的硬盘FIRMWARE里,做个真正的DIY,另外在数据安全上也不要害怕外国人放什么后门的东西在FIRMWARE里了,任重道远啊。
每个硬盘的FIRMWARE其实使用的指令就是它的DSP的指令系统,学会了相关的系统,你也可以编写自己的FIRMWARE。 |
|