4

We are looking for quick basic decompiler. The program is very old, written in DOS now we wish to enhance that code in Windows with additional functionalities. Unfortunately the developer is not traceable and only hope is decompilation.

Please suggest the best way to achieve this challenge.

Thank you

  • 3
    https://reverseengineering.stackexchange.com/questions/1503/reverse-engineer-an-old-dos-qbasic-executable – Ry- Apr 03 '17 at 10:40
  • 2
    If you need to write a SW for Windows I think is better you create a new SW :) Otherwise you may use the old SW using something like dosbox ... The decompiled code will be almost assembler ... – Sir Jo Black Mar 09 '18 at 15:58
  • Maybe you meet the developer in court when you made your enchancements – Lee Apr 04 '19 at 06:24
  • https://sourceforge.net/projects/decompiler/ – user10186832 Mar 03 '21 at 08:20

2 Answers2

0

[ By Dan in the QB forum on http://qbasicnews.com , May 04, 2003 ]

Here's Microsoft's response to that question: Microsoft does not currently offer any product capable of "decompiling" an object (.OBJ) or executable (.EXE) file back to the original source code (.BAS). The following are several reasons for this:  

  1. No decompiler could exactly reproduce the original source code. When a program is compiled to an object and linked to produce an executable, most of the "names" used in the original program are converted to addresses. This loss of names means that a decompiler would have to create unique names for all the variables, procedures, and labels, and these names would not be meaningful in the context of the program.   Obviously, source language syntax no longer exists in the compiled object file or executable. It would be very difficult for a decompiler to interpret the series of machine language instructions that exist in an object or executable file and decide what the original source language instruction was.  

  2. If such a decompiler did exist and was available, anyone could use it to decompile any executable program produced in the language the decompiler was designed for.   For instance, if a Microsoft BASIC decompiler existed, anyone with that decompiler could use it on an executable that you had produced and from that executable obtain a copy of your source code. The source code to any program you wrote in Microsoft BASIC would be available to anyone with the decompiler. Few developers of commercial software would want to use a language product that could be deciphered, thus allowing others to obtain their source code.

There's some talk from ex-microsoft programmers who swear there was one made for thier private use. I've also seen a Basic decompiler service on a web site which does provide some working BAS code from your exe, but it's a mess and not worth the money asked for the service (http://02c1289.netsolhost.com).

Polluks
  • 525
  • 2
  • 8
  • 19
0

I can tell you as a BASIC software developer for nearly all of my career that this is not what you want. When it came time to "port" my accounting software from DOS BASIC to Visual BASIC having the source code and a complete understanding of the code, since it was my own code, did not help in the least. It may be an over-used expression, but DOS and Windows are apples and oranges. You cannot simply convert the code, you must redesign and code the system.

All you need to do that is what you already have - a working version of the compiled code. Use it's screens to design your databases and screens in Windows, then write the underlying code. The design of those two things is often half to 90% of the work anyway. Now it did help me to have my own source for things like "how did I calculate those taxes again?" I could copy the pure logic code from DOS to Windows with little or no change, but anything involving the database or user interface had to be completely redone.

If you're not up to it, look for someone who is.

Again, you do NOT need the source code unless there's some kind of secret algorithm that you need to duplicate and don't understand yourself.

Bill Hileman
  • 2,798
  • 2
  • 17
  • 24