{"id":2067,"date":"2026-10-31T14:39:30","date_gmt":"2026-10-31T21:39:30","guid":{"rendered":"https:\/\/www.davidgunter.com\/?p=2067"},"modified":"2026-10-31T14:39:51","modified_gmt":"2026-10-31T21:39:51","slug":"clean-room-versus-reverse-engineering-how-ai-was-used-to-reproduce-proprietary-software","status":"publish","type":"post","link":"https:\/\/www.davidgunter.com\/es-mx\/2026\/10\/31\/clean-room-versus-reverse-engineering-how-ai-was-used-to-reproduce-proprietary-software\/","title":{"rendered":"Sala\u00a0limpia\u00a0frente\u00a0a\u00a0ingenier\u00eda\u00a0inversa:\u00a0c\u00f3mo\u00a0se\u00a0us\u00f3\u00a0la\u00a0IA\u00a0para\u00a0reproducir\u00a0software\u00a0propietario"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Anteriormente escrib\u00ed sobre c\u00f3mo se us\u00f3 la IA para reproducir productos de software de Microsoft, Adobe y AutoCAD mediante un m\u00e9todo supuestamente legal conocido como implementaci\u00f3n en sala limpia (<em>clean room<\/em>). Aqu\u00ed quiero profundizar un poco en lo que eso significa en comparaci\u00f3n con simplemente hacerle ingenier\u00eda inversa a un programa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ingenier\u00eda inversaing<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La ingenier\u00eda inversa es el proceso de analizar un programa compilado (un binario .exe), casi siempre sin acceso a su c\u00f3digo fuente original ni a sus documentos de dise\u00f1o, para entender c\u00f3mo funciona, cu\u00e1l es su arquitectura y c\u00f3mo fluyen sus datos. Esta pr\u00e1ctica permite comprender a fondo c\u00f3mo se desarroll\u00f3 el software, incluidos los algoritmos protegidos por propiedad intelectual que se hayan utilizado y otras t\u00e9cnicas de optimizaci\u00f3n. En \u00faltima instancia, se puede trabajar hacia atr\u00e1s de forma met\u00f3dica hasta poder escribir un c\u00f3digo fuente que, al compilarse, genere un ejecutable casi id\u00e9ntico al original. Con el c\u00f3digo fuente en la mano, es posible portar el software a otras arquitecturas y sistemas operativos, agregarle nuevas funciones, etc\u00e9tera. M\u00e1s adelante veremos por qu\u00e9 alguien querr\u00eda hacer esto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta pr\u00e1ctica no se limita al software; existe desde que la humanidad fabrica herramientas. Uno de los ejemplos m\u00e1s antiguos que se conocen ocurri\u00f3 durante la Primera Guerra P\u00fanica (264 a. C. \u2013 241 a. C.). Al inicio de la guerra, la Rep\u00fablica romana no contaba con una armada permanente. Los romanos capturaron un quinquerreme cartagin\u00e9s (un tipo de buque de guerra), lo desarmaron pieza por pieza, midieron sus componentes y lo usaron como modelo para construir su propia flota de unos 300 barcos en solo tres meses. La ingenier\u00eda inversa es una pr\u00e1ctica com\u00fan en todas las industrias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00eda parecer que la raz\u00f3n principal para hacerle ingenier\u00eda inversa a un software es robarse ilegalmente el producto de un competidor, y eso sin duda pasa. Pero en realidad hay muchas razones para hacerlo con bases legales m\u00e1s s\u00f3lidas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La primera es el an\u00e1lisis de malware. La mayor\u00eda estamos acostumbrados a recibir software e instalarlo a ciegas en el celular o la computadora sin pensar mucho en qu\u00e9 tan seguro es. Confiamos en las fuentes (Apple o Microsoft, por ejemplo) y suponemos que lo que nos dan es leg\u00edtimo. Sin embargo, hay muchos administradores de sistemas que necesitan, de forma cr\u00edtica, asegurarse de que el software que se instala en sus equipos no tenga intenciones maliciosas. La ingenier\u00eda inversa es una forma de descubrir amenazas ocultas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s del an\u00e1lisis de malware, se buscan otras vulnerabilidades ocultas. Estas no necesariamente existen por mala intenci\u00f3n; incluyen errores (<em>bugs<\/em>) u otras fallas de dise\u00f1o o de algoritmos que dejan un sistema expuesto a otros ataques.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las empresas de software de terceros, como las que desarrollan\u00a0<em>plug-ins<\/em>\u00a0u otros complementos para programas existentes, a menudo le hacen ingenier\u00eda inversa a los binarios. Pensemos, por ejemplo, en una empresa como NIK, que fabrica filtros para Adobe Photoshop. Es posible que le hagan ingenier\u00eda inversa a Photoshop para conocer las estructuras de archivo que usa para abrir y cerrar im\u00e1genes, entre otras cosas, con el fin de lograr compatibilidad. Seg\u00fan la jurisprudencia actual de Estados Unidos, esta forma de ingenier\u00eda inversa se considera &#8220;uso justo&#8221; (<em>fair use<\/em>). V\u00e9ase\u00a0<em>Sega Enterprises Ltd. v. Accolade, Inc.<\/em>\u00a0(977 F.2d 1510), 1992, USA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La modernizaci\u00f3n de sistemas heredados (<em>legacy<\/em>) es otra raz\u00f3n. A veces una empresa tiene un ejecutable antiguo que ya no funciona en un sistema nuevo y cuyo c\u00f3digo fuente quiz\u00e1 ya ni exista. Recurre a la ingenier\u00eda inversa para entender c\u00f3mo se cre\u00f3 el c\u00f3digo original y as\u00ed poder modificarlo o actualizarlo seg\u00fan sus necesidades futuras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por \u00faltimo, y esta lista no es para nada exhaustiva, una de las mejores razones para hacerle ingenier\u00eda inversa a un software es simplemente aprender nuevas habilidades y t\u00e9cnicas de programaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>La doctrina de sala limpia y la &#8220;muralla china&#8221;e and the Chinese Wall<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos por ahora que el objetivo es reproducir, con la mayor precisi\u00f3n posible, el producto de software de un competidor y luego ponerlo a disposici\u00f3n de otros (gratis o no). Usar la ingenier\u00eda inversa para copiar exactamente la implementaci\u00f3n y la funcionalidad del c\u00f3digo es, en gran medida, ilegal en la mayor\u00eda de las jurisdicciones. Para empezar, constituye una violaci\u00f3n de derechos de autor y un robo de propiedad intelectual. Puede implicar m\u00faltiples violaciones de patentes. Si el software copiado se obtuvo legalmente, lo m\u00e1s probable es que hayas aceptado unos T\u00e9rminos de Servicio (ToS) antes de poder instalarlo o ejecutarlo. Muchos de estos acuerdos estipulan que el software no puede someterse a ingenier\u00eda inversa. (La legalidad de estos acuerdos es un tema que merece su propia discusi\u00f3n). Romper los T\u00e9rminos de Servicio constituye un incumplimiento de contrato. Finalmente, la Ley de Derechos de Autor de la Era Digital (DMCA) de 1998 introdujo muchos matices en este terreno. Hacerle ingenier\u00eda inversa a un producto para sacar tu propia versi\u00f3n y hacerla pasar como tuya te meter\u00eda en un problem\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para mitigar estos riesgos de infracci\u00f3n, la industria tecnol\u00f3gica desarroll\u00f3 la metodolog\u00eda de &#8220;sala limpia&#8221; o &#8220;muralla china&#8221;. La ingenier\u00eda en sala limpia no es realmente una alternativa a la ingenier\u00eda inversa, sino un marco de trabajo disciplinado que separa el an\u00e1lisis t\u00e9cnico de un producto de software de la escritura de una nueva implementaci\u00f3n, mediante una divisi\u00f3n organizacional herm\u00e9tica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les doy uno de los ejemplos m\u00e1s conocidos. Cuando IBM lanz\u00f3 su primera computadora personal, dominaba el mercado. Aunque las m\u00e1quinas usaban hardware existente que cualquiera pod\u00eda comprar y ensamblar para fabricar sus propios clones de IBM (como se les llegar\u00eda a llamar), la pieza de software crucial que hac\u00eda que todo funcionara era el BIOS (Sistema B\u00e1sico de Entrada\/Salida), almacenado en un chip que la computadora lee primero al encenderse. El BIOS le indica a la computadora todo lo que necesita saber para acceder al resto del hardware y empezar a trabajar. En junio de 1982, una empresa llamada Columbia Data Products lanz\u00f3 su propio BIOS, que duplicaba la funcionalidad del BIOS de IBM, pero cuyos ingenieros de software nunca vieron el ejecutable del BIOS de IBM. Aunque fue impugnado en los tribunales, se determin\u00f3 que era legal. \u00bfC\u00f3mo lo lograron?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una implementaci\u00f3n en sala limpia divide el trabajo en dos equipos completamente separados: el equipo &#8220;sucio&#8221; y el equipo &#8220;limpio&#8221;. El equipo sucio trabaja directamente con el software objetivo. Estos ingenieros desensamblan los binarios, interceptan se\u00f1ales de hardware, analizan trazas de protocolos y mapean las relaciones entre entradas y salidas. Sin embargo, tienen estrictamente prohibido escribir c\u00f3digo de producci\u00f3n para el producto de reemplazo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En cambio, el \u00fanico entregable del equipo sucio es una especificaci\u00f3n funcional. Se trata de un documento exhaustivo y neutral que describe qu\u00e9 hace el software. Est\u00e1 completamente despojado de cualquier expresi\u00f3n propietaria que detalle c\u00f3mo fue escrito, lo cual podr\u00eda incluir algoritmos patentados, entre otras cosas. Esta especificaci\u00f3n define entradas, transiciones de estado v\u00e1lidas, condiciones de error, c\u00f3digos de retorno y comportamientos en casos l\u00edmite, usando descripciones abstractas, f\u00f3rmulas matem\u00e1ticas o lenguajes formales de definici\u00f3n de interfaces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luego, el equipo limpio recibe esta especificaci\u00f3n funcional y se encarga de escribir una implementaci\u00f3n de software a partir de ella. Este equipo est\u00e1 formado exclusivamente por desarrolladores que nunca tuvieron acceso al binario del sistema objetivo, a c\u00f3digo descompilado ni a documentaci\u00f3n t\u00e9cnica propietaria. Nadie del equipo limpio puede haber tenido contacto con los integrantes del equipo sucio. Si un ingeniero de la sala limpia se topa con un requisito ambiguo o un caso l\u00edmite inesperado, no inspecciona el software objetivo por su cuenta; env\u00eda una consulta formal al otro lado de la barrera. El equipo sucio verifica el comportamiento en el sistema objetivo y actualiza la especificaci\u00f3n en consecuencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea es que el equipo limpio simplemente produce software basado en un documento que le entregaron y que describe, en lenguaje no propietario, lo que el software debe hacer. En general, los tribunales han determinado que este m\u00e9todo est\u00e1 libre de los problemas legales inherentes a la ingenier\u00eda inversa simple.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La IA entra en escena<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que ahora entiendan el proceso de ingenier\u00eda inversa y lo que significa una implementaci\u00f3n en sala limpia. Ahora podemos empezar a hablar, a grandes rasgos, de lo que hizo ArtCraft para reproducir los productos de software de algunos de los proveedores m\u00e1s grandes del mundo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e1sicamente, ArtCraft construy\u00f3 un sistema compuesto por un equipo sucio y un equipo limpio, formados en su totalidad por agentes de IA.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los agentes de IA del equipo sucio tuvieron acceso a herramientas para examinar binarios existentes. Por razones legales, el equipo de ArtCraft decidi\u00f3 aplicar estrictamente la regla de que ning\u00fan binario pod\u00eda descompilarse ni desensamblarse de ninguna forma. En su lugar, se aliment\u00f3 al sistema con todos los documentos p\u00fablicos disponibles sobre el software, como especificaciones de API, estructuras de archivos, etc. Un ejemplo ser\u00eda un documento que Adobe ofrece libremente y que describe la estructura de sus archivos de imagen PSD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los agentes sucios tambi\u00e9n tuvieron acceso al software que se iba a examinar. La forma de explorarlo fue hacer que estos agentes actuaran como personas usando el software, probando cada funci\u00f3n y opci\u00f3n de men\u00fa publicada solo para ver qu\u00e9 efecto ten\u00eda. Ten\u00edan acceso total al sistema donde corr\u00eda el software y pod\u00edan emular todas las combinaciones de teclas, movimientos y clics del mouse conocidos. Pod\u00edan ver c\u00f3mo el software interactuaba con la m\u00e1quina y c\u00f3mo se abr\u00edan, generaban o cerraban archivos. Como no son humanos, no necesitan dormir y operan a velocidades electr\u00f3nicas, lograron determinar por completo lo que pod\u00eda hacer un programa en cuesti\u00f3n de horas. Los resultados se pasaban a otros agentes del equipo sucio encargados de redactar la especificaci\u00f3n que un programador tradicional usar\u00eda para empezar a escribir el software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El equipo limpio estaba formado por agentes de IA que usaban Claude Opus 5.5 de Anthropic para leer el documento de especificaci\u00f3n y escribir todo el c\u00f3digo nuevo exclusivamente en el lenguaje de programaci\u00f3n Rust, de modo que compilara y se comportara exactamente seg\u00fan lo especificado. Estos agentes de IA nunca examinaron el software original.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El sistema tambi\u00e9n incluye un ciclo de retroalimentaci\u00f3n que compila el c\u00f3digo en Rust y somete el nuevo software al mismo proceso que se us\u00f3 con el software propietario. De esto se encargan los agentes sucios, que crearon un arn\u00e9s de pruebas (<em>test harness<\/em>): un conjunto de tareas que el nuevo software debe superar para verificar su compatibilidad. Una tarea, por ejemplo, podr\u00eda ser aplicar un filtro de imagen a un archivo, tanto con el nuevo software como con Photoshop de Adobe, y verificar que los archivos resultantes coincidan byte por byte. Si la prueba falla, los agentes sucios averiguan por qu\u00e9 y agregan nueva informaci\u00f3n a la especificaci\u00f3n para resolverlo. De nuevo, gracias a la velocidad con la que funciona este sistema, todo esto ocurre en poco tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El resultado final, tras varias iteraciones del ciclo de retroalimentaci\u00f3n, es un c\u00f3digo que compila y se ejecuta, y que se ve y se comporta casi igual que el software propietario. Esto es lo que ArtCraft ya hizo con toda la l\u00ednea de productos de Adobe, la suite Office 365 de Microsoft y el famoso software CAD de AutoCAD. La calidad no es perfecta: la mayor\u00eda de los usuarios y probadores (yo incluido) la consideran de calidad alfa. Sin embargo, hay suficiente material para que una comunidad m\u00e1s amplia de desarrolladores de c\u00f3digo abierto la pula r\u00e1pidamente, corrija problemas y agregue las funciones necesarias. Desde mi punto de vista personal, la mayor ventaja es que todos estos paquetes compilan y corren en Linux, lo que me da una forma completamente nueva de aprovechar hardware viejo, como mi MacBook Pro de Apple de 2016. Apple ya no le da soporte a la MBP con actualizaciones de software ni de seguridad, pero puedo correr Linux en ella sin problema. Tambi\u00e9n tengo una computadora de escritorio con Linux que arm\u00e9 por menos de 600 d\u00f3lares (USD) y que compite con lo que puede hacer una Apple M6 Mini nueva, que cuesta m\u00e1s de 2,000 d\u00f3lares. Poder correr en ella software (incluso gratuito) que antes solo exist\u00eda para macOS o Windows es una bendici\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>L\u00edmites t\u00e9cnicos y controversias legalesversies<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque la velocidad t\u00e9cnica del proyecto no tiene precedentes (llevar siete aplicaciones distintas a fase alfa en cuesti\u00f3n de semanas), la estrategia de implementaci\u00f3n en sala limpia enfrenta un escepticismo considerable. He visto algunos videos de YouTube de expertos legales y t\u00e9cnicos que tocan varios puntos importantes que deben atenderse.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The La muralla china:\u00a0<\/strong>Como el c\u00f3digo lo escribi\u00f3 un LLM, es imposible verificar de forma independiente a qu\u00e9 datos propietarios o c\u00f3digo fuente estuvo expuesto el modelo durante su entrenamiento base. Esto se ha mitigado en parte porque ArtCraft public\u00f3 otro proyecto de c\u00f3digo: el conjunto completo de herramientas de IA que usaron, para que cualquiera que quiera hacer un trabajo similar con otro software pueda hacerlo. Esto tambi\u00e9n permite que cualquiera examine a detalle su configuraci\u00f3n de sala limpia.<\/li>\n\n\n\n<li><strong>Violaci\u00f3n de los T\u00e9rminos de Servicio:<\/strong>\u00a0\u00bfRecuerdan que antes mencion\u00e9 que hay que aceptar los T\u00e9rminos de Servicio de un proveedor para instalar o usar su software? Aunque se evite la infracci\u00f3n de derechos de autor gracias a la sala limpia, analizar software comercial para extraer su comportamiento normalmente viola los T\u00e9rminos de Servicio y los EULA (Acuerdos de Licencia de Usuario Final) est\u00e1ndar. Este podr\u00eda ser el camino que tome la industria para combatir a ArtCraft y a otros. Hasta ahora, seg\u00fan mi investigaci\u00f3n, no existe una resoluci\u00f3n judicial clara que haya hecho valer las cl\u00e1usulas de estos acuerdos que proh\u00edben la ingenier\u00eda inversa. Esas cl\u00e1usulas, por ejemplo, prohibir\u00edan m\u00e9todos de uso justo que los tribunales ya determinaron que son legales.<\/li>\n\n\n\n<li><strong>Infracci\u00f3n de derechos de autor y marcas registradas:<\/strong>\u00a0Aunque todo lo dem\u00e1s quede libre de problemas legales, podr\u00edan existir estas otras infracciones. Los \u00edconos y los textos usados en los mensajes internos y en los men\u00fas de ayuda pueden formar parte de la propiedad intelectual (PI) del software. Los desarrolladores de ArtCraft tienen que revisar esto con lupa y reemplazar el contenido donde sea necesario.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Anteriormente escrib\u00ed sobre c\u00f3mo se us\u00f3 la IA para reproducir productos de software de Microsoft, Adobe y AutoCAD mediante un m\u00e9todo supuestamente legal conocido como implementaci\u00f3n en sala limpia (clean room). Aqu\u00ed quiero profundizar&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":2079,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[214,14],"tags":[223,224],"class_list":["post-2067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nonfiction","category-science","tag-ai","tag-artificial-intelligence"],"_links":{"self":[{"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/posts\/2067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/comments?post=2067"}],"version-history":[{"count":5,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/posts\/2067\/revisions"}],"predecessor-version":[{"id":2078,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/posts\/2067\/revisions\/2078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/media\/2079"}],"wp:attachment":[{"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/media?parent=2067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/categories?post=2067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.davidgunter.com\/es-mx\/wp-json\/wp\/v2\/tags?post=2067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}