听起来还是可以和公司沟通的。优秀:询问他们的意见
对程序进行逆向工程,明确促进业务运营的继续
在互联网上公开传播程序的二进制副本,修改或未修改,也用于逆向工程的明确目的,以促进操作的继续
如果不同意公开传播,私下与其他人共享二进制文件,而不需要潜在接收者签署 NDA
允许执行逆向工程的同一团队也直接重新实现所需的功能,而无需在中间设置洁净室(参考:https : //en.wikipedia.org/wiki/Clean_room_design)
(您可以自己回答这个问题)分享obs-studio
与程序交互的许多屏幕截图和/或视频(来自相机,或来自屏幕录制软件)
(如果您有任何.bas
文件)私下或公开分享任何可能构成程序源代码的内容
本质上,您是在要求稍微重新安排您的原始许可协议:)。我认为这有点像保修:您的软件完全超出了维护的所有原始定义,以及可能被当代视为合理的售后维护。供应商的观点在这里可能会有所不同。
为了合作,您可以提议将您从您所做的任何逆向工程工作中恢复的任何算法发送给供应商。(发送的内容可能包括也可能不包括您在顶部添加的任何现代化/接口,因为这是您独立做出的独特努力。)当然,如果供应商不提供现代替代品,这种报价只会对供应商有价值给 LUKWAN 自己。
无论如何,一旦你有了一些明确的答案,你就会有一个具体的法律基础来建立,而不是你现在所处的灰色海洋。
如果您可以在互联网上公开转储二进制文件,那将大大简化问题;去寻找一些逆向工程论坛,分享该程序,您可能会在几天内收到极其准确的报价(和 ETA)。您最终可能会雇用两个左右的团队。
如果您可以在没有 NDA 的情况下私下共享该程序,则可以达到 90% 以上的良好情况,尤其是如果您可以共享该程序的图像/视频。报价过程只需要感兴趣的各方先 ping 您,并且由于初始分析不会是异步的,所以速度会稍微慢一些。
我不确定你会看到什么样的费率,因为我自己没有这方面的经验。视频和描述可能会得到一个很好的粗略初步估计。
我查看了https://en.wikipedia.org/wiki/PowerBASIC,这就是 Turbo BASIC 变成的样子。
对您来说不幸的是,这个特定环境的主要功能之一(当它还是 Turbo BASIC 时)是它构建了不需要捆绑运行时的本机二进制文件。
这通常意味着您将不得不走完全汇编语言逆向工程的“硬模式”之路……但另一方面,虽然有大量工具可以例如逆向“编译” “ Java 或混淆的 JavaScript,到目前为止(2019 年),任何可以逆转例如 QuickBASIC“编译程序”格式(使用字节码和运行时解释器)的工具都可能已经从地球边缘掉下来,或者隐藏在巨大的价格标签。所以这是一件好事,FWIW。
当您寻找 RE 帮助时,清楚地注意到该程序是用 Turbo BASIC 编写的,这将特别有用。可能有些人对 TB 编译器的特性非常有经验。
我想知道是否可以对该程序进行逆向工程并将其放入“现代”夹克中,+启用简单的数据指令。
是的。我可以想到两种不同的方法。两者都很复杂,如果不仔细观察具体情况,很难说哪个更容易解决。
可能被描述为“传统”的 RE 方法是通过静态(IDA Pro、Ghidra、radare2)和动态(CodeView、Turbo Debugger、SoftICE)分析等技术将程序分解为位,并尝试梳理数学从程序的其余部分中删除,可以在其他地方直接重新实现。
这里的主要风险是该过程是否没有捕捉到重要的算法细节或边缘情况处理。这是我要加粗的唯一一点:您可以通过提供数十到数百个测试来帮助此过程。(现在开始考虑这个过程——比如说,对程序处理的每种特定情况进行 10 次左右的测试应该是一个好的开始。)
如果程序很简单,并且完成计算的区域很容易识别(不戳二进制就不可能说),这应该会在一定程度上降低风险。
一种非常接近于制作“夹克”概念的字面翻译的技术会让您将程序包装在已修改为“导出”屏幕状态并接受合成键盘输入的模拟器(例如 DOSBox)中- 然后在顶部添加一个翻译层,可以快速输入数据并在屏幕上抓取结果。
这种方法的主要风险是程序可以显示的屏幕数量,以及所涉及的复杂性(是否需要滚动以获取所有数据?根据屏幕上显示的指示,下一步要执行的操作是否明确?)信息。
[...] 在组件列表(从我们的绘图软件中提取)上运行程序会更容易/更快。(这是额外的)
这个组件列表是以什么格式生成的?
这可能是从琐碎到稍微复杂的任何事情。添加此功能的成本将大大低于最初的可再生能源工作。
我很想知道这个项目进展如何!如果你把这个问题带到其他论坛,如果你能把链接放在相关线程上,那将是非常酷的。:)