AVRdude在VB中即时加密/解密HEX文件

时间:2010-10-07 16:25:26

标签: vb.net encryption avr firmware tivo

嘿所有我想要解密我的HEX代码文件以获取ATTiny芯片并使用AVRDude命令行界面对其进行编程。问题在于,我不希望用户能够在任何给定时间看到HEX文件是什么。

VB.net Cryptography是否可以在我将其放入服务器之前加密HEX文件,然后在程序从服务器下载并在程序中运行它而不看到解密的HEX文件后对其进行解密?

显然,HEX文件在编程到ATTiny芯片时无法保持加密状态,所以我该如何处理它以便我可以在程序中创建原始HEX文件,而不必担心它写一个临时文件到硬盘然后删除它? (因为他们可以在执行该临时文件之后关闭该程序,并且他们可以导航并打开它并查看代码)

任何帮助都会很棒! :O)

大卫

2 个答案:

答案 0 :(得分:1)

正如您已经指出的那样,如果您在主机上解密该文件,那么它将以未加密的形式存在,您无法对此做任何事情。

业界不时会遇到同样的问题,因此他们采用密码学的方式:有时需要防止其他人能够获得编译和可运行的文件,因为“他们”会反编译或查看它在装配中,有时只需要防止任何人能够在设备上运行正确的家庭酿造文件。

如上所述,解密主机(用户/客户端主机)上​​的文件是不可能的。片刻之后再推它。例如,您可以让引导加载程序解密从串行线读取的固件文件。

在这种情况下,您提供硬件(芯片,引导加载程序和初始固件版本),并通过串行线(而不是JTAG / ASP / ISP)安装更新。引导加载程序将包含解密固件文件的密钥。此密钥也可用于验证固件文件是否来自您,并且没有其他人编译过。

如果您还需要分发引导程序(hex文件),您将面临有人可以提取或更改密钥的问题。在这种情况下,不对称加密将为您节省开支。您保留私钥,引导加载程序获取公钥部分。即使某人能够提取公钥,他也无法创建将被识别为您的文件。唉,ATTiny对于不对称加密来说太弱了,甚至symetric加密也会使引导程序代码膨胀。

答案 1 :(得分:1)

无法使用指定的约束。 ATtiny无法运行有用的引导加载程序(没有自编程闪存。)您的hex文件需要在主机上解密。将解密数据保存在内存中可能会使攻击者略微减速。