¿Cuál es el mejor ejemplo de ingeniería inversa que has visto? Puede ser en informática, software, hardware o cualquier tipo de sistema en la historia.

Algunos de los ejemplos más interesantes de ingeniería inversa sucedieron durante el primer apogeo real de las consolas de videojuegos caseros, las consolas de segunda generación de finales de los 70 y principios de los 80. El sitio web oficial de videojuegos de Intellivision Classic cuenta algunas de estas historias.


Para aquellos que pueden haber sido demasiado jóvenes como para experimentar uno, la consola Intellivision de Mattel Electronics fue una de las más avanzadas de su generación. Empleaba un procesador de 16 bits y un conjunto de chips de General Instruments e incluso tenía su propio “sistema operativo”, el “Ejecutivo” o “Exec”, que incluía rutinas comunes que los juegos podían usar. Los juegos fueron suministrados en cartuchos ROM. El Exec y muchos de los primeros juegos fueron diseñados por una empresa contratada, APh Technology Consultants; juegos posteriores fueron creados por el personal de programación interno de Mattel.


Eventualmente, terceros se involucraron en la ingeniería inversa para producir sus propios juegos para la consola. Entre ellos se destacó Activision (que sigue siendo un nombre en el desarrollo de juegos en la actualidad), que no solo modificó la ingeniería del Exec, sino que contrató a algunos de los desarrolladores de Mattel y APh, incluido David Rolfe (que había dejado APh junto con otras personas para que se formaran). una nueva compañía, Cheshire Engineering), el autor original de Exec. Activision advirtió a todos los desarrolladores que no podían usar ninguno de sus conocimientos previos sobre el sistema, por temor a que Mattel los demandara; solo podían usar las características de Exec que Activision les mencionó explícitamente. Rolfe se burló de esto en su código fuente para el juego Beamrider ; copió las instrucciones de Activision para configurar los parámetros iniciales del juego, pero agregó comentarios como ” Las siguientes instrucciones hacen cosas mágicas “, ” Me pregunto qué hace ESTO ” o simplemente ” ????? “.


Atarisoft, que también contrató a un par de programadores de Mattel (y, de hecho, fue demandado por Mattel por hacerlo) fue mejor: sus juegos Intellivision incluían su propio reemplazo para Exec, que estaba incorporado en cada cartucho de juegos como biblioteca. . Fue apodado el “MCP”, después del malvado Master Control Program de la película TRON .


Coleco, creadores del sistema de juego rival ColecoVision, también modificó la ingeniería de la consola para lanzar algunos de sus juegos para Intellivision, especialmente Donkey Kong . Cuando Mattel lanzó una versión reempaquetada de su consola, la Intellivision II, en 1983, los cartuchos Coleco no funcionaron. Mattel sostuvo que el sistema Intellivision era demasiado complejo para que los desarrolladores externos lo dominaran, y los consumidores deberían seguir con los juegos Mattel genuinos; en realidad, habían modificado el Exec de Intellivision II para hacer que los juegos de Coleco fracasaran a propósito .


Pero aquí está la parte más interesante de la ingeniería inversa de la era Intellivision. General Instruments, el proveedor de los chips para Intellivision, era conocido principalmente como un fabricante de cajas convertidoras de cables (a través de su división Jerrold); crearon un complemento para la consola llamada “PlayCable”, que permitiría a los operadores de cable locales enviar juegos de Intellivision a través del sistema de televisión por cable, para que la unidad de PlayCable los descargue y el Intellivision los lea como si fueran cartuchos.


El sistema no resultó ser muy popular, pero un par de muchachos de Nueva Jersey, Joe Jacobs y Dennis Clark, decidieron conectar un PlayCable a una computadora personal y buscar algo para ver qué podían encontrar. Lograron descodificar con éxito el Exiv Intellivision y comenzar a escribir su propio código de juego. Se pusieron en contacto con Mattel y les ofrecieron sus servicios antes de ir a otra compañía; Mattel terminó pagándoles $ 24,000 para convertir el juego arcade Bump ‘N’ Jump .


Por supuesto, la historia no termina bien. Todo el hardware y software que inundó el mercado casi lo saturó, lo que llevó al Gran Desplome de los Videojuegos de 1983. (Se puso ridículo al final; Purina patrocinó el desarrollo de un juego llamado Chase the Chuck Wagon , después de su comida para perros, y incluso Quaker Oats tenía una división de videojuegos.) Mattel Electronics cerró, junto con muchas otras compañías de videojuegos, y los videojuegos caseros podrían haberse arruinado para siempre en los EE. UU., de no haber sido por Nintendo, lo que marcó el comienzo de años de dominación japonesa de mercado de consolas. (Las consolas de la tercera generación y posteriores incluyeron medios tecnológicos explícitos, desde los “chips de bloqueo” de Nintendo hasta las claves criptográficas en las consolas modernas, para permitir al fabricante de la consola controlar qué juegos se lanzaron para la plataforma, evitando el exceso de software de baja calidad. que vimos en la segunda generación.)

Punta de sombrero: A Daniel Catalan por la A2A, ya los “Blue Sky Rangers” por producir la consola y los juegos con los que pasé tanto tiempo en mi juventud.

En ingeniería inversa de software, el Proyecto ReactOS es probablemente el más impresionante. Es una réplica del sistema operativo Windows, hecha por binarios de Windows de ingeniería inversa de sala limpia y luego codificada a partir de la especificación resultante. No solo puede ejecutar los ejecutables de Windows, sino que también ofrece un código fuente que proporciona la mejor información sobre los aspectos internos de Windows.

En hardware, recomendaría el blog analítico de Flylogic. Chris Tarnovski es uno de los especialistas líderes en hardware de ingeniería inversa, seguro y resistente a la manipulación.

Cipla Pharmaceuticals.

Es una de las compañías farmacéuticas más grandes de la India. La mayor parte de su flujo de ingresos es mediante la fabricación de medicamentos genéricos mediante ingeniería inversa del contenido químico de los medicamentos producidos por otros productos farmacéuticos importantes. Se puede decir que se burlan de ciertas leyes de patentes, pero yo diría que es más bien hacer algo bueno para la humanidad y obtener ganancias al mismo tiempo. Por ejemplo, sus medicamentos contra el SIDA cuestan $ 300 por año en comparación con $ 12000 cobrados por otras compañías. Y el gobierno y el poder judicial de la India también apoyan esto. Un reciente fallo de la Corte Suprema no permitió que el fabricante internacional de medicamentos Novartis patentara su medicamento contra el cáncer ‘Gleevac’ en la India.

¿Alguien sabe por qué stuxnet es el primero de su tipo? Debido a que es el primer malware que contenía una carga útil de PLC, aquí está el video de FX que explica cómo aplicar ingeniería inversa al código PLC que se encuentra en stuxnet y escribir módulos de procesador IDA para él.

Cuando estaba tratando de decidir qué auto comprar, en 2005, me encontré con algo interesante que estaba sucediendo en el universo entusiasta de Subaru. Un compañero llamado Colby Boles había descubierto cómo aprovechar las características de actualización de los microprocesadores en las unidades de control del motor (ECU), y estaba vendiendo hardware barato (con software libre) que permitía a una persona con una computadora portátil descargar, modificar, y subir la imagen ROM de la ECU. Su empresa: Tactrix. Ha resuelto tres generaciones de ECU de Subaru, y también la mayoría (tal vez todas) de Mitsubishi Evos.

Mientras tanto, otro entusiasta, cuyo primer nombre es Bill y cuyo apellido no conozco, hizo su misión de aplicar ingeniería inversa a cada ROM de Subaru bajo el sol. Y esa es mi respuesta para este hilo. Subaru pone una ROM diferente en cada modelo y año de automóvil que fabrica, y en cada mercado en el que se encuentran. Y a menudo han lanzado dos o tres revisiones de ROM para un modelo / año / mercado determinado. Y este tipo, Bill, hizo ingeniería inversa a todos ellos. No es 100% de ingeniería inversa, pero sí lo suficiente como para permitir que los propietarios (y más comúnmente, los sintonizadores profesionales) vuelvan a sintonizar la ECU para hacer un uso completo de las mejoras bajo el capó, que van desde tubos de escape de mayor diámetro hasta turbocompresores más grandes para un mayor flujo. inyectores de combustible, para … casi cualquier cosa que haga que un motor sea más fuerte. Docenas de tablas en docenas de ROM … tal vez cientos.

Y lo hizo todo gratis, durante años. Finalmente, fue contratado por una compañía que fabrica productos comerciales en este espacio, Cobb Tuning. Cobb hizo, y sigue haciendo, esencialmente lo mismo, para una variedad de marcas, por lo que no fue una gran sorpresa.

Un puñado de personas se acercaron para llevar a cabo el trabajo que Bill estaba haciendo. La comunidad de chicos nerd de coches que surgieron en torno a los esfuerzos de ingeniería inversa de Bill y Colby todavía va fuerte. Muchos de los propietarios de Subaru les deben a los muchachos una deuda de gratitud por la potencia adicional que adquirieron a través de sus esfuerzos de ingeniería inversa.

Me asombra un poco que un par de individuos, uno voluntario, puedan revertir las ECU en toda la línea de productos del fabricante de automóviles.

Cuando me di cuenta de que podía comprar un cable de $ 80 y un software gratuito para conectar mi computadora portátil a una ECU, eso redujo bastante mis opciones. Así que, me compré un Subaru a mí mismo. Y poco después aproveché los productos de Colby y el conocimiento de Bill.

Creo que AMD necesita estar en esta lista.

Creo que es muy bueno para los consumidores si tienen varias empresas para elegir eliminar el monopolio. El chip anterior, Am386, es básicamente un 80386 de ingeniería inversa. Llevó 5 años hacer esto. La competencia resultó en que AMD demostró ser más que una competencia para el diseño de Intel. Donde el Intel 386 alcanzó los 33MHz, el Am386DX alcanzó los 40MHz, cerrando en el rendimiento de 486.

Pegado desde

Aquí es donde AMD comenzó a ofrecer mejores chips de rendimiento a un precio más bajo porque no tienen los grandes presupuestos de I + D que tiene Intel.

Starforce fue uno de los mecanismos de protección contra copia de software más duros de su época. Finalmente, fue diseñado por ingeniería inversa por el grupo pirata RELOADED en marzo de 2006.

Fue desarrollado por StarForce Technologies (antes Tecnología de Protección )

Seguridad

Cuando se lanzó StarForce 3.0, inicialmente brindó una protección extremadamente fuerte: el juego protegido por StarForce 3.0 Splinter Cell: Chaos Theory quedó sin fisuras durante 424 días. También marcó un importante avance en el esfuerzo requerido para realizar ingeniería inversa.
En marzo de 2006, el grupo warez RELOADED lanzó una amplia gama de documentación sobre cómo funciona StarForce 3. Junto con muchos detalles técnicos, reveló cómo se implementaron varios procedimientos de uso intensivo de recursos, como el sistema de archivos virtual y las funciones protegidas dentro de una máquina virtual compleja.

Instalación del controlador

StarForce 3.0 ha recibido críticas por instalar su propio controlador de dispositivo en las computadoras junto con el producto protegido, que generalmente no se desinstala junto con el software.

Algunos de los juegos que se sabe que usan el nivel de protección Pro son Bet on Soldier , Pro Cycling Manager , Splinter Cell: Chaos Theory , TOCA Race Driver , Trackmania Sunrise

Si los extraterrestres alguna vez dejan un dispositivo en la Tierra y no sabemos qué hace, definitivamente confiaría en que esta dama lo resolvería en segundos.

Os presento a la reina Tamagotchi: Natalie Silvanovich!
Si no sabes qué es un Tamagotchi, es básicamente una mascota virtual que mantienes viva “alimentándola” y “criándola”.
Natalie, por alguna razón estaba loca por ellos, ¡tanto que descubrió cómo programarlos ella misma!
Le sugiero encarecidamente que vea el video completo mientras continúa explicando la forma en que obtuvo los detalles del procesador de un fabricante japonés desconocido y cómo descubrió el protocolo IR que ayudó a programar a estas mascotas para que hicieran lo que ella quisiera.

Este fue el único video que me hizo darme cuenta de lo que realmente es la ingeniería inversa y de cuánta dedicación la respalda. ¡Disfrutar!

He leído algunas de las mejores historias en este hilo. Estoy compartiendo con ustedes una historia muy humilde y simple que está relacionada con la ingeniería inversa.

Tenía 14 años cuando capté un gran interés en la creación de redes y la programación de computadoras (hace 11 años), siendo la única persona que tenía este tipo de interés en mi familia y la escuela me empujó a buscar orientación en línea y desafortunadamente me hice amigo de ” l33t hax0rs ‘.

Así que conocí a este tipo en línea, que es casi 6 años mayor que yo; esta persona tenía un conocimiento básico de programación que usaba para crear descargadores, que en algún momento del pasado eran ejecutables “inofensivos” que se encuentran en el disco duro de la víctima. empezar a descargar el malware real. Siendo un completo ignorante, en realidad me enamoré del juego de este tipo y me convenció para que ejecutara su descargador en mi PC.

Este descargador de archivos .exe estuvo allí en mi escritorio durante días, hasta que un día decidí hacer la cosa más estúpida, hacer clic derecho y abrirlo en el Bloc de notas. Por supuesto, esto no es de ninguna manera un método para revertir un ejecutable compilado correctamente. Sin embargo, siguiendo la secuencia de símbolos extraños, me topé con el inicio de sesión ftp del tipo en forma de nombre de servidor / nombre de usuario / contraseña y, por supuesto, la razón por la que esto existe. dentro del ejecutable se debe a que este .exe necesita conectarse al servidor ftp del pirata informático para poder descargar malware en mi computadora y algunos de estos malware fueron registradores de teclas que registraron todo lo que escribo en formato txt.

Al hacer esto, tuve acceso al servidor ftp del chico sin su conocimiento. Disfruté revisando los registros de otras personas que hackeó (incluido él mismo, sí, fue lo suficientemente estúpido como para infectar su propia PC). Probablemente no esperaba que un noob como yo hiciera esto ya que, justo antes, le estaba preguntando estupideces como cómo hackear un correo electrónico.

Lo que es más interesante es que instalé este mismo archivo ejecutable en la computadora portátil del técnico de Internet mientras él estaba en nuestra casa instalando un nuevo enrutador, usé sus credenciales de registro de teclas para inyectar una cuota diaria adicional a mi conexión de banda ancha limitada, hackeada en el soporte del ISP foros en los que este técnico era un moderador (era un phpBB) e hizo mi último movimiento y mostró a todos lo que hice.

Así que básicamente hice todo esto con un movimiento muy simple que hice en un archivo .exe que alguien más ha creado y se ha divertido más que nunca en esa edad. Al final me pillaron, por suerte no existía una ley cibernética en mi país en el pasado. Sin embargo, el gerente del ISP me llamó a su oficina para amenazarme con la cárcel y me insultó mucho, mi padre estaba sentado afuera y escuchó al chico gritar así que intervino para defenderme, el chico se calmó y comenzó a ofrecerme un trabajo de verano en la compañía que mi padre rechazó y luego me castigó al quitarme la computadora por más de un año, y en este año finalmente me vi obligado a Recoger una vida social y, finalmente, alejarse de mi pasión hacia las computadoras debido a este estúpido y mal ejemplo de lo que difícilmente se puede llamar ingeniería inversa.

Pero ahora estoy de vuelta (:

Un ejemplo famoso de ingeniería inversa involucra a Phoenix Technologies Ltd., con sede en San José, que a mediados de la década de 1980 quería producir un BIOS para PC compatible con el BIOS propietario de PC de IBM. (Un BIOS es un programa almacenado en el firmware que se ejecuta cuando se inicia una PC)

Para protegerse contra las acusaciones de haber copiado simplemente (e ilegalmente) el BIOS de IBM, Phoenix lo modificó mediante ingeniería inversa utilizando lo que se denomina “sala limpia” o “muro chino”. Primero, un equipo de ingenieros estudió el BIOS de IBM (aproximadamente 8KB de código) y describió todo lo que hizo de la manera más completa posible sin usar o hacer referencia a ningún código real. Luego, Phoenix incorporó un segundo equipo de programadores que no tenían conocimiento previo del BIOS de IBM y nunca habían visto su código. Trabajando solo a partir de las especificaciones funcionales del primer equipo, el segundo equipo escribió un nuevo BIOS que funcionaba como se especifica.

El BIOS de Phoenix resultante era diferente del código de IBM, pero para todos los propósitos y propósitos, funcionó de manera idéntica. Usando el enfoque de sala limpia, incluso si algunas secciones del código resultaran ser idénticas, no hubo infracción de derechos de autor. Phoenix comenzó a vender su BIOS a compañías que luego lo utilizaron para crear las primeras PC compatibles con IBM.

Parte de la propagación de los “clones de PC” en la década de 1980 fue la clonación de la ROM BIOS. Recuerdo esta historia porque hice una programación de ensamblaje basada en el libro de la compañía que lo hizo, Phoenix Technologies .

El libro todavía está alrededor:

BIOS del sistema para IBM PC / XT AT Computadoras y Compatibles: Phoenix Technologies: Descarga y transmisión gratuitas: Internet Archive

Siguieron un enfoque de “sala limpia” donde los ingenieros “sucios” con acceso al Manual de referencia técnica de IBM escribieron especificaciones para que los ingenieros “limpios” implementaran.

Un artículo al respecto:
PC Mag

El Manual de referencia técnica de IBM – con código fuente de BIOS:
http://www.retroarchive.org/dos/…

Busque cantor.dust Es una pieza de software utilizada para crear una representación gráfica de código binario. Es un gran paso en la ingeniería de software inversa. Además, se ve increíble.

No sé cuál es el “mejor”, pero una vez, hace mucho tiempo, diseñé un microcontrolador muy popular para ver cómo se hacían los diseños de las almohadillas. Ese es el diseño para el circuito que controla la señal (nivel de voltaje y corriente) en los pines de E / S (puede ver en la imagen, las áreas verdes de la derecha en el lado).
El diseño no es sencillo, no solo b / c son circuitos analógicos, sino también el hecho de que la geometría y la ubicación de los colectores y emisores también son importantes (esto se remonta a mediados y finales de los 80, cuando 3.5 micras eran toda la furia)

La “sincronización” y la marca “sincronizada” de Dropbox en los archivos / carpetas de Mac se realizaron mediante ingeniería inversa para brindar una experiencia nativa.
¡Incluso Google Drive aún no lo tiene!


Lee la respuesta a lo siguiente:
Muchos artículos sobre Drew Houston dicen que él “hizo ingeniería inversa del sistema de archivos de Apple para que el logotipo de su startup, una caja desplegable, apareciera elegantemente metido dentro”, ¿qué significa esto?

Este caso comenzó cuando un trabajador del muelle notó una división en el panel final de un contenedor cargado de 33 pies de largo que se levantaba de un barco. El contenedor no mostraba otros signos evidentes de daño externo, y la pieza de maquinaria que contenía todavía estaba anclada en el interior.

Poco después de que se encontró la primera división, los trabajadores de otros puertos notaron fallas similares en el mismo tipo de contenedor de carga. Los costos aumentaron rápidamente. Las máquinas tenían que cargarse en otros contenedores, los contenedores vacíos debían enviarse a esos puertos, y los contenedores dañados tenían que ser eliminados o reparados.

Los investigadores descubrieron que todos los contenedores se habían fabricado en la misma fábrica durante un período de dos meses. En cada uno, la costura remachada entre los dos paneles extremos en el lado del contenedor se había abierto desde abajo hacia arriba. Todos los contenedores se habían dividido de la misma manera, y todos llevaban maquinaria pesada en lugar de cargas voluminosas distribuidas uniformemente en toda su longitud.

Un ingeniero mecánico no encontró nada malo en el diseño original o en la construcción de los contenedores.

Ingenieros forenses fueron llamados para rastrear cada parte y cómo se había fabricado. Determinaron que los paneles laterales del contenedor eran láminas de aleación de aluminio, remachadas entre sí y al marco a lo largo de las juntas verticales. Todas las fallas involucraron el desmontaje de la junta vertical entre la primera y la segunda hoja desde el extremo del contenedor.

Como las láminas de aluminio se consideraron inocentes, su enfoque se centró en los remaches. Aunque el examen microscópico no encontró fallas internas, desgaste o corrosión, los investigadores encontraron que si uno de los remaches cerca del extremo de una costura fallaba, arrojaría la carga adicional sobre sus vecinos, lo que podría sobrecargarlos, lo que provocaría que todos los remaches se desabrocharan. Después de observar la especificación de los remaches en el dibujo de ingeniería, realizaron una prueba de dureza en los remaches fallidos. Estaban muy por debajo de la fuerza indicada en el dibujo.

Un ingeniero mecánico descubrió que se había producido un lote de contenedores con remaches que se habían colocado sin haber sido tratados con la primera solución, como se especifica en el dibujo. Posteriormente, se descubrió que un solo empleado de la fábrica de contenedores había omitido el tratamiento térmico de la solución. Caso resuelto.

Jerry puede


Las fuerzas británicas y estadounidenses notaron que los alemanes tenían latas de gasolina con un diseño excelente. Ellos hicieron copias en reversa de esas latas. Las latas se conocían popularmente como “latas de jerry”.

Toophan

Irán tiene ingeniería inversa y actualmente fabrica misiles TOW duplicados. Estos llevan la designación iraní de Toophan.

BGM-71 TOW – el misil antitanque original

Un ejemplo brillante es Apache POI, la API de Java para documentos de Microsoft:

La misión del proyecto Apache POI es crear y mantener las API de Java para manipular varios formatos de archivo basados ​​en los estándares de Office Open XML (OOXML) y el formato de documento compuesto de OLE 2 de Microsoft (OLE2). En resumen, puede leer y escribir archivos de MS Excel utilizando Java. Además, puede leer y escribir archivos de MS Word y MS PowerPoint utilizando Java. Apache POI es su solución de Java Excel (para Excel 97-2008). Tenemos una API completa para portar otros formatos OOXML y OLE2 y invitamos a otros a participar.

El nombre del proyecto (POI) significa Intención de ofuscación deficiente.

ReactOS es un sistema operativo de código abierto diseñado para ser compatible con binarios con programas de computadora y controladores de dispositivos para Windows 2000 y sus sucesores.

http://www.reactos.org

Una vez que tuve que revisar el tema, encontré algunos estudios de casos de proyectos dedicados a la ingeniería inversa. Puede ser una buena muestra para que la compruebe, ya que falta información en este campo.
El uno es una transición de administración de energía de @Stages of Power en Windows 7 y el segundo es el filtrado del sistema de archivos a nivel de kernel

Me alegró mucho leer el artículo escrito por un ingeniero inverso de software profesional. Restauración de clases: consejos de ingeniería inversa Es como una lección de demostración paso a paso para los inversores y puede darle una idea sobre el proceso de inversión del software.

Hablando del caso más interesante, diría que se trata de revertir la API de Windows para la administración de energía, una vez que nuestro equipo logró resolver el problema de cambiar entre instancias aisladas de sistemas operativos que se ejecutan simultáneamente en un dispositivo usando estos métodos. Los chicos fueron realmente geniales al profundizar en las etapas de la ventana 7 al quedarse dormido http://www.apriorit.com/revers-… .