开发者

Decompiling an old Program

I have been asked to update a program written in 1987 in Delphi (I guess). I have no documentation about this program only a few side notes the programmer took that don't make too much sense to make.

The cd show this files:

Size  |  Filename 
19956    VP.DTA 
142300   VP.LEX 
404      VP.NDX 
126502   VP.RCS 
131016   VP.SCR 
150067   VP.XEL 
101791   vp.exe

Is anyone of this files a database? If so can I access it's data?

I tried several code decompilers but they show a message saying it was not a Win32 compatible application. The program run in MS-DOS.

Is it possible to obtain the source code? Can I use this code in any way to build a new application?

Update01: I can run the program in MS-DOS. The program conjugate verbs and shows an example sentence where the verb can be used. The GUI is a little bit confusing and there is no help menu so I can't see all the capabilities of the program.

Update02: In conversation with the owner of the program we found another solution. He ask me if it was possible to have the program in a server and the clients could logi开发者_开发百科n in with a user and a password and execute the program in a terminal. I have an account in my university server, which I can access throughout ssh and compile and execute c programs in it. The server is in linux so I couldn't try the program in it. If I set up a windows server, can I have multiple people accessing and executing the program in a terminal? The program is an exe. Doesn't this raise some security issues?


Delphi is from mid nineties, so that probably means Delphi's ancestor Turbo Pascal, not Delphi.

Some extensions sound familiar, as shortened versions of words:

  ndx = index
  dta = data
  scr = screen (?)
  lex = lexicon (list of words or deduped strings in general) (?)

Screen was sometimes used for e.g. helpscreens, a medieval form of helpfiles, they are typicall ansi screens that can be loaded directly into screen memory

There is a fair chance that this is something handcrafted, specially if that date of 1987 and the general assumption "pascal" is true, and not generated by some known database package at all.

Reverseengineering the fileformat might be a more worthwhile way than trying to reverseengineering the app.

A good start would to be to take a the unix "file" command to see if it can recognize the file types. (the file command searches for signatures inside files, and there are windows ports. I use Cygwin's)

A devel experienced in such matters can also see a lot from a hexdump (specially the first parts of a file)


Is it possible to obtain the source code?

Probably not, you may want to look at something like IDA Pro which can disassemble applications to C using something like Hex-Rays.


Do you know what the application is supposed to be?

If it's ms-dos, you're probably better off just drawing up new requirements and doing new development.


Look for DeDe to reverse engineering a delphi compiled program. But as far as i know, delphi is a real compiler. So there is no way to de-compiled it. If you are able to read assembler code then you can try de-compile it. Clipper and Foxpro (dos version) are another stories cause they not real compiler.


This is definitely not Delphi. It might be one of the database centric languages like Clipper 1. .SCR probably means "screen" and defines I/O masks. .NDX is a table index and .DTA means "data".

If it is clipper, you might actually be lucky, because as far as I remember these programs were P code, so it could be possible to decompile it.


It looks like CLipper (NDX and SCR). If you have a DBF file then it's Clipper for sure. But some people renamed the DBF to something like DAT. If it is Clipper, I believe there was a decompile named Valkyrie.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜