¿Está la IA aprendiendo a reconstruir programas? Entiende la recompilación que se hizo viral en internet | TecEdi
Inteligencia artificial
¿Está la IA aprendiendo a reconstruir programas? Entiende la recompilación que se hizo viral en internet
Los vídeos afirman que la inteligencia artificial ya puede reconstruir software como Photoshop. Entiende lo que es posible con ingeniería inversa, descompilación y recompilación.
Por Ederson Andrade · 15 de octubre de 2026 · 8 min de lectura
Los vídeos en redes sociales sugieren que la inteligencia artificial ya puede desmontar un programa como Photoshop y devolverlo listo, gratuito y equivalente al original. La frase se une a diferentes procesos. Crear un editor de imágenes con características similares, analizar un ejecutable y convertir un programa a otra plataforma son tareas diferentes. Todos pueden recibir ayuda de la IA, pero ninguno demuestra por sí solo que el código de una aplicación propietaria haya sido recuperado.
El caso reciente de PhotoCraft ayuda a entender la confusión. Sus gestores presentan el proyecto como un editor de imágenes escrito en Rust y como una implementación independiente, basada en especificaciones públicas y comportamientos observados. Es una descripción de los propios desarrolladores, no una auditoría independiente de equivalencia con Photoshop. El repositorio no presenta el proyecto como una descompilación de código de Adobe. Al mismo tiempo, herramientas como REA proponen conectar agentes de IA al análisis de aplicaciones y archivos binarios. La existencia de estas herramientas tampoco demuestra que un software completo haya sido reconstruido fielmente.
Para entender qué está realmente en juego, sigamos un Programa ficticio que suma dos números. Las demostraciones a continuación son simplificaciones educativas; no muestran código de Photoshop ni una herramienta real que realice ingeniería inversa.
Primero, ¿cómo nace un ejecutable?
El punto de partida suele ser el código fuente: instrucciones escritas por personas en un lenguaje de programación. Un compilador puede analizar este código, convertirlo en representaciones intermedias y producir instrucciones para un procesador. Un proceso de compilación también puede reunir bibliotecas, recursos e información necesaria para el sistema operativo. O Proyecto LLVM documenta el uso de una representación intermedia; su Backends Generar código para objetivos específicos. Este es un ejemplo de arquitectura de compiladores, no una secuencia obligatoria para todos los programas.
En nuestro ejemplo, la intención original encaja en una línea: somar(a, b) = a + b. El ejecutable contiene una forma de realizar la operación, pero puede no almacenar los nombres elegidos por el programador, los comentarios ni el archivo original. Las optimizaciones también pueden reorganizar las operaciones antes de generar el resultado final.
TECEDI / HISTORIA INTERACTIVA
Como um programa pode renascer?
Desplázate para transformar el programa ↓
Programa originalv1
+
+
Resultado5
Escena 01 de 05
Aparece el programa
Prueba la interfaz original. Por ahora solo observamos su comportamiento.
Aparece el programa
Prueba la interfaz original. Por ahora solo observamos su comportamiento.
La interfaz se abre
Detrás de la pantalla hay una regla escrita en código. La compilación puede borrar nombres y comentarios.
Ahora vemos bits
Los números también tienen representación binaria. Un ejecutable real contiene instrucciones y mucho más contexto.
Reconstruimos una hipótesis
Las entradas y salidas sugieren una regla. Nuevas pruebas pueden confirmarla o refutarla.
Aparece otra aplicación
La nueva implementación coincide en los casos probados. Esto no demuestra equivalencia total.
Simulación didáctica: los bits representan los números introducidos, no instrucciones extraídas de una aplicación real.
Esta pérdida de contexto explica por qué pasar de un ejecutable a algo legible requiere interpretación. Saber que una secuencia de sentencias suma dos valores no revela necesariamente cómo se organizó todo el proyecto.
¿Qué puede observar la ingeniería inversa?
La ingeniería inversa es investigar cómo funciona un sistema basándose en lo que está disponible. En el programa ficticio, podemos insertar 2 e 3, observa la salida 5, examinar las sentencias y probar otros valores. Una herramienta de análisis puede mostrar funciones, referencias y flujo de ejecución. O Ghidra, mantenido por la NSA, ofrece capacidades de desensamblaje, descompilación y análisis gráfico.
Las observaciones permiten crear hipótesis. Si el programa regresa 5 a 2 e 3, puede que se sume, pero una sola prueba no es suficiente: otra regla también podría producir 5 en este caso. Las entradas negativas, grandes números, errores y condiciones ambientales ayudan a distinguir comportamientos. En programas reales, la dificultad aumenta con interfaces, archivos, plugins, llamadas de red, protección y dependencias externas.
TECEDI / HISTORIA INTERACTIVA
Qué revela la ingeniería inversa
Desplázate para transformar el programa ↓
Programa originalv1
+
+
Resultado5
Escena 01 de 05
Observar
Probamos entradas conocidas y anotamos las salidas.
Observar
Probamos entradas conocidas y anotamos las salidas.
Inspeccionar
Las herramientas muestran instrucciones y flujo de ejecución.
Inferir
El analista propone una regla y la comprueba con más pruebas.
IA opcional
Un modelo puede sugerir otra hipótesis, que aún debe comprobarse.
Reconstruir
Una nueva implementación puede reproducir los casos probados; no se garantiza equivalencia total.
El esquema usado en vídeos, "análisis → ejecutable original → nuevo ejecutable", omite gran parte de este trabajo. El paso de IA es opcional, y el resultado puede ser solo una descripción parcial, una nueva implementación de una función o una traducción a otro entorno. No existe un paso automático y universal del archivo original a una copia fiel.
¿Decompilar devuelve el código fuente original?
Un descompilador transforma instrucciones de bajo nivel en una representación que parece código de alto nivel. En nuestro ejemplo, podría presentar return a + b. Esta salida es una Hipótesis legible sobre el comportamiento. No necesariamente recupera el nombre real del puesto, sus comentarios, su estructura de archivos ni las decisiones del autor.
El archivo contiene operaciones para una arquitectura específica.
Instrucciones
El archivo contiene operaciones para una arquitectura específica.
Pseudocódigo
Un descompilador sugiere una forma de alto nivel.
Verificación
La hipótesis debe compararse con el comportamiento real.
La distinción importa porque el código que compila puede comportarse de forma diferente. En DecompileBench, los investigadores compararon métodos y enfoques tradicionales con modelos de lenguaje en funciones extraídas de programas reales. Los resultados de los métodos de IA fueron evaluados como más comprensibles según ciertos criterios, pero tenían Corrección funcional menor en el conjunto estudiado. El resultado describe esa prueba de funciones; no mide la capacidad de reconstruir Photoshop ni ninguna aplicación completa.
Por lo tanto, un análisis serio compara la salida sugerida con la ejecución observada. La apariencia convincente del pseudocódigo es insuficiente cuando un programa necesita preservar resultados, formatos de archivo y respuestas a errores.
¿Entonces qué significa "recompilar"?
En el sentido más directo, recompilar es recompilar un código fuente disponible. En discusiones sobre preservación de juegos, cambio de plataforma o ingeniería inversa, la palabra a veces se usa para un proceso más amplio: Reconstruir un comportamiento de implementación o traducir y luego generar un nuevo programa. Estos usos no son idénticos.
También está el Recompilación estática de binarios, que merece un nombre propio. El proyecto N64: Recompilado describe una herramienta que traduce el código de un juego de Nintendo 64 a C, que luego se compila para otra plataforma. O Zelda 64: Recompilado Usa esta forma para tomar La Máscara de Majora al ordenador. Según los responsables, el proyecto no distribuye los recursos del juego y requiere que el original se ejecute; el equipo también declara que no utiliza IA generativa en el desarrollo. Por lo tanto, este caso muestra que la expresión "recompilación" puede designar una técnica de conversión binaria real sin participación de IA. No debe confundirse con pedir a un modelo que recree una aplicación observando su interfaz.
Nuestro ejemplo puede reescribirse para otro procesador: inferimos que la función suma dos valores, implementamos esta regla y la compilamos en el nuevo objetivo. La prueba 2 + 3 = 5 indica que el caso simple funciona. Tendríamos que probar otras entradas para aumentar la confianza. En una aplicación grande, también entran en juego bibliotecas, formatos de archivo, interfaz, rendimiento y servicios externos. Algunas partes pueden depender de sistemas que no existen en la plataforma objetivo.
Observamos el comportamiento en la arquitectura inicial.
Origen
Observamos el comportamiento en la arquitectura inicial.
Regla reconstruida
Escribimos una implementación equivalente para el caso probado.
Nuevo destino
Compilamos para otra arquitectura y repetimos las pruebas.
Esta demo muestra Equivalencia en casos probados, no la identidad con el programa original. Si una versión no abre un archivo que la otra abre, o produce resultados diferentes en una condición rara, aún queda trabajo por hacer. "Funciona en la demo" y "reemplaza el producto en uso cotidiano" son valoraciones muy diferentes.
En los juegos, convertir el código de la CPU tampoco resuelve por sí solo los gráficos, el audio, los controles, la memoria y las funciones de la antigua consola. Estas partes requieren adaptaciones o componentes adicionales. El ejemplo de La Máscara de Majora implica un motor de renderizado y un trabajo específicos para la plataforma objetivo, descrito en el Repositorio de Proyectos. Esto te ayuda a medir el tamaño del salto entre convertir sentencias de una función simple a ofrecer una experiencia completa.
¿Dónde entra la inteligencia artificial en este proceso?
Un modelo de IA puede resumir funciones, sugerir nombres para partes desconocidas, proponer pseudocódigo y ayudar a crear pruebas. Herramientas como los REA organizan el acceso de los agentes a los métodos de inspección. Esto puede acelerar la investigación, especialmente cuando hay muchos archivos y funciones. El analista aún debe decidir qué hipótesis tienen sentido y verificar el resultado mediante pruebas reproducibles.
Una persona estudia salidas e instrucciones y propone una hipótesis.
Análisis humano
Una persona estudia salidas e instrucciones y propone una hipótesis.
Asistencia de IA
Un modelo sugiere pseudocódigo y pruebas, que pueden contener errores.
Validación
Se comparan las versiones con distintas entradas y se investigan diferencias.
Imagina que la IA ve la salida 5 a 2 e 3 y sugieren "suma". Una prueba con -2 e 3, seguido de otros casos, puede reforzar esta hipótesis. Si el programa también redondea, limita valores o maneja errores de una manera específica, la primera sugerencia puede estar incompleta. La ayuda es útil para formular preguntas; la validación determina lo que podemos decir.
¿Y la historia de Photoshop?
O PhotoCraft Es un proyecto concreto de editor de imágenes. Sus responsables afirman que lo crearon de forma independiente y que lee archivos PSD. Adobe publica un Especificación del formato PSD/PSB Destinado a terceros que deseen leer y escribir estos archivos. Compatibilidad con un formato documentado y similitud de interfaz no demuestres acceso al código fuente de Adobe.
Las capturas de pantalla, listas de características o vídeos cortos tampoco son suficientes para demostrar que una alternativa sustituye a Photoshop en todos los trabajos. Serían necesarias pruebas independientes con diversos documentos, flujos profesionales, plugins, rendimiento y fiabilidad. Sin esta verificación, la afirmación más precisa es que existe una alternativa en desarrollo con características declaradas por sus creadores. La afirmación de que "la IA ha reconstruido completamente Photoshop" sigue sin suficiente demostración en las fuentes examinadas para este artículo.
¿Existen límites de derechos de autor?
Sí. Los programas informáticos reciben protección legal, y las condiciones para estudiar, integrar, copiar, modificar o distribuir software varían según el caso, la licencia y la jurisdicción. En Brasil, el Ley de Software, Nº 9.609/1998, define derechos y situaciones específicas que no constituyen una ofensa para el titular. No ofrece una autorización general para copiar un programa propietario y distribuirlo. A Especificación PSD publicada por Adobe demuestra, por otro lado, que la información técnica puede estar disponible para la interoperabilidad.
Para el lector, la distinción práctica es preguntar qué material se utilizó, qué comportamiento se reprodujo y qué se distribuirá. Una nueva aplicación que abre un formato documentado, un estudio de seguridad autorizado y una copia de código propietario plantean diferentes cuestiones. Los casos concretos requieren su propia evaluación legal.
¿Qué merece la pena ver en los próximos vídeos virales?
Busca la demo completa: ¿cuál es el programa original, qué entradas se han probado, qué resultados coinciden y qué limitaciones se reportan? Mira si el autor tiene su propio código, un análisis ejecutable o simplemente una interfaz similar. También pregunta si las pruebas han sido repetidas por personas independientes.
La IA puede acelerar partes de la ingeniería inversa y el desarrollo. El avance medible vendrá de Resultados verificables, con funciones preservadas, diferencias documentadas y condiciones claras de uso. Hasta entonces, nuestro pequeño programa que suma números sirve como buen reglante: reconstruir un ejemplo es posible de explicar; reconstruir toda una aplicación requiere demostrar mucho más.