Ingeniería inversa (descompilación) de un archivo .exe hackme challenge en OSX

6

Soy un completo novato en el mundo de la ingeniería inversa, y ser capaz de descompilar archivos .exe en mi OSX es una molestia.

¿Alguien sabe un buen descompilador de .exe para OSX, o alguna pista sobre dónde puedo encontrar uno? ¿Tengo algún error conceptual como "que las cosas no existen"? : P Google está siendo bastante confuso al respecto.

Por cierto, sé que estas aplicaciones pueden tener aplicaciones ilegales, pero también muy legales (no hay nada nuevo para este sitio, supongo: P) En mi caso, solo estoy tratando de aprender un poco de inversión y necesito este descompilador para pasar algunos niveles de un juego de guerra en línea (o, al menos, creo que sí). En concreto, este: enlace (en español)

Muchas gracias por tu tiempo! : D

EDITAR: @YoavAner me ha dicho que la página vinculada requiere un inicio de sesión (gracias, @YoavAner: D). Si estás interesado en el juego de guerra (o en este nivel en particular), deberás registrarte para acceder a los niveles.

    
pregunta Palantir 01.03.2012 - 08:58
fuente

6 respuestas

5

GNU binutils incluye la utilidad objdump que puede desensamblar archivos ejecutables en archivos legibles para el usuario, o al menos programadores - Código fuente legible, ensamblador. Puede hacerlo para cualquier destino compatible para el que se haya compilado, independientemente de la arquitectura en la que se ejecute la herramienta. En particular, puede desensamblar un archivo de Windows .exe incluso cuando se ejecuta en MacOS X.

(Instalar binutils de GNU con soporte para muchos objetivos binarios, no solo en el que realmente se ejecutan las herramientas, implica descargar el código fuente de binutils de GNU y recompilarlo con las opciones de objetivos cruzados apropiadas. Se incluye documentación Las personas que pueden hacer cualquier cosa con un binario desensamblado deberían poder realizar esa tarea fácilmente.

Por supuesto, el desmontaje es solo el primer paso en ingeniería inversa. El segundo paso es pensar mucho, lo que haces en tu cerebro.

Nota: asumí que .exe era un archivo binario de Windows, con códigos de operación x86. Hoy en día, también puede ser un ensamblado .NET, es decir, no códigos de operación x86, sino CIL . En ese caso, querrá usar un desensamblador específico como estos . Seguirá funcionando con MacOS X, y seguirá siendo de código abierto y gratuito. Y todavía tendrás que pensar mucho.

    
respondido por el Thomas Pornin 27.11.2012 - 04:44
fuente
3

IDA Pro es ampliamente considerado como el mejor análisis estático para el software binario. También admite la depuración, pero en este campo otras herramientas ( Depurador de inmunidad , ollydbg , WinDbg , etc. ) Puede ser mejor en varios escenarios. Ya que no tienes intención (y no puedes) de ejecutar y depurar tu binario, no debemos preocuparnos por eso.

Las versiones recientes de IDA admiten Linux y Mac OS X además de Windows (< a href="http://www.hex-rays.com/products/ida/6.0/index.shtml"> desde la versión 6.0 ). Desafortunadamente para ti, es un poco caro. Hay una descarga para uso no comercial , pero es la versión 5.0, y solo se ejecuta en Windows.

Sin embargo, puede descargar una versión de evaluación de IDA 6.3 . Tiene varias limitaciones, la más importante para usted es: " no podrá guardar su trabajo , se desactivará después de algún uso, no se desarmará. " Pero luego de probarlo por un tiempo, en comparación con otras herramientas que se sugieren aquí, es posible que valga la pena de 500 $ (a menos que desee un soporte de 64 bits y luego el precio sea el doble).

IDA es la respuesta a su pregunta, ya que no especificó que solo desea soluciones gratuitas. Varias listas de desensambladores se dan a continuación. Muchos son gratuitos, como REC Studio 4 , mencionó Shadok en su respuesta, pero ninguno de ellos se acerca a IDA.

respondido por el conio 02.12.2012 - 14:25
fuente
2

Estoy un poco confundido con tu pregunta ... La ingeniería inversa en su caso significa ejecutar el binario para entenderlo, por lo que debe ejecutar archivos .exe en MacOsX.

Entonces, primero debes mirar DarWine (Wine for MacOSX), Wine es un Win32 Environnement alternativo que puede ejecutar tu archivo .exe. Después de esto, puedes adjuntar un depurador (OllyDbg, Ice, ...) como lo harías en Windows (no olvides ver la compatibilidad de tu juego con el vino en el appdb del vino).

Por cierto, te aconsejo que aprendas ingeniería inversa descifrando un software más simple antes (mira el desafío de hackeo en google, hay un montón de eso). Porque el software de la vida real es un poco difícil.

    
respondido por el anonymous 01.03.2012 - 12:40
fuente
1

Debería consultar los dos artículos de Symantec:
Código host de ingeniería inversa
Alops Autopsy: ingeniería inversa Trojan Win32 en Linux

Las herramientas utilizadas en estos dos artículos son herramientas básicas de GNU (diff, grep, hexedit ...), Wine, gdb e IDA Pro (versión Freeware).
Otras dos herramientas en las que podría estar interesado son REC Studio y NASM .

Todas las herramientas anteriores son compatibles con OSX.

    
respondido por el Shadok 01.03.2012 - 12:42
fuente
1

Una herramienta accesible, a un precio razonable (~ US $ 60) es Hopper . Es un buen equilibrio entre precio y funcionalidad en comparación con el más caro (~ US $ 1129) pero más poderoso IDA Pro . Si está comenzando, esta es una excelente herramienta que es más fácil de usar que la mayoría de los desensambladores y es relativamente económica.

    
respondido por el Andrew Odri 01.08.2013 - 00:40
fuente
0

Puedes usar string para obtener el pedido su mirada que digamos que es el código

int main(){
fprintf(stderr ,"hello word");
}

y luego escribe en la terminal

$strings file.exe

Si desea obtener una función real y no solo las solicitudes del kernel necesitas usar una herramienta como ida pro o algo así.

    
respondido por el daniel 20.11.2016 - 18:56
fuente

Lea otras preguntas en las etiquetas