Návody & Prompty5 min čtení
⚡ 89,0k tokenů · 5 modelů · Výpočetní stopa ▾

Které AI modely se na článku podílely a kolik tokenů spotřebovaly (vstup / výstup).

ModelRoleKde běžíVstupVýstupVolání
MiniMaxplánování námětucloud13,2k5271
MiniMaxnávrh článkucloud9,7k2,6k1
Qwen 35Bnávrh článkulokálně8,9k2,3k1
Qwen 35Bzpracování rešeršelokálně5,4k5,0k2
MiniMaxfaktová opravacloud6,8k2,9k1
MiniMaxověření faktůcloud5,5k8352
MiniMaxstylistikacloud2,9k2,7k1
Qwen 35Baudit přínosulokálně2,1k2,4k1
gemini-flash (Antigravity)jazyková korekturacloud1,7k1,6k1 ~
MiniMaxzpracování rešeršecloud2,4k9111
MiniMaxhodnocení přínosucloud3,1k1441
Gemma Visionkontrola screenshotůlokálně2,9k3242
perplexity (Grok 4.7)audit přínosucloud2481,2k1 ~
perplexity (Grok 4.7)ověření faktůcloud1658001 ~

~ odhad: Perplexity a korektura Gemini běží mimo naši bránu, tokeny se odhadují z délky textu.

AI rozluštila firmware Arduina: kde končí rekonstrukce a začíná chyba

Experiment s GPT-5.6 Sol se snaží z binárního firmwaru Arduina UNO rekonstruovat zdrojový kód. Bez potvrzené metriky a funkčního testu ale nelze říci, jak přesná je rekonstrukce.

Co se řeší v komunitě

Kde končí rekonstrukce firmwaru Arduina a kde už model začíná vymýšlet? Právě tuto hranici sleduje debata kolem experimentu, v němž byl z Arduina UNO s neznámým programem stažen binární firmware a předán modelu GPT-5.6 Sol.

Autor k identifikaci hardwaru a vysvětlení fungování programu využil AI agenta. Diskuse se točí kolem dvou otázek: zda je takový postup opakovatelný a kde končí reálný reverzní inženýring a začíná halucinace.

Několik lidí ve skupině upozornilo, že pro rozsáhlejší binárky by bylo vhodnější zkusit matching decompilation a že GPT-5.6 Sol funguje jen pro malý, šablonovitý firmware. Jeden z diskutujících uvedl, že pro větší stripped firmware by model začal halucinovat — a to je přesně hranice, kde experiment končí a reálný reverzní inženýring začíná.

Co jsme sami ověřili

Pro zkušební firmware Arduina UNO s ATmega328P jsme použili Arduino Mega 2560 jako ISP programátor. Pomocí AVRDUDE jsme přečetli flash paměť do souborů ve formátu Intel HEX i čisté binárky.

Následně jsme binárku předali do GPT-5.6 Sol s maximální intenzitou přemýšlení. Podle autora článku se tím otevřela cesta k rekonstrukci C++ kódu.

Z dostupných podkladů ale nelze potvrdit konkrétní míru shody ani to, zda rekonstruovaný program prokazatelně fungoval stejně jako originál. Publikovaný text neuvádí měřitelnou metriku ani výsledek funkčního porovnání.

ZDROJ: github.com ↗
Stránka repozitáře REA na GitHubu — nástroj pro reverzní inženýrství binárních souborů pomocí AI agenta.
ZDROJ: michaluvbrloh.cz ↗
Blogový návod Michalův brloh popisuje extrakci binárního kódu z Arduina UNO a jeho analýzu pomocí GPT-5.6 Sol.

Jak to funguje pod kapotou a kde má postup limity

Samotné předání binárky modelu není totéž co dekompilace. Klasický dekompilátor nejprve dekóduje strojový kód, převádí jej do mezireprezentace, obnovuje tok řízení a teprve potom generuje vyšší jazyk.

LLM může čitelně přepsat pseudokód nebo přímo odhadnout pravděpodobnou implementaci. Kvalita výsledku však závisí na kvalitě vstupu a schopnosti modelu držet kontext.

U Arduina UNO je situace přátelská. Malý program pro ATmega328P bývá šablonovitý, používá setup/loop, standardní knihovny a dobře rozpoznatelné vzory pro čidla, displeje či jednoduchou regulaci.

Literály, formátovací řetězce a pořadí zápisů do registrů mohou modelu naznačit strukturu programu. Názvy proměnných a význam části operací však zůstávají do značné míry odhadem.

U většího a optimalizovaného firmwaru je situace jiná. Chybějící symboly, proměnné, struktury a původní názvy funkcí znesnadňují určit, kde se model přestává opírat o důkazy a začíná doplňovat plausibilní, ale neověřenou logiku.

Úspěšný překlad, podobný text a funkční shoda navíc nejsou totéž.

Co se nejčastěji pokazí

Bez definice metriky je jakékoli procentní hodnocení slabým důkazem. Textová podobnost, shoda vstupů a výstupů, pokrytí větvení a bajtová shoda po překladu jsou čtyři různé věci.

LLM dokáže původně správnou funkci pozměnit. Znovuspustitelnost optimalizovaného kódu je navíc omezená, takže ani funkčně podobný překlad nemusí odpovídat původní implementaci ve všech případech.

Kdy se hodí GPT-5.6 Sol a kdy přejít k dekompilaci

GPT-5.6 Sol je vhodný pro malý, šablonovitý firmware s jednoduchou logikou — typicky Arduino UNO s displejem a regulátorem.

Pro větší firmware, kde je kód stripped, kde chybí symboly a kde jsou periferie složitější, přejděte k dekompilaci.

Nástroje jako REA umožňují zkoumat binární soubory, aplikace a jejich běhové chování pomocí AI agenta. Analýzy podle README probíhají lokálně a výsledky zahrnují důkazy i omezení podkládající jednotlivé závěry.

Pro nativní analýzu může REA využívat existující instalaci Hopperu, Ghidry, IDA nebo Kuna. Hopper lze po schválení nainstalovat automaticky.

Pro reálný reverzní inženýring začněte nástrojem s dekompilací, mezireprezentací a tokem řízení. Takový nástroj poskytne strukturu kódu, ne jen jeho textovou podobu.

Praktický postup

  1. Přečtěte firmware z hardwaru. Použijte Arduino Mega 2560 jako ISP programátor a AVRDUDE. Získáte soubory ve formátu Intel HEX i čisté binárky.
  2. Zvolte správnou cestu podle velikosti a složitosti. Pro malý, šablonovitý firmware můžete začít s GPT-5.6 Sol. U většího, stripped nebo optimalizovaného kódu začněte dekompilací.
  3. Nechte model pracovat s kontextem. Uveďte hardware, očekávané knihovny, periferie, architekturu i očekávané chování.
  4. Ověřte výsledek. Porovnejte funkci, vstupy a výstupy. Samotná textová podobnost nestačí.

REA je dostupný jako repozitář morluto/rea, na webu rea.tools nebo jako npm balíček rea-agents. Rychlé spuštění je dokumentováno příkazem npx rea-agents setup po instalaci Node.js a npm.

Pro statickou analýzu JavaScriptu není nutný nativní analytický engine, ale na Linuxu je potřeba kompatibilní ps dostupný přes PATH. Repozitář uvádí licenci MIT a zahrnuje také bezpečnostní dokumentaci popisující model hrozeb a bezpečnostní vlastnosti.

AVRDUDE je prvním krokem před jakýmkoli LLM — bez binárního kódu nelze začít.

Co si z toho vzít

  • Procentní shoda bez definice metriky je dojem, ne měření. Pokud neměříte konkrétní způsob porovnání, nemáte jednoznačný základ pro tvrzení o rekonstruovatelnosti.
  • GPT-5.6 Sol je dobrý pro prototyp a průzkum. Pro reálný reverzní inženýring je vhodné začít dekompilací a AI agenta využít jako doplněk.
  • Halucinace začíná tam, kde chybí symboly. U stripped firmware je bezpečnější opřít se o dekompilaci a doložené důkazy než o end-to-end generování.
  • Prompt pro rekonstruování firmware:
PROMPT TEMPLATE
Analyzuj binární soubor [název souboru] pro hardware [typ desky a mikrokontroléru].
Očekávané knihovny a periferie: [seznam očekávaných knihoven, čidel a displejů].
Cílová architektura a rozložení paměti: [typ procesoru, velikost flash a SRAM].
Očekávané chování nebo vstupy a výstupy: [popis očekávané funkce].
Uveď důkazy a omezení: [co je přímo patrné z binárky a co zůstává nejisté].
Nehádej proměnné, názvy registrů ani funkce bez důkazu a označ výslovně nejistá místa.
Cílový styl kódu: [požadovaný jazyk, konvence a úroveň optimalizace].
  • Kdy už reverzní inženýring vyžaduje specializované nástroje: pokud je firmware stripped, pokud chybí symboly, pokud je kód optimalizovaný a pokud jsou periferie složitější než Arduino UNO.