软件能否永久性损坏硬件?

15

我刚刚阅读了这个问题:Could this code damage my processor?,这让我思考。

是否可能仅通过软件来损坏硬件?我听说在“好旧的日子”(TM)中,当硬盘执行器由软件控制时,它们可以撞击到中央主轴,从而永久性地损坏驱动器。

还有臭名昭著的Chernobyl病毒,它只是杀死BIOS并使机器变得无用,直到有人重新刷写它。

还有微码更新,可以刷写到CPU上(我对它们不太了解)。

但现在是否仍然可能?您能否通过软件损坏硬件?执行hcf(停止和着火)指令?通过增加WLAN输出功率来烤猫?


是的,早期的音圈硬盘有些不太聪明,会很愿意尝试寻找不存在的柱面。在寻道时无法定位指定的柱面,导致一遍又一遍地撞到限位器上。据说这样做足够多次它们就会损坏。据说至少有一个病毒使用了这种方法,但我从未亲眼见过。 - Brian Knoblauch
4个回答

13

一般而言,您肯定可以这样做。有时实际操作比您想象的更难,有时却很容易。

例如,假设您有一个GPIO引脚,用作输入并连接到Vcc。将其设置为输出并拉低电平,通常您可以吸收比源提供更多的电流,但如果这是一个电压轨,并且它们没有放置一些限制电阻,例如上电绑定选项,则烟雾就会冒出。

甚至在个人电脑中,某些地方也会使用i2c来模拟位操作。同样的问题,您可能会故意或者不小心发生错误,进行足够的i2c传输以使目标认为已经轮到它驱动数据线,但是您却反向驱动了数据线。由于您可以吸收比源提供更多的电流,因此谁提供的电流量大,谁的输出很可能会熔断。

我听说过一个(热门系列)图形处理器根本无法以该时钟速率持续运行。想象一下一个可以每分钟发射X颗子弹的机枪,很少人可以长时间进行持续射击而不使枪管变形。他们在这里所做的就是这样。如果您在GPU上做太多事情,即使您将冷却附加到机箱上,散热器也无法起作用,芯片也会被熔化。这可能是一个谣言,但这种事情确实发生过。通常,在芯片中放置温度传感器,以导致外部电源系统重置芯片/板或关闭它。这就是为什么当您尝试在CPU上没有散热器的情况下启动计算机时,您的计算机会进入惊恐的蜂鸣声状态。您可以自己尝试此操作,但自担风险。

通常,在芯片内部出现故障并使芯片失效的问题,你可能会做一些事情来解决这个问题。 我们不通常手动布线整个芯片,有工具可以完成大部分工作或检查工作以防止这些问题,当然,这不是绝对可靠的,但概率较小。 然而,板子设计仍然是手工制作的,并且软件驱动程序通常不会尝试像驱动GPIO线针对源之类的不良行为。 不像以前那样容易让软盘或硬盘撞到机箱内部,尽管如果您更改了某些设置并在磁盘盘片上刻下一个凹槽之类的东西,我也不会感到意外。 许多事件更难引起显示器火灾。

正如其他帖子中已经提到的,推动和压力组件,过度计算等等。 对于计算机,其中有软件控制的散热风扇,您可能可以进入并关闭自动控制系统(如果有的话)并将风扇设置为固定速度,例如... 关闭所有风扇并看看会发生什么。 某个品牌的笔记本电脑就有这个问题,升级BIOS后它会减慢CPU风扇速度,导致硬盘故障和/或系统中的其他故障。 更改BIOS设置或安装正确的BIOS并更换损坏的硬件(如果可能/实用),而不是死机。

有一段时间,Linux会在笔记本电脑上过度停放硬盘磁头或类似的问题,导致磁盘过早失效。

苹果因硬件故障而闻名,长长的集体诉讼清单。 某些由软件驱动。 并非其他品牌没有不良性质,但其他品牌通常不控制硬件和软件在一个包裹中,这使得难以隔离一个公司,或者更糟糕的是一个应该比毁掉自己东西更了解此类事情的公司。 苹果通常喜欢将他们的名字放在新闻中,免费或廉价广告。

已经显示出,或者至少我读到过,你可以感染Mac电池——笔记本电脑中现在的电池都很智能——使其携带病毒,在操作系统进行干净的擦拭和重新安装之后,电池将以病毒的方式重新感染系统。(这只是时间问题,任何平台都会发生这种情况)我想知道是否还有其他方法可以更改现代笔记本电池固件,并使得现代电池技术很容易着火,也许您可以通过软件实现。
在台式计算机中,您可以使用软件控制光盘托盘,不断打开和关闭,直到它失效(我看过一篇"thereifixedit"文章,其中cdrom托盘被用来晃动婴儿摇篮)。
对于无风扇的手持设备、智能手机和平板电脑,我敢打赌您可以打败温度限制并应力元件来产生热量,可能会导致电池损坏。
爆音器很容易,就这样做。
许多东西使用FTDI芯片来接口USB到几乎任何东西。其中一些芯片可以将引脚从通常的功能更改为软件比特控制,这就是我从顶部开始的地方,将原本应该是输入的东西变成输出,并向另一边驱动,直到某些东西熔化为止。

11

作为一个喜欢组装和超频电脑的人,我可以举出几个(非常极端的)情况,这些情况有可能会发生问题。(我强调有可能,因为在今天的大多数机器上,这些条件有些不现实。)

第一个例子是BIOS闪存。一些主板允许你通过操作系统中的软件来刷新(修改)BIOS。这打开了一个后门,使恶意软件可以将BIOS刷新为损坏处理器的内容。(例如,将电压增加到2V - 然后就爆炸了!)

在第二种情况下,一些主板提供超频工具,允许您从操作系统内部更改CPU设置。如果病毒接管了这个功能- 就像第一个例子一样,将CPU设置为有害的设置并将其烧毁。

第三个例子(可能是最现实的)是压力测试和高强度应用程序。例如,大多数笔记本电脑今天都不适合长时间运行数字代码,可能会过热。虽然硬件温度传感器通常会关闭已经过热到某个点的计算机,但阈值往往非常高 - 在接近安全关闭临界温度以下的温度下维持CPU不安全。

代码示例是我回答这个微优化问题的答案:如何实现每个周期的理论最大4个FLOP?


1
到目前为止最佳答案。特别是主板上的电压可以通过软件控制-这是让某些部件突然和永久性死亡的确定方法。另一方面,压力测试不应损坏您的硬件甚至降低功能-如果它们这样做,则硬件不符合规格或质量较差。因此,在这种情况下,软件揭示了已经存在的损坏(依我之见)。 - Gunther Piez
我的笔记本电脑可以运行Prime95至少1小时(尚未测试更长时间)。 - Suici Doga

5

根据你对“损坏”的定义,可以确定:

  • CPU - 使CPU使用率达到100%(或更好的是-读取温度和最大温度CPU可承受的,然后尝试保持在该温度以下),这肯定会缩短其寿命
  • USB驱动器 - 您可以在USB驱动器上写入几亿次,这将使其无法使用(请参见: http://www.bress.net/blog/archives/114-How-Long-Does-a-Flash-Drive-Last.html
  • HDD驱动器 - 寻道、写入和读取操作不断进行,如果可能的话,通过读取驱动器几何形状并发出最坏的命令(即寻找距离当前位置最远的位置),这肯定会很快使其变得非常热,从而缩短其寿命
  • 显示器 - 将其设置为睡眠状态并唤醒,并更改分辨率数十万次
  • GPU - 运行10个Battle Field 3实例,然后煮鸡蛋
  • USB设备 - 在2秒间隔内打开和关闭电源(例如,对于您的外部USB硬盘驱动器)
  • 扬声器 - 将音量调到100%,然后享受一些这个这个这个(或您最喜欢的)几周 :)

显然:

  • 这些是极端情况
  • 它取决于您组件的质量
  • 你可能会注意到任何这些行为,因此只有在你故意想要损坏你的硬件或者当你的互联网可访问的web服务器被黑客攻击时,它们才是可行的
  • 不太可能-虽然这些将可能损坏大多数硬件,但要使其无法使用,您需要很长时间

我想在冬天使用GPU :P - user889030

2
固件(也称为微码)是一种软件。如果编写不好的固件,我相信您可以损坏硬件。然而,如今大多数固件很难被意外或恶意地修改,因为它们通常需要重新启动和重新/刷新ROM。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接