反编译16位dos应用程序

时间:2012-07-30 20:01:19

标签: dos decompiling disassembly 16-bit

我有一个非常古老的应用程序,我在15年前购买,它包含5个.exe文件,用于存储患者的个人资料和信息。问题是这个应用程序被编程为在特定的计算机上工作 因为我对破解知之甚少,所以我尝试使用win32dasm对其进行反汇编,但是没有关于字符串引用的信息,试过Hiew用JNE替换JE,经过多次尝试,其中一个可执行文件有效,但我没有修补其他档案。
有什么方法可以找到确切的跳转并修补它吗? 谢谢;)

1 个答案:

答案 0 :(得分:0)

是的,有一种方法,总是一种方式。如果您可以运行代码,则可以对其进行修改。

但是,如果它被许可在特定计算机上工作,那么您可能实际上没有合法的权利在另一台计算机上使用它。你应该做的第一件事是弄清楚你正在尝试的合法性。

话虽如此,我过去曾使用OllyDbg来做这类工作。它并不是邪恶的,只是代码在具有大量内存的机器上失败 - 结果是它使用了签名的比较指令而不是未签名的比较指令。

基本思路是在失败的机器上运行它时记录字符串输出,然后在内存中找到该字符串并观察引用它的任何代码片段。然后,您应该能够从那里回溯以找到条件跳转,它将您带到那里并对其进行修补以使其不会(例如,用jCC个字节替换整个nop指令。

但是,我强调这一点,它需要一些调查,这不是你可以做的事只需按一个按钮让计算机解决它。您可能需要深入了解装配,以了解它是如何工作的。