3

我被要求更新 1987 年用 Delphi 编写的程序(我猜)。我没有关于这个程序的文档,只有程序员做了一些没有太大意义的旁注。

cd 显示这些文件:

尺寸 | 文件名
19956 副总裁
142300 副总裁
第404章
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。这不会引发一些安全问题吗?

4

6 回答 6

7

Delphi 是从九十年代中期开始的,所以这可能意味着 Delphi 的祖先 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(特别是文件的第一部分)中看到很多

于 2011-01-01T23:31:17.843 回答
0

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

于 2011-03-19T12:45:24.237 回答
0

是否可以获取源代码?

可能不是,你可能想看看IDA Pro之类的东西,它可以使用Hex-Rays 之类的东西将应用程序反汇编为 C。

于 2011-01-01T23:26:32.273 回答
0

你知道应用程序应该是什么吗?

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

于 2011-01-01T23:28:29.467 回答
0

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

于 2011-01-02T02:56:20.807 回答
0

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

如果是 Clipper,你可能真的很幸运,因为据我记得这些程序是 P 代码,所以可以反编译它。

于 2011-01-02T15:52:44.427 回答