反编译旧程序

时间:2011-01-01 23:24:16

标签: delphi dos decompiler

我被要求更新1987年在Delphi中编写的程序(我猜)。我没有关于这个程序的文档,只有程序员采取的一些副作用没有太多意义。

cd显示这个文件:

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

此文件中的任何人都是数据库吗?如果可以,我可以访问它的数据吗?

我尝试了几个代码反编译器,但是它们显示一条消息,说它不是Win32兼容的应用程序。 该程序在MS-DOS中运行。

是否可以获取源代码?我可以以任何方式使用此代码来构建新的应用程序吗?

Update01:我可以在MS-DOS下运行该程序。程序共轭动词并显示可以使用动词的例句。 GUI有点令人困惑,没有帮助菜单,所以我看不到该程序的所有功能。

Update02:在与程序所有者的对话中,我们找到了另一种解决方案。他问我是否可以在服务器中安装程序,客户端可以使用用户和密码登录并在终端中执行程序。我在我的大学服务器上有一个帐户,我可以在整个ssh中访问它,并在其中编译和执行c程序。服务器在linux中,所以我无法在其中尝试该程序。如果我设置了一个Windows服务器,我可以让多个人在终端中访问和执行该程序吗?该程序是一个exe。这不会引起一些安全问题吗?

6 个答案:

答案 0 :(得分:7)

德尔福是从九十年代中期开始的,所以这可能意味着德尔福的祖先Turbo Pascal,而不是Delphi。

某些扩展听起来很熟悉,因为缩短了单词的版本:

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

屏幕有时用于例如帮助屏幕,一种中世纪形式的帮助文件,它们是典型的ansi屏幕,可以直接加载到屏幕内存中

很有可能这是手工制作的,特别是如果1987年的日期和一般假设“pascal”是真的,而不是由某些已知的数据库包产生的。

反向工程文件格式可能比尝试重新设计应用程序更有价值。

一个好的开始是采用unix“file”命令来查看它是否可以识别文件类型。 (文件命令搜索文件内的签名,并且有Windows端口。我使用Cygwin的)

在这些事情上经历过的开发也可以从hexdump(特别是文件的第一部分)看到很多东西

答案 1 :(得分:0)

  

是否可以获取源代码?

可能不是,您可能希望查看IDA Pro之类的内容,它可以使用Hex-Rays等内容将应用程序反汇编为C.

答案 2 :(得分:0)

你知道申请应该是什么吗?

如果是ms-dos,你可能最好只是制定新的要求并进行新的开发。

答案 3 :(得分:0)

寻找DeDe对delphi编译程序进行逆向工程。但据我所知,delphi是一个真正的编译器。所以没有办法去编译它。如果您能够读取汇编代码,那么您可以尝试对其进行反编译。 Clipper和Foxpro(dos版本)是另一个故事,因为它们不是真正的编译器。

答案 4 :(得分:0)

这绝对不是德尔福。它可能是像Clipper 1这样的以数据库为中心的语言之一。 .SCR可能意味着“屏幕”并定义I / O掩码。 .NDX是表索引,而.DTA表示“数据”。

如果它是限幅器,你可能真的很幸运,因为据我记得这些程序是P代码,因此可以对它进行反编译。

答案 5 :(得分:0)

它看起来像CLipper(NDX和SCR)。如果你有一个DBF文件,那肯定是Clipper。但有些人将DBF重命名为DAT。如果它是Clipper,我相信有一个名为Valkyrie的反编译。