旧涂鸦程序的逆向工程

12

我有几个非常老的基于MSDos的绘画程序。它们使用调色板索引图像缓冲区,拥有许多惊人的形状绘制工具、画笔和效果,在任何现代绘画程序中都不存在-特别是在低色调色板索引图像中。我想在一个现代程序中复制许多这些奇妙的工具,或许使它们变得更容易被我和一般公众所接触,而不必启动像dosbox这样的模拟器。但我有一个问题。

虽然很多这些画笔、工具和其他东西都有明显的功能,其实现应该是相当简单的。但对于其他工具,它们的操作原理就不那么明显了。我会卡在确定正确或忠实的算法来实现这些工具上。

如果你是我,你会采取什么方法?是否有可以处理这类旧程序的反汇编器/解析器可用?或者您会采取不同的方法,比如系统地测试不同输入的算法以推断潜在的函数?一些不同技术的组合?在这些程序中有一条线路的情况下,这些(商业)程序的原始作者已知,并且现在是一个狂热的开源倡导者。我应该直接联系他们并询问吗?我并不特别有反向工程方面的经验,所以我不知道从哪里开始。

编辑:看来"求必应"真的有效。

编辑2: 请查看http://animatorpro.org获取我...得到源代码的程序。豪华版画也很好,但丹·席尔瓦似乎已经消失在地球上了。


我只是想知道GIMP是否不符合您的需求,或者甚至是Photoshop。 - Camilo Martin
@camilo:你似乎就是不明白,对吧?http://www.pixeljoint.com/ - Breton
这个问题连同答案和评论,是我在SO上看到的最好的帖子。向你致敬,感谢你获得了代码! - user4516901
2个回答

6

IDA Pro几乎可以处理任何二进制文件,是这种工作的黄金标准,但与作者联系可能也会很有帮助。


IDA Pro和HexRays插件可以帮助您入门。 - mmcdole
10
嘿,我完全没想到,但作者已经给了我源代码。你知道的。谢谢大家。 - Breton

6
如果你能说服作者开源部分或全部程序,那是最好的方法。除此之外,反汇编和调试将成为你的好伴侣。在某些情况下,如果你知道它最初是用什么编译器编译的,你可以反编译一个软件。但是要反汇编它,并在调试器中运行它以查找总体结构并寻找实际刷子工作的明显函数。开始时可能会感到令人生畏,但一段时间后,你会发现它出乎意料地易于理解。-Adam

我认为我没有希望将其开源,因为我不相信原作者实际上拥有源代码。我提到联系他,希望他至少能够解释所涉及的算法。 - Breton
所以他们给了你需要的东西吗? - Adam Davis
3
没错,他们把整个源代码都给了我。只要我得到公司另一位原始成员的许可,我就会将其以GPL许可证的形式公开发布。 - Breton
太好了!我很高兴听到这个消息。 - Adam Davis
你获得了GPL的许可和发布吗?如果是的话,在哪里获得的? - 1.01pm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接