REA: com els agents d’IA investiguen una aplicació sense el codi font
El vídeo de Jorge Marfil prova REA amb una caixa forta de 242 funcions sense nom. Què pot deduir l’eina, quines proves retorna i per què no és una còpia automàtica.
El vídeo de Jorge Marfil es pregunta si un agent d’intel·ligència artificial pot entendre una part d’una aplicació sense accedir al seu codi font. La resposta que presenta passa per REA, sigles de Reverse Engineer Anything: un projecte que connecta agents de programació amb eines d’anàlisi perquè investiguin el funcionament del programari i mostrin les proves de les seves conclusions.
La precisió és important: REA no retorna el codi original ni clona una aplicació en un clic. Pot oferir pseudocodi, assemblador, cadenes i relacions entre funcions. L’agent interpreta aquestes pistes; una persona les ha de verificar. Un resum convincent no és una prova per si sol.
1. Investigar amb evidències
REA fa de pont entre l’agent i eines d’enginyeria inversa, com ara Ghidra. Davant una pregunta concreta, l’agent pot seguir funcions i relacions del programa, demanar informació addicional i explicar com arriba a una hipòtesi. Les capacitats es poden utilitzar des del terminal o mitjançant MCP, un protocol perquè els agents consultin eines locals.
Això canvia el flux de treball: en comptes de llegir cada peça aïllada, l’agent ajuda a seguir la ruta que sembla relacionada amb una funció. Però les inferències poden ser incompletes. En un binari sovint falten els noms i comentaris originals, i una anàlisi estàtica no necessàriament descriu tot el comportament en execució.
2. La caixa forta amb 242 funcions sense nom
La prova del vídeo parteix d’una aplicació de caixa forta creada per l’autor. N’aparta el codi font i elimina els noms de 242 funcions. Amb REA i Ghidra connectats a un agent, intenta trobar la regla del codi de desbloqueig.
L’interès no és només si l’agent l’encerta, sinó si pot mostrar per què pensa que ha localitzat la lògica i quines incerteses queden. Aquest exemple controlat il·lustra el potencial, però no demostra que qualsevol programa sigui igual de fàcil d’analitzar: les proteccions, dependències i diferències entre formats poden canviar molt el resultat.
3. Pseudocodi no és codi font recuperat
Les eines de descompilació tradueixen instruccions a formes més llegibles, però no recreen automàticament el projecte original. Poden faltar-hi noms, estructura d’alt nivell, comentaris i decisions de disseny. REA coordina l’anàlisi i les preguntes de l’agent; no pot recuperar informació que ja no és dins de l’artefacte.
El repositori oficial descriu capacitats per a binaris natius, JavaScript i Electron, webs i altres formats, amb requisits diferents segons el cas. L’anàlisi nativa profunda necessita un motor compatible. Tenir REA instal·lat no vol dir que qualsevol aplicació es pugui inspeccionar sense configuració addicional.
Per tant, és més precís parlar d’un assistent d’investigació. Les conclusions poden orientar una implementació pròpia, però aquesta s’ha de dissenyar i provar com qualsevol altre canvi de programari.
4. Usos possibles i límits
Entendre una funció sense repositori, investigar compatibilitat, estudiar programari antic o documentar el comportament d’un programa propi són exemples d’usos potencials. El vídeo també repassa casos publicats, com un joc de 1996 i la calculadora de Windows.
Això no fa que qualsevol aplicació sigui lliure per copiar. Cal considerar la titularitat, les condicions d’ús, les llicències de les eines i les normes aplicables. El repositori oficial indica que REA s’ha d’utilitzar per a recerca, educació, interoperabilitat, preservació o anàlisi de programari propi o autoritzat. És orientació general, no una conclusió legal sobre un cas particular.
5. Què vol dir que l’anàlisi sigui local
El projecte diu que l’aplicació analitzada no s’envia a un servei d’anàlisi allotjat. Tanmateix, l’agent rep els resultats i el proveïdor del model pot tenir les seves pròpies polítiques de dades. Abans d’examinar programari confidencial, convé revisar on s’executa l’agent i com tracta el context que rep.
També cal separar la llicència MIT del codi REA de les llicències d’eines externes. Programes comercials com Hopper o IDA poden tenir condicions pròpies; la llicència del repositori no concedeix drets sobre aquestes eines ni sobre el programari objecte de l’anàlisi.
Conclusions principals
REA acosta l’enginyeria inversa als agents de programació: ajuda a seguir una funció, reunir pistes i exposar evidències. La demostració de les 242 funcions és suggeridora, però no equival a recuperar el codi original ni garanteix que es pugui reproduir qualsevol aplicació.
El resultat depèn de les eines configurades, de la qualitat de les evidències i de la revisió humana. És una nova manera d’investigar programari, no una drecera que substitueixi el criteri tècnic, les proves o l’autorització per analitzar-lo.
Contrast i context
Fonts consultades
- 01
-
02
REA — repositori oficial REA: Reverse Engineer Anything
-
03
REA — repositori oficial Disclaimer and responsible-use guidance