Yazar, Pybricks projesine (Lego Mindstorms donanımı için MicroPython portu) katkıda bulunurken, 2006'daki lansmanından kalma orijinal sürüm 1.01 firmware'ini çalıştıran kullanılmış bir Lego NXT cihazı edindi. Bu eski firmware'in bir kopyasını arşivlemek istemesi, rastgele kod yürütme keşfine yol açtı. NXT, ARM ve gömülü sistem istismarı geliştirmeye iyi bir giriş olabilecek nispeten basit bir hedef olarak tanımlanıyor.
Yazar, bu özel firmware sürümünün daha önce arşivlenip arşivlenmediğini araştırdı ancak kapsamlı NXT meraklıları topluluğuna rağmen bir kopyasını bulamadı. 1.03 sürümünün lansman gününde veya civarında yayınlandığı ve meraklıların muhtemelen yeni özellikler için daha yeni veya topluluk tarafından değiştirilmiş firmware'lere geçtiği belirtiliyor. İnternet çağının bir parçası olmasına rağmen, NXT'nin eski oluşu nedeniyle kaynakların zamanla kaybolmaya başladığı vurgulanıyor. Bu durum, yazarın firmware'i kendisinin kurtarması gerektiğini gösterdi.
İlk fikir, yeni firmware indirmek için kullanılan aracın mevcut firmware'i de alıp alamayacağıydı. NXT'nin Microchip AT91SAM7S256 mikrodenetleyici etrafında inşa edildiği ve SAM-BA adlı yerleşik bir bootloader programına sahip olduğu biliniyor. SAM-BA, "bellekten oku" (PEEK) ve "belleğe yaz" (POKE) komutlarını desteklese de, yapılan araştırmalar bu yöntemin başarısız olduğunu ortaya koydu. SAM-BA bootloader'ına girme girişiminin, yedeklenmek istenen firmware'in bir kısmını otomatik olarak üzerine yazdığı anlaşıldı. Bu nedenle, firmware güncelleme moduna girmeyi gerektirmeyen farklı bir yaklaşım olan JTAG kullanımı düşünülmeye başlandı. JTAG, çip içindeki verileri okumak ve CPU durumunu değiştirmek için kullanılabilecek bir donanım arayüzüdür.
Bu çalışma, eski donanım ve yazılımların dijital miras olarak korunmasının önemini vurgularken, aynı zamanda güvenlik açıkları ve istismar yöntemleri hakkında değerli bilgiler sunuyor.