Reverse engineering (decompiling) un file .exe di hackme challenge in OSX

6

Sono un newbie completo nel mondo del reverse engineering, e la possibilità di decompilare i file .exe nel mio OSX è un problema.

Qualcuno conosce un buon decompilatore di .exe per OSX, o qualche suggerimento su dove posso trovarne uno? Ho qualche errore concettuale come "che le cose non esistono"? : P Google è abbastanza confuso a riguardo.

BTW, so che queste applicazioni potrebbero avere applicazioni illegali, ma anche molto legali (niente di nuovo per questo sito, credo: P) Nel mio caso, sto solo cercando di imparare un po 'di retromarcia e ho bisogno questo decompilatore per passare alcuni livelli di un wargame online (o, almeno, penso di sì). In concreto, questo: link (in spagnolo)

Grazie mille per il tuo tempo! : D

EDIT: @YoavAner mi ha fatto notare che la pagina collegata richiede un accesso (grazie, @YoavAner: D). Se sei interessato al wargame (o in questo livello in particolare), dovrai registrarti per accedere ai livelli.

    
posta Palantir 01.03.2012 - 08:58
fonte

6 risposte

5

GNU binutils include l'utilità objdump che può disassemblare i file eseguibili in un programmatore leggibile o almeno umano -readable, codice sorgente assembly. Può farlo per qualsiasi target supportato per il quale è stato compilato, indipendentemente dall'architettura su cui è eseguito lo strumento stesso. In particolare, è in grado di disassemblare un file .exe di Windows anche quando è in esecuzione su MacOS X.

(Installazione di binutils GNU con supporto per molti target binari, non solo quello su cui gli strumenti sono effettivamente in esecuzione, comporta il download del codice sorgente per i binutils GNU e la ricompilazione con le opzioni cross-target appropriate. Le persone che possono fare qualsiasi cosa con un binario smontato dovrebbero essere in grado di svolgere facilmente questo compito.)

Naturalmente, lo smontaggio è solo il primo passo nel reverse engineering. Il secondo passo è un sacco di pensieri difficili, che fai nel tuo cervello.

Nota: ho assunto che il .exe fosse un file binario di Windows, con opcodes x86. Al giorno d'oggi, potrebbe anche essere un assembly .NET, ad esempio non x86 opcodes, ma CIL . In tal caso, ti consigliamo di utilizzare specifici disassembler come questi . Funzionerà ancora con MacOS X e sarà ancora opensource e gratuito. E avrai ancora bisogno di pensare molto.

    
risposta data 27.11.2012 - 04:44
fonte
3

IDA Pro è ampiamente considerato come la migliore analisi statica per il software binario. Supporta anche il debug, ma in questo campo altri strumenti ( Immunity Debugger , ollydbg , WinDbg , ecc. ) potrebbe essere migliore in vari scenari. Dal momento che non hai intenzione (e non puoi) di eseguire e debuggare il tuo binario, non dobbiamo preoccuparcene.

Le versioni recenti di IDA supportano Linux e Mac OS X oltre a Windows (< a href="http://www.hex-rays.com/products/ida/6.0/index.shtml"> dalla versione 6.0 ). Sfortunatamente per te, è piuttosto costoso. C'è un download gratuito per uso non commerciale , ma è la versione 5.0, e funziona solo su Windows.

È tuttavia possibile scaricare una versione di prova di IDA 6.3 . Ha diverse limitazioni, quella che è più cruciale per te è: " non sarai in grado di salvare il tuo lavoro , si spegnerà dopo qualche utilizzo, non si disassembla da solo. " ma dopo aver provato per un po ', in confronto ad altri strumenti suggeriti qui, potresti scoprire che vale la pena di $ 500 (a meno che tu non voglia il supporto a 64 bit, e quindi il prezzo è doppio).

IDA è la risposta alla tua domanda, dal momento che non hai specificato che vuoi solo soluzioni gratuite. Di seguito sono elencati diversi elenchi di disassemblatori. Molti sono gratuiti, come REC Studio 4 , Shadok ha menzionato nella sua risposta, ma nessuno di loro si avvicina all'IDA.

risposta data 02.12.2012 - 14:25
fonte
2

Sono un po 'confuso con la tua domanda ... Reverse-engineering nel tuo caso significa eseguire il file binario per capirlo, quindi devi eseguire i file .exe su MacOsX.

Quindi, per prima cosa, dovresti dare un'occhiata a DarWine (Wine per MacOSX), Wine è un Win32 Environnement alternativo che può eseguire il tuo file .exe. Dopodiché puoi collegare un debugger (OllyDbg, Ice, ...) come faresti su Windows (non dimenticare di considerare la compatibilità del tuo gioco con il vino sull'appdb del vino).

A proposito ti consiglio di imparare il reverse-engineering cracking prima di alcuni software più semplici (guarda la Hack Challenge su google, ce n'è in abbondanza). Perché i software di vita reale sono un po 'difficile.

    
risposta data 01.03.2012 - 12:40
fonte
1

Dovresti guardare quei due articoli di Symantec:
Codice reverse engineering ostile
Autopsia aliena: Reverse Engineering Win32 Trojan su Linux

Gli strumenti utilizzati in questi due articoli sono strumenti GNU di base (diff, grep, hexedit ...), Wine, gdb e IDA Pro (versione freeware).
Altri due strumenti a cui potresti essere interessato sono REC Studio e NASM .

Tutti gli strumenti di cui sopra supportano OSX.

    
risposta data 01.03.2012 - 12:42
fonte
1

Uno strumento accessibile, a un prezzo ragionevole (~ $ 60) è Hopper . È un buon equilibrio tra prezzo e funzionalità rispetto a quello più costoso (~ US $ 1129) ma più potente IDA Pro . Se sei appena agli inizi, questo è uno strumento eccellente che è più facile da usare rispetto alla maggior parte dei disassemblatori ed è relativamente economico.

    
risposta data 01.08.2013 - 00:40
fonte
0

Puoi usare string per ottenere l'ordine il suo aspetto diciamo che è il codice

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

e poi scrivi nel terminale

$strings file.exe

Se vuoi ottenere una funzione reale e non solo richieste dal kernel è necessario utilizzare uno strumento come ida pro o qualcosa di simile.

    
risposta data 20.11.2016 - 18:56
fonte

Leggi altre domande sui tag