我被要求更新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。这不会引起一些安全问题吗?
答案 0 :(得分:7)
某些扩展听起来很熟悉,因为缩短了单词的版本:
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)
答案 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的反编译。