单片机开发板的 hex 文件有没有可能带病毒?并感染电脑?会的话风险有多大?

19 天前
 shendaowu

我买的一个带小屏幕的 CH32X033F8P6 开发板卖家没有提供烧到芯片里的的程序的源码。只提供了 hex 文件。总感觉很别扭,怕带病毒。然后还提供了一个 Python 的通信程序,这个是带源码的。我搜了一下,Linux 上有插上就能入侵电脑的 USB 设备。我用的是 Windows ,感觉理论上可能也一样。开发板是通过 USB 接口跟电脑连接的,然后好像是识别为了 COM 接口。

我试过自己写烧录到芯片里的程序,没成功,屏幕都没点亮。我单片机开发经验很少。程序基本上是 deepseek 写的。配合一个网上找的 ST7735S 驱动程序。我感觉 deepseek 对单片机开发好像不太擅长。我在想是否可以通过反汇编 hex 文件来帮助自己写这个单片机的程序。据说现在都能反汇编成 C 语言了。另外我也懂一点汇编。

我不求绝对的安全,这个东西的危险程度跟在虚拟机里运行各种不是很靠谱的软件相比那个更危险?我经常在虚拟机里运行一些不是很靠谱的软件。

有没有什么针对 hex 文件的查毒软件?感觉可能不会有。VirusTotal 试过了,没查出来毒。hex 反汇编之后能否进行自动化的查毒?

我不想买别的开发板,这个开发板太便宜了,才 17 元。穷人狂喜。另外这个很小,这个我也比较喜欢。

2332 次点击
所在节点    硬件
26 条回复
xuangoer666
19 天前
可以把开发板的 USB 通给虚拟机,在虚拟机里操作
xujdan
19 天前
嵌入式码农路过,没听说过有带病毒的 hex 文件...
shendaowu
19 天前
@xuangoer666 但是我想让这个开发板与宿主机里的软件通信。具体是显示番茄钟的剩余时间。不过还是谢谢。
shendaowu
19 天前
@xujdan 好的,安心一点了。
fcyxp
19 天前
hex 即使有病毒,也需要触发才行。即使想动手脚也是在 USB 设备上动手脚。
zzzyk
19 天前
搞了好几年嵌入式,没听说过 hex 或者 bin 文件带病毒感染电脑的。
475797650
19 天前
这个 flash 总共才 62K ,想要写点代码进去不容易,烧写程序要专用的程序,参考一下官方 demo 吧 https://www.wch.cn/products/CH32X035.html
villivateur
19 天前
我能想到的“病毒”方案只有一种。

一般单片机与上位机通讯是通过串口,这玩意有可能模拟一个键盘,然后插上你电脑后快速完成打开命令行、输入恶意内容并执行。

但实战中完全没听说过这种新闻。
diivL
19 天前
HEX 是 TXT ,识别成 COM 口就不会带病毒,USB 病毒通常需要 MASS
shendaowu
19 天前
@fcyxp 你说的我看不太懂,不过还是谢谢。你说的触发指的是按日期触发之类的吗?我看了一下那个自带的 Python 的可能叫上位机的程序,看起来没有向单片机输出日期,只输出了当前的小时和分钟。显示时间用的。Python 程序也没有网络相关的操作。
shendaowu
19 天前
@diivL 开发板不能自己悄悄地切换成 USB MASS 吗?只是存储设备好像还好,毕竟 Windows 11 上好像默认都不自动执行了。我搜到地那个好像不需要自动执行就能入侵。
pusheax
19 天前
没有这种可能性。
USB COM 设备没有攻击 HOST 的方法。如果是 USB HID 或者 USB MSC 还有一点可能性。
与其担心开发板固件,开发板的驱动程序和上位机带毒的可能性会大很多。
如果真的有极度洁癖,IDA Pro 可以把 hex 文件还原出 C 伪代码,做安全审计足够。
shendaowu
19 天前
@pusheax 嫌麻烦不回也行,你要是不回我问 AI 也能凑合一下。我没搜到自动甚至免费的代码安全审计工具。你知道吗?如果你说的安全审计是让我自己审计的话,这个会不会需要很多学习和执行的时间?
min
19 天前
开个虚拟机专职负责烧写即可
mayahs
19 天前
你太高看开发板了,就那硬件水平能有什么病毒,就算有也不会闲着没事来对付大众用户
pusheax
19 天前
@shendaowu #13 没有针对单片机的自动化恶意代码分析工具。VirusTotal 这种主要支持 x86 ,针对其它格式的文件,就只是简单过一下静态特征,做不到代码层面的分析。
如果要用 IDA 做安全审计,它只能帮你还原 C 代码,具体代码还是需要手工分析的,这个学习成本不低。
chenxuuu
19 天前
硬件和电脑指令集架构都不一样,带什么毒
最多需要防范一下硬件会不会有 badusb ,就是伪装成键盘给你跑 powershell 命令从云端运行 exe 这种

但你都买开发板了,直接去沁恒官网下 sdk 不就好了吗,淘宝卖家顶多给个原理图看看电路和元器件型号,别的资料都没用,都要看原厂资料
sq955
19 天前
给 hex 文件大概只是怕源码泄露。随机攻击一个普通用户,还要搭进去一个十几块钱的开发板,是不是成本太高了
CEBBCAT
19 天前
@chenxuuu #17 楼主可能是买了成品设备想直接使用,只是有点担心安全问题。

---
Python 代码你可以审计吧?单片机的话,其实你可以自己买一个 USB-to-Serial ,譬如常见的 CH340 ,然后自己连接到设备的 RX+TX 上,那这样就限定连接方式在了串口上
yolee599
19 天前
hex 就是一个文本文件,需要烧录到单片机才能执行。
看你硬件,分为单片机 USB 直接接电脑,和单片机通过 USB 转串口接电脑。
如果是第一种方式,那有可能中毒。比如单片机通过 USB HID ,自动打开 PowerShell 下载病毒文件。在比如通过 USB MSC 模拟成 U 盘,自动运行病毒。
如果是第二种方式,那就是一个单纯的串口,控制不了电脑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140798

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX