Question:
Rétroconcevoir un ancien exécutable DOS QBasic
ricardojoaoreis
2013-04-02 21:48:42 UTC
view on stackexchange narkive permalink

J'ai récemment décidé de m'essayer à l'ingénierie inverse d'un ancien jeu basé sur du texte DOS qui a été codé en QBasic.

J'ai trouvé des informations en ligne sur le démontage d'anciens jeux DOS, mais surtout pour Wacom compilé en C / C ++ binaires, mais rien sur QBasic. Je sais qu'il est probablement impossible d'obtenir le code de base d'origine, mais en désassemblant le fichier avec nasm, je n'ai pas non plus obtenu d'informations utiles ...

Des pointeurs?

Trois réponses:
#1
+8
Ange
2013-04-02 22:15:27 UTC
view on stackexchange narkive permalink
  • débogage avec des builds activés pour le débogage DOSBox
  • démontage avec IDA
    • essayez de compiler votre propre EXE qbasic vide, et comparez - cela va aide à dire le code du compilateur à partir du code réel de votre jeu. Vous pouvez le faire automatiquement en créant une signature de type FLIRT de l'EXE vide, puis en l'important dans votre propre EXE dans IDA.
#2
+8
Igor Skochinsky
2013-04-02 22:51:04 UTC
view on stackexchange narkive permalink

Apparemment, un décompilateur pour les exécutables DOS Basic existe déjà.

En suivant les exemples de cette page, une grande partie du code peut être récupérée . Je suppose qu'il utilisait une forme de code P, ou il y avait des métadonnées supplémentaires.

Les descriptions des messages d'erreur du décompilateur peuvent donner des conseils sur diverses fonctions implémentées par le runtime Basic .

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

J'ai trouvé les compilations activées pour le débogage un peu lourdes. Mais j'ai trouvé la combinaison DOSBox et IDA assez agréable en utilisant idados. C'est un plugin IDA Pro qui vous permet de contrôler le débogueur d'une version DOSBox activée pour le débogage depuis IDA, de la même manière que vous pouvez contrôler un débogueur exécutant l'un des autres débogueurs distants pris en charge.

Compte tenu de la réponse existante par Igor, c'est bien sûr comme utiliser un couteau de cuisine au lieu d'un scalpel, mais j'ai pensé que je devrais le mentionner, car c'est une méthode plus générique pour inverser les programmes DOS.

NB: Il y avait un plugin encore plus ancien, mais je pense sans rapport avec le même nom, qui n'a pas été maintenu par son auteur d'origine. J'en ai encore une copie sur mon disque (à la maison), mais le site Web semble ne plus exister.

Eh bien, le décompilateur que je mentionne n'est pas public donc il n'y a rien de mal avec le bon vieux débogage.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...