Domanda:
Eseguire il reverse engineering di un vecchio eseguibile QBasic per DOS
ricardojoaoreis
2013-04-02 21:48:42 UTC
view on stackexchange narkive permalink

Recentemente ho deciso di cimentarmi con il reverse engineering di un vecchio gioco basato su testo DOS codificato in QBasic.

Ho trovato alcune informazioni online sullo smontaggio di vecchi giochi DOS, ma principalmente per Wacom compilato C / C ++ binari, ma niente su QBasic. So che probabilmente ottenere il codice Basic originale è impossibile, ma andando a disassemblare il file con nasm non ho ricevuto alcuna informazione utile ...

Qualche puntatore?

Tre risposte:
#1
+8
Ange
2013-04-02 22:15:27 UTC
view on stackexchange narkive permalink
  • esegui il debug con build abilitate per il debug DOSBox
  • disassembla con IDA
    • prova a compilare il tuo EXE qbasic vuoto e confronta - questo aiuta a distinguere il codice del compilatore dal codice effettivo del tuo gioco. Puoi farlo automaticamente creando una firma simile a FLIRT dell'EXE vuoto, quindi importalo nel tuo EXE in IDA.
#2
+8
Igor Skochinsky
2013-04-02 22:51:04 UTC
view on stackexchange narkive permalink

Apparentemente un decompilatore per eseguibili DOS Basic esiste già.

Seguendo esempi da quella pagina, è possibile recuperare una buona parte del codice . Immagino che usasse una qualche forma di codice P o c'erano alcuni metadati aggiuntivi.

Le descrizioni dei messaggi di errore del decompilatore possono fornire alcuni suggerimenti su varie funzioni implementate dal runtime di base .

#3
+5
0xC0000022L
2013-04-03 00:39:13 UTC
view on stackexchange narkive permalink

Ho trovato le build abilitate per il debug un po 'ingombranti. Ma ho trovato la combinazione di DOSBox e IDA abbastanza carina usando idados. È un plug-in IDA Pro che ti consente di controllare il debugger di una build DOSBox abilitata al debug dall'interno di IDA in modo simile a come puoi controllare un debuggee che esegue uno degli altri debugger remoti supportati.

Data la risposta esistente di Igor questo è ovviamente come usare un coltello da cucina invece di un bisturi, ma ho pensato di doverlo menzionare, in quanto è un metodo più generico per invertire i programmi DOS.

NB: C'era un plugin ancora più vecchio, ma credo non correlato, con lo stesso nome che non è stato mantenuto dal suo autore originale. Ne ho ancora una copia sul disco (a casa), ma il sito sembra non esistere più.

Bene, il decompilatore che ho citato non è pubblico, quindi non c'è niente di sbagliato nel buon vecchio debugging.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...