反编译旧程序

发布于 2024-10-09 23:19:08 字数 711 浏览 5 评论 0原文

我被要求更新一个 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。这不会引发一些安全问题吗?

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 login 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

微暖i 2024-10-16 23:19:09

Delphi 诞生于九十年代中期,所以这可能是指 Delphi 的祖先 Turbo Pascal,而不是 Delphi。

一些扩展听起来很熟悉,作为单词的缩写版本:

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

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

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

对文件格式进行逆向工程可能比尝试对应用程序进行逆向工程更有价值。

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

在此类问题上有经验的开发者也可以从 hexdump 中看到很多东西(特别是文件的第一部分)

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)

山色无中 2024-10-16 23:19:09

可以获取源代码吗?

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

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.

陌伤浅笑 2024-10-16 23:19:09

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

如果是 ms-dos,您可能最好只是起草新的需求并进行新的开发。

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.

睫毛溺水了 2024-10-16 23:19:09

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

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.

早乙女 2024-10-16 23:19:09

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

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

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.

醉酒的小男人 2024-10-16 23:19:09

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文