|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 365
|
[TURBO C] Decompilatore
Devo assolutamente riuscire a decompilare un vecchio programma in turbo c, qualcuno conosce un decompilatore? Non mi interessa ottenere un codice perfetto: questo programma gestiva uno strumento e l'unica cosa che mi interessa recuperare sono i segnali che il software inviava alla macchina per comandarla...
__________________
Firma in sciopero! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 365
|
Nessuno?
__________________
Firma in sciopero! |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Devi fare del reverse allora...
io credo tu possa usare qualsiasi disassemblatore. Dato che siamo su windows io ti consiglio IDA. Poi trovare quel che ti serve sapere può essere più o meno difficile a seconda di quanto tu sai già a proposito di questi "segnali". Come si interfacciava il software? |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Saro'pazzo ma...oscilloscopio con memoria?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
bè ok questo per capire quando il programma manda un dato al dispositivo...
Però mi pare di capire, che ASSTO voglia sapere come il software era stato realizzato a livello di programmazione... a meno che con "segnali" non era inteso propio il segnale elettrico... però ha parlato di ottenere codice... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 365
|
Lo strumento è collegato ad un pannello che lo gestisce, il quale è collegato a sua volta (attraverso la porta seriale) ad un vecchio pc con su il DOS 5,0.
Il programma suppongo invii delle stringhe al pannello di gestione che poi pensa alla gestione dello strumento, a me interessa ottenere quelle stringhe per poi creare un programma che mi permetta di utilizzare lo strumento su un pc più recente... Sono tutte supposizioni in quanto la ditta da cui abbiamo acquistato lo strumento è fallita e sul manuale non c'è scritto nulla relativamente al comando via pc...
__________________
Firma in sciopero! |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Altrimenti se il software gira su windows potresti sempre provare a sniffare le api di windows tramite SpyStudio, ma essendo il programma per dos non so che risultati potresti ottenere. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Sinceramente non lo ho mai fatto, ma credo proprio si possa fare.
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 365
|
Si potrebbe provare...
Nel frattempo ho tentato la via di IDA, ci sto lavorando su anche se finora non sono riuscito ad ottenere granchè...
__________________
Firma in sciopero! |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 365
|
Una domanda: una volta disassemblato il programma con IDA, esiste una maniera per ottenere qualcosa di comprensibile all'italiano medio? Mi basterebbe anche qualcosa in C, visto che l'assembler praticamente è arabo per me!
__________________
Firma in sciopero! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
bè fare reverse è piuttosto complicato, più dell'assembly stesso perchè non si hanno riferimenti quali etichette nomi di funzioni ecc.. tutto è sostituito da indirizzi di memoria virtuali.
E IDA è anche uno di quei software che ti vengono piuttosto incontro ricostruendoti il flusso del programma e dandoti qualche riferimento in più. Il massimo che puoi fare è forse procedendo così, (ma rimane comunque un lavoro che richiede tempo e pazienza) Avvi il tuo programma e ti fermi prima che questo inizi a comunicare (se è possibile, altrimenti fa nulla) Apri IDA e da menù debugger scegli "attach", vai a cercarti il processo del tuo programma e lo esegui per step. In questo modo vedi cosa fa al momento dell'invio dei dati. Rimane pur sempre una cosa complicata perchè lo vedrai a livello di codice macchina. Se vuoi qualcosa in C IDA non è d'aiuto purtroppo. Non è possibile riottenere il codice C da un compilato. Una volta avevo trovato un programma che tentava la ricostruzione del codice C partendo da un assembly; se lo trovo vedo cosa si può fare abbinandolo a IDA. Cmq se vuoi solamente sapere cosa viene inviato, rimane da provare a intercettare i dati che passano sulla seriale, anche se non avendolo mai fatto non so dirti ora come fare. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ma... se quello che a ASSTO interessa non è come il vecchio software genera le stringhe-comando inviate sulla seriale ma quali stringhe-comando e con che ordine/logica vengano inviate penso ci si metta meno a fare come a suggerito tomminno.
Purtroppo non avendo mai provato a sniffare una connessione seriale non saprei cosa suggerire.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Certamente tutto molto più semplice di un reverse engineering su un software dos. Alla fine si può anche fare in casa, lo schema dovrebbe essere questo:
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
@tomminno: fantastico il sito cha hai segnalato, grazie mille!
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:40.




















