从Rom硅模具中拉出位图像:未知建筑

2021-03-23 00:18:49

我进入集成电路逆向工程(ICRE)的旅程才刚刚开始,但我完全因这个领域的热情而被消耗。除了电脑/电气工程方面还有ICRE,还有很多物理和化学知识。有一段时间,化学成分害怕我,因为我几乎没有关于化学的知识。更不用说,与拆卸所需的产品一起使用,延迟筹码退出危险。

相信它与否,我在实际投资实验室之前预付了大约2年的红色。直到我拥有所有安全设备,我不想做我的第一个实验,以采取适当的预防措施。常识是,第一个化学规则是什么时候,不是如果出现问题,你必须准备好知道接下来要做什么。然而,当我瞄准一个目标时,我的眼睛是我痴迷的自我,没有什么可以阻止我追求它。

首先是首先,我必须调查一堆真正昂贵的物品和溶剂来购买。以下是我购买的设备和用品列表。

为什么我需要冶金显微镜与类似立体或复合显微镜的东西?由于大多数显微镜具有自下而上的光来反射XY阶段,因此这不适用于IC,因为它们并不双面。实际的模具需要光线才能从自上而下的反射。冶金显微镜利用称为EPI照明的东西,这是一种独特的照明器,其也被称为反射光或离荧光照明。除了照亮IC对象/样品之外,显微镜物镜还用于收集从样品表面反射的光。

其余的是非常自我解释的,为了从环氧包装中正确地去除IC,在室温下酸不足以融化环氧树脂。其中一些其他材料在该列表上购买是漂亮的标准实验室内容,以便处理化学品。至于实际的化学产品,我将在我继续进行实验时解释我的酸,碱和氧化剂的用途。

具有讽刺意味的是,当我第一次将CH340G从Arduino纳米V3板解封时,我实际上不知道我会在开始延迟之前磕磕绊绊地磕磕绊绊。通常,在挑选一个ROM项目时,您应该对您的目标有一个相当愉快的理解;这包括熟悉架构和处理器读取数据表。幸运的是,这对我来说并非如此,你会发现为什么稍后在论文中。

我首先使用Arduino板上的冻结电路的原因是因为它是我在嵌入式系统安全的旅程中使用的第一个DEV板。因此,我认为这将是超级怀旧,用于投掷一对我喜欢的热硫酸中的芯片,扔掉几个芯片。要诚实地,我非常希望我对第一个实验的Atmega328P会证明有一些ROM,但在许多延迟尝试氢氟酸尝试后,你所能看到的只是EEPROM,SRAM和闪光。

进入该芯片的多晶硅层(SiO 2 /氧化硅),确实开始显示芯片的许多有趣的部分,但我们都没有其中可以使用我所呈现的工具进行固件提取。

侧面注意:如果您希望看到此图像的高清晰度,请在Siliconpr0n上的个人页面上终止此链接。

你可能会问自己,为什么你也不能使用像你一样使用冶金显微镜读取闪存段的数据?首先,我们应该讨论差异。掩模ROM(MROM)包含在半导体制造工艺的设计阶段期间烧成芯片的固件代码。通过在光刻过程开始之前通过晶体管来制造MROM。在显微镜下,它们看起来彼此看起来非常不同:

这些只是MROM晶体管在基板级上的样子看起来像的两个单独示例。这些晶体管可以使用含有较高浓度的电子的N型材料,并掺杂有磷原子或掺杂有硼原子的p型材料,并含有较低的电子浓度。

另一方面,闪存并不那么简单。 1晶体管!= 1位。需要扫描电子显微镜从像EEPROM型存储器那样拉出比特的原因是因为闪存利用了能够存储来自电流的剩余电子的“大坝”系统,而不管是否有电流贯穿它或不,这意味着这被认为是非易失性的记忆。闪光晶体管有四个原理部分:源极,排水管,两个栅极,称为浮栅和控制栅极,以及除以其他三个部分的绝缘材料。它们处于倒置的T形,晶体管的下部部分是源极和漏极,并且上部是栅极,控制栅极在晶体管的浮栅部分上方。栅极通过氧化物层环绕,电流通常不能通过该氧化物层。

带负电的电子处于在源极(电流始发点)的就绪状态和漏极(电流的排水点),这是由于用于构造晶体管材料片段的硅的类型。

然而,由于源极和排水管之间的电子绝缘材料,漏极不能像预期一样流动。当您强制在漏极和栅极处的电触点上的正电压时,带负电的电子被吸引到带正电的电子并被输送到漏极。通过称为量子隧道的过程将少量电子通过氧化物层被拉入浮栅。已经进入浮栅的电子从氧化物层埋入的浮动栅极有不合适的分解,并且将无限期地保持在浮栅中。具有存储电子的闪存晶体管与RAM晶体管平行,其具有流过它们的电流。为了将电子分离,将负电压登记到浮栅上方的电触点,这使得电子将电子从浮动栅极推开。

这是闪光晶体管在冶金显微镜下的多晶硅水平上的样子。您将无法看到通过晶体管的浮栅传递的任何电荷,因为它不能在表面上扫描聚焦电子束以产生图像,如扫描电子显微镜(SEM)。通过从SEM的图像浏览图像时,可以看到光束与集成电路闪光表面相互作用,产生众多信号,可用于获取有关表面形貌和组成的信息。

我们能够在冶金显微镜下看到单个位('1'& 0')的原因是因为比特物理地编码到模具中。如KEN Shirofif的纸张在提取ROM常数上所示,通过改变硅掺杂图案,产生晶体管或离开绝缘区域来编程到MROM中。在KEN的示例中,如果存在连续存在晶体管,则我们可以假设它是1位晶体管。通常,MROM中的一排将在下面看到的每个列中的两个堆叠晶体管顶部到底部。

ROM通常使用多路复用器来选择每列和行的位。如果使用16位MUX,则将有4个选择可以激活的行。对于我将显示的ROM,如果激活,每个选择线可以将晶体管转到高压状态。如果从列和行位置缺少晶体管,则输出线将保持低压状态。

侧面注意:在我们的情况下,对于CH340G,MROM将与上面看出的所有这些图像完全不同。

在Arduino Nano的情况下,CH340G始终位于PCB的底部。我采取了我的拆下热枪,并在目标IC芯片销上方施加大约200°C。这将从关节中取出焊料并熔化它,让您安全地从板上取下芯片。

一旦我们准备好了我们的样品,我们就可以开始下一阶段,这是解除占地。这是完全删除你看到围绕硅芯片的黑色环氧包装。

现在是时候获得额外谨慎的时候了,因为它与腐蚀性酸非常危险。我们将采用玻璃液管(随着玻璃不与H 2 SO 4反应),从容器中取出约20ml的98%浓硫酸,并将其置于100ml烧杯中。我们可以使用一些镊子将样品丢弃到酸中,然后将烧杯放在热板上。

我建议温度至少为170°C,而不是150°C,如上所示,因为热板永远不会直接准确。极热的原因是因为在室温下,H 2 SO 4非常缓慢地氧化环氧树脂。通过施加热量,我们可以加快这种反应。在最右边的照片中,你会注意到液体开始变黄,这是一个很好的标志。这意味着我们的反应工作,环氧树脂开始融化。

如果你想知道为什么我在烧杯顶部有一个玻璃盖,这是有两个原因:

它将有助于含有从加热硫酸产生的烟雾。在这一点上,你应该已经拥有了卷烟罩内部的烟气提取器风扇。

它可以潜在地再循环一些硫酸二氧化丝(SO 2)烟雾,这反过来将保持酸浓度高。如果酸浓度降得太低,则腐蚀的概率增加。我不是100%肯定的那样,如果我对此不正确,请随意逼我。我知道这将适用于硝酸(HNO₃),因为二氧化氮(NO 2)烟雾可以在水存在下再循环回HNO₃。

现在的大问题是,我们保持这种情况多久了?这取决于芯片的厚度;在这种特殊情况下,我们的数据表显示,这是一个厚度为1.50mm的SOP-16芯片封装。围绕这种厚度和温度,整个过程应该需要一个小时。

另一个良好的标志来停止是当整个烧杯用诸如黑色污泥时消耗的烧杯时,它可能意味着所有环氧树脂已经从模具中溶解。现在是时候从加热板中取出并让它冷却。

侧面注意:一旦取出玻璃上衣,你会开始看到很多SO 2烟雾,所以一定要让你的烟雾门关闭,让真空吸收所有有害的蒸汽。一个很好的例子,以了解这种反应性的作用是用聚乙烯((C 2 H 4)ₙ)的等式,其通常用于环氧塑料。随着硫酸加热环氧树脂,H 2 SO 4分解成SO 2,CO 2和H 2 O。这是平衡式:6H 2 O-+(C 2 H 4)→6SO 2 + 2CO 2 + 8H 2 O。该酸的沸点约为337°C,这是一排共沸硫酸是如何合成的。通过取硫(S),氧(O)和水(H 2 O),并燃烧硫以产生二氧化硫(SO 2);然后在氧化钒(V 2 O 2)催化剂的存在下,使用氧气将二氧化硫氧化成硫化二氧化硫,二氧化硫氧化成硫氧化物(SOIN)。水进入适当的水合以将三氧化硫硫酸加入硫酸中,SO-+ H 2 O→H 2 SO 4。还有其他方法已被使用,例如将铜(II)硫酸铜(CuSo1)或氢溴酸(HBr)添加电解溶液,以与硫反应。

随着这一点,我们永远不想让H 2SO4沸点沸点,因为酸会迅速分解并转动完全气态。

此时,我会将酸倒入另一个空烧杯中,并检查烧杯的底部,用于任何硅模具。有时,你真的必须搜索,因为这些模具可能真的很小。

发现一旦发现,将硅芯片放入填充有丙酮(C₃h₆o)的较小烧杯中。将芯片浸没在该液体之后,将烧杯放入超声浴中以清洁硅的任何烧伤的环氧颗粒。为什么丙酮?丙酮是一种强大的工业溶剂,将在模具的金属表面上温和。

现在我们的芯片摆脱了残留的烧伤环氧树脂,是我们的显微镜成像的时候,所以我们可以真正看出内心内部的东西。

当我第一次看这个芯片时,我没有看到任何被认为是罗马的东西;知道我现在所知道的,我觉得有点愚蠢。经过进一步的研究,我能够做出一些假设,即左手区域包含某种EEPROM或RAM,或者只是某种类型的易失性存储器支架。右上角似乎是MROM。所以让我们进一步潜水。

使用50倍物镜镜头放大到逻辑门,我们可以开始在此处开始一些事情。第一个有趣的位被注意到该ROM上有14个多路复用器,含有14个列组。它们中的每一个都是16:1位mux。这意味着它可以将16个不同的数据路径分开到单个路径中。

14列组意味着我们正在处理14位架构,这是奇数。通常,您将在4位,8位,16位或甚至32位范围内看到微处理器。在从这些图像中提取比特之后,这将使事情变得更加复杂,因为它可能是自定义架构。

对该芯片的顶层的其他显着观测是地址线。垂直列显示10条金属线,最终转换为6个地址位,以及在水平行上的6条金属线,最终转换为4个地址位。当我们延迟芯片时,将在后面解释这一点,但这基本上意味着4个地址位给您2英寸= 16用于前面解释的多路复用器。现在,6个地址线将用于选择64行的64行中的一个,这水平提供16位x 14列,这就是它总共需要10个地址位的原因。

该实验的下一部分是暴露衬底层,因此我们可以通过显微镜看到各个位。这是一个非常狂野的概念,能够制作'1'和'0的硬码进入芯片本身,并且很快就会看到为什么从硅中提取固件附近有这样的大社区。

有很多方法可以延迟芯片,但我们只会过几个。我们需要的第一件事是我在本文前面提到的PTFE(Teflon)烧杯。缺乏盐酸(HCl)或氢氟酸(HF)与这种类型的材料反应,并且该材料可以在热板上加热。嗯,更具体地说,用HCl,我们可以使用玻璃烧杯,但我们不能使用HF。

侧面注意:涉及两种无机化合物时存在一些相似之处。 HCl和HF都是离子化合物,意味着它们均在离子溶剂中完全分离,如水。 HCl做到这一点,因此被归类为强酸,而HF则没有。这是因为氟和氯的强度不同。氟强烈地粘合到氢气中,这使得它较少分离。氟离子是电动的,即使是水的强烈离子效果也不能完全将其与其氢原子完全拉出;基本上这就是使HF如此危险的原因......它会与它可以获得其电子的任何东西反应,尤其是骨骼中的钙离子。一定比例的HF分子不会解离。因此,HF被认为是弱酸。在我们的用例中,重要的是要注意,它们在引入金属时,它们都会非常猛烈地反应,但在延迟时,使用可能是完全不同的。

那么我们如何知道使用哪种酸?通常在半导体制造过程中使用两种类型的金属:铝(Al)合金6061和/或铜(Cu)。对于类似于此的芯片,您通常会看到al,但在罕见的情况下,您可能会看到CU。这将是因为它是希望金属互连,因为它具有较低的电阻。

如果我们正在处理Cu,我们将使用HCl,但是HF不蚀刻Cu,实际上会导致大气氧引起大量腐蚀。当延迟延迟Cu时,任何一样的氧化剂都不会为您提供良好的。请记住,单独的HCl不会蚀刻Cu,它需要一种氧化剂,如氢过氧化氢(H 2 O 2),以使酸通过上升酸溶液的PKA在Cu(还原剂)上。 PKA是通过其酸解离常数的酸度强度的测量。将这两种反应在1:1的比例下合成次氯酸(HOCl)和水(H 2 O)。一旦引入了模具的Cu,它将与HOCl反应以制备氯化铜(II)氯化物,这将最终成为实际的蚀刻剂。这意味着它将在室温下将模具的Cu区域延迟到绿色铜氯化物(CuCl 2)溶液。

H 2 O 2(水溶液)+ HCl(水溶液)→H 2 O + Hocl(水溶液)2HoCl + Cu→Cu​​(HoCl)2

侧面注意:非常小心,与房间温度的大多数酸不同,HCl溶液将自身迅速加热,因此很可能释放氯化氢气体。这必须在烟雾室中完成。

在我们的CH340的情况下,我们只有一层非常薄的Al蚀刻,并且二氧化硅(SiO 2)几乎不存在。这就是为什么我们将使用HF延迟。湿的HF将以40°C的非常快速的速率攻击Al互连和粘接焊盘,但您也可以使用Whink非常低的浓度在室温下蚀刻。这种锈染色灭灭灭菌剂含有3%HF的浓度,但不要被愚弄,因为它仍然可能是非常致命的。我的建议是让芯片在室温下坐在Teflon烧杯内部约15分钟的间隔,这取决于正在测试的芯片。这不仅将蚀刻Al但SiO 2也是如此。

当使用低浓度和没有热量时,这是一个非常缓慢的反应,但它是更安全的方法,因为你不必处理烟雾。最终结果应该看起来像这样:

我们现在已经成功地将我们的方式蚀刻到芯片的基板或晶体管层。您可以在SilicConpr0n处找到更高分辨率的图像。放大到右上角,我们发现我们珍贵的MROM。

正如你所看到的,我可能太多了一些太多了,因为一些晶体管似乎褪色。唉,当提取比特时,这不会是一个主要问题,但有些自动化工具可能会有点Haywire。因此,它将更多的工作,但我们总是可以手动覆盖我们可能看到的任何错误。

输入ROMPAR,一种用于使用计算机vision从MROM图像中提取二进制数据的交互式工具。起初可能有点令人生畏,有一点学习曲线,但在几个运行之后,它不是那么糟糕。我们将要做的第一件事是准备使用GIMP或您选择的任何照片编辑工具。关键是,我们希望隔离和扩展图像的MROM区域,裁剪,并锐化它。

在运行工具之前,我们需要知道我们正在使用多少rom。查看图片,我们可以看到有14个列组每行包含16位,因此每行中的224位。行将是下一个重要的部分,看起来我们可以在这里看到64行。在结果中,我们使用的ROM尺寸为1.7KB。

当我们运行ROMPAR时,它会期待3个论点; 文件图像,数量 ......