Quale disassembler che traduca in c oltre che in asm?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Quale disassembler che traduca in c oltre che in asm?

Messaggio da Karma »

Buongiorno a tutti!
Come da titolo, sto cercando un disassembler che oltre a tradurre in asm (che per me è pressochè incomprensibile) traduca anche in c/c++ con tutte le funzioni visualizzabili in classico stile "programmazione ad alto livello". In particolare volevo disassemblare un modulo (quindi un ".o") del mio palmare per fare reverse enginering.
So per certo che dovrebbe esistere ma non sono riuscito a trovarne uno soddisfacente...
Voi ne conoscete qualcuno da consigliarmi?

Grazie mille!

Karma

P.S.: Naturalmente deve essere per linux! ;)

Avatar utente
alessiodf
Linux 3.x
Linux 3.x
Messaggi: 823
Iscritto il: ven 14 ott 2005, 21:04
Slackware: current
Kernel: 2.6.26.4
Desktop: Kde 4.1
Località: Roma
Contatta:

Messaggio da alessiodf »

non esistono deassemblatori binary TO c... :cry:

Avatar utente
Toni
Linux 3.x
Linux 3.x
Messaggi: 999
Iscritto il: lun 30 gen 2006, 22:08
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3
Località: milano

Messaggio da Toni »

se vuoi fare reverse e non conosci l assembler caschi male . non esiste un disassemblatore che produca codice c/c++ che a sua volta ricompilato funzioni come l originale . studia l assembler e buona fortuna

Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Re: Quale disassembler che traduca in c oltre che in asm?

Messaggio da phobos3576 »

Karma ha scritto:Buongiorno a tutti!
Come da titolo, sto cercando un disassembler che oltre a tradurre in asm (che per me è pressochè incomprensibile) traduca anche in c/c++ con tutte le funzioni visualizzabili in classico stile "programmazione ad alto livello". In particolare volevo disassemblare un modulo (quindi un ".o") del mio palmare per fare reverse enginering.
So per certo che dovrebbe esistere ma non sono riuscito a trovarne uno soddisfacente...
Voi ne conoscete qualcuno da consigliarmi?

Grazie mille!

Karma

P.S.: Naturalmente deve essere per linux! ;)
Karma, un disassembler capace di convertire il codice macchina nel codice sorgente originario (C, Pascal, etc) è il sogno di tutti gli informatici che si occupano di reverse engineering; se qualcuno fosse riuscito a fare una cosa del genere, si ritroverebbe tra le mani un'arma di potenza immensa e non lo verrebbe certo a raccontare pubblicamente.

Tra il codice Assembly e il codice macchina esiste una corrispondenza (praticamente) biunivoca; ciò significa che l'assembler traduce in uno e un solo modo il codice Assembly in codice macchina e, analogamente, il disassembler traduce in uno e un solo modo il codice macchina in codice Assembly.
Nel caso dei linguaggi di alto livello questa corrispondenza biunivoca non esiste; è (forse) impossibile quindi realizzare un disassembler capace di risalire al codice sorgente (C, Pascal, FORTRAN, etc) a partire dal codice macchina.

Avatar utente
alessiodf
Linux 3.x
Linux 3.x
Messaggi: 823
Iscritto il: ven 14 ott 2005, 21:04
Slackware: current
Kernel: 2.6.26.4
Desktop: Kde 4.1
Località: Roma
Contatta:

Messaggio da alessiodf »

quoto phobos!

comunque, se hai la possibilità di emulare e debuggare il SO del palmare, non è difficile andare "passo passo" e seguire il codice ASM!

io lo farevo anni fa per craccare le applicazioncine Windows style :oops:

Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Messaggio da Karma »

Scusate il ritardo!
Grazie a tutti per le risposte!
non esiste un disassemblatore che produca codice c/c++ che a sua volta ricompilato funzioni come l originale
Ecco cosa mi sfuggiva! Avevo visto che esistevano quelli che producevano codice c-like, ma non immaginavo che dopo il codice non potesse essere ricompilato... ecco la fregatura! :(
comunque, se hai la possibilità di emulare e debuggare il SO del palmare, non è difficile andare "passo passo" e seguire il codice ASM!
In teoria dovrei averla, ma mi sa che mi ci vorrà parecchio per imparare ad usarli! Meglio iniziare subito...

Grazie a tutti!
Karma, un disassembler capace di convertire il codice macchina nel codice sorgente originario (C, Pascal, etc) è il sogno di tutti gli informatici che si occupano di reverse engineering;
Ammetto che sarebbe anche il mio, anche se non mi occupo principalmente di questo... :cry:

Grazie davvero a tutti! Adesso tutto mi è chiaro!

Buona giornata e buon lavoro a tutti!

Karma

Rispondi