avrdude在VB中即时加密/解密十六进制文件
-
28-09-2019 - |
题
嘿,我希望将我的十六进制代码文件解密以进行Attiny芯片,并使用Avrdude命令行界面对其进行编程。问题是,我不希望用户能够在任何给定时间看到十六进制文件。
VB.NET密码学可以在将其放入服务器上之前加密十六进制文件,然后在程序从服务器下载并通过程序下运行它而没有看到解密的HEX文件后将其解密?
显然,十六进制文件在被编程到Attiny芯片时无法保持加密,因此我该如何处理,以便我可以在程序中创建要在程序中编程的原始十六进制文件,而不必担心它将临时文件写入Hard开车然后删除之后? (因为他们可以在执行该临时文件之后关闭该程序,并且可以导航和打开并查看代码)
任何帮助都会很棒! :o)
大卫
解决方案
正如您已经指出的那样,如果您在主机上解密文件,则以未加密的形式在那里,您对此无能为力。
该行业不时存在相同的问题,因此他们通过密码学获得了方法:有时需要防止其他任何人都能得到一个可编译和运行的文件,因为“他们”会对其进行反复编译或在组装中查看它,有时只需要防止任何人能够在设备上运行其适当的自制文件。
如上所述,解密主机上的文件(用户/客户端主机)不可行。然后将其推一会儿。例如,您可以让Bootloader解密他从串行行读取的固件文件。
在这种情况下,您可以交付硬件(芯片,引导加载程序和初始固件版本),并通过串行线安装更新(而不是JTAG/ASP/ISP)。引导加载程序将包含解密固件文件的秘密键。此秘密键也可以用来验证固件文件是否来自您,没有其他任何内容。
如果您还需要分发引导加载程序(HEX文件),则您将面临某人可以提取或更改秘密密钥的问题。在这种情况下,不规则的密码学将为您节省。您为您保留私钥,并且Bootloader获取公共密钥部分。即使有人能够提取公钥,他也将无法创建将被视为您的文件。 las,对于不可分割的密码学而言,Attiny太弱了,甚至Symetric密码学已经膨胀引导加载器代码。
其他提示
无法使用指定的相反。 Attiny无法运行有用的引导加载程序(没有自编程的闪光灯。)您的十六进制文件需要在主机上解密。将解密的数据保持在记忆中可能会稍微减慢攻击者。