解锁已锁定或已停用的废旧 Cricut Maker
Unlocking a locked/deactivated e-waste Cricut Maker

原始链接: https://sprocketfox.io/xssfox/2026/07/01/cricut-unlock/

在发现一台滚轮损坏并被废弃的 Cricut Maker 后,作者决定尝试进行维修,尽管他知道该机器很可能已被制造商“停用”。 在更换滚轮并确认硬件功能正常后,作者绕过了被软件锁定的序列号。由于直接修改 EEPROM 和拦截网络数据较为困难,作者利用树莓派 RP2040 作为 USB 代理。通过在硬件层面拦截并重写机器与计算机之间的序列号数据包,作者成功欺骗了 Cricut 软件,使其将该设备识别为一台全新的激活设备。 虽然作者承认可能存在更简单的软件破解方法,但这种硬件代理方案成功使机器恢复了全部功能。出于对版权法潜在法律风险的考虑,作者选择不公开具体代码,但指出该方案是基于标准的 USB 通信库实现的。该项目有效地将电子垃圾变成了一台功能齐全的工具。

这篇 Hacker News 的讨论批评了 Cricut 机器的限制性,讨论重点是一篇关于解锁被停用设备的主题帖。用户对 Cricut 的商业模式表达了强烈的愤慨,该模式依赖于一个封闭的、基于云端的软件生态系统,不仅限制了功能,还允许公司远程使硬件“变砖”。 评论者将该软件描述为一场“噩梦”,使用户无法在预定义任务范围之外使用机器。一位参与者指出,虽然机器本身的机械性能良好,但软件限制使其相比竞争对手成为了糟糕的购买选择。该讨论帖最后警告不要支持那些蓄意锁定或停用功能性硬件的公司,并将这种做法斥为掠夺性和反消费者的行为。归根结底,讨论强调在官方 Cricut 生态系统中恢复功能只是权宜之计,因为该公司随时保留禁用设备的权力。
相关文章

原文

While taking some rubbish down I spotted a Cricut Maker in e-waste. A quick look at it revealed that the it was in fairly good cosmetic condition with the exception of the rollers being perished. I guessed that the rollers were the reason why the unit was trashed and decided to take it back home to investigate. I knew that Cricut were pretty aggressive with disabling/locking machines, but I gathered it would still be worth playing around for some fun. As it turns out this machine was locked, which was pretty expected. However with some hacking I was able to return it to having full functionality. It’s very likely that the last user either received a warranty replacement or a discount on a newer model.

Alex did some quick searching and found that replacement rollers were readily available for very few dollarbucks. Even with powering the machine off 12v instead of the apparently required 18v, it showed signs of life with it passing it’s self test and communicating with the software - although showing the dreaded “Machine deactivated” message when connecting to it.

The first approach I thought I’d investigate is if there was an eeprom on the motherboard that I could rewrite the serial number. Disassembly isn’t for the fainthearted - it’s involved but I would need to do this to replace the rollers regardless. I didn’t find any eeprom and the MCU being used is something I didn’t have a debugger for.

My second thought here was to intercept the network connection and either replace the serial number or return a success message instead. However various application security measures made it more annoying than I wanted to disable certificate pinning. That’s not to say you can’t - it’s just I didn’t figure out how to do this trivially.

My focus changed to performing a intercept on the communication between the cutter and computer itself. I fired up wireshark to capture USB messages between the Cricut and my machine. It uses USB CDC for communication and very quickly I found the packets responsible for sending the serial number. There didn’t appear to be any checksumming or crypto. So I borrowed a RPi RP2040 from Droppy which was able to act as both USB Host and USB Client.

Circut Maker in background with a RP2040 microcontroller with two USB connections

Using the TinyUSB Arduino examples for USB Host and CDC simple echo, I was able to cobble together a simple proxy/rewriting device. There was nothing to special about this, however it did take me a little while to figure out that the USB Host doesn’t work correctly unless overclocked to 240MHz. I also configured all the USB metadata like vendor/product id and descriptions to match the unit. When it detects a packet from the cutter that matches the right length, and has the command / serial number in it, it replaces it out with a different serial number. Serial numbers seem to be issued sequentially and you can see the status of all the units on Cricuts own webpage.

Cricut software showing the machine connected

With the rewriting device replacing out the serial number at a hardware level the software is none the wiser. The unit shows up in my account. I could even register serial numbers that didn’t exist on the Cricut machine status page.

Obviously this raises the question about random strangers being able to get other users Cricut serial numbers locked out or added to their accounts….

3d printed case for the USB rewriting microcontroller

After cleaning up the unit, replacing the rollers (hint, use hot water to soften the new rollers to install them), reassembling the Cricut and printing a little case for the RP2040 - I was able to use the unit as if it were brand new.

A bunch of stickers printed and cut

The approach I took to return this Cricut to functioning is probably the least user friendly way however, as I believe software only solutions exist. Some alternatives that come to mind are:

  • Intercept network traffic or patch the application to report a different serial
  • Write a driver that pretends to be a Cricut USB CDC connection and proxies the serial
  • Write a driver that pretends to be a Cricut USB CDC connection but connects to the Cricut via Bluetooth
  • Figure out the firmware update process and utilise that to patch the serial number as part of the update
  • A device that acts as a bluetooth proxy
  • Add another MCU between the bluetooth chip and the Cricut MCU to rewrite the serial number before it goes to the bluetooth chip

I’m not going to investigate any of these because I have something that works for me, but those are all viable options to explore. Additionally I’m not going to share the code required to perform the serial number change as this might not be exempt in Australian Copyright law (not a lawyer ect….), but it’s pretty close to the included examples in the TInyUSB Arduino library

联系我们 contact @ memedata.com