5

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

4

1 回答 1

0

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

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

话虽如此,我过去曾使用 OllyDbg 来完成此类工作。这不是恶意的,只是代码在具有大量内存的机器上失败了——结果证明它使用了有符号的比较指令而不是无符号的比较指令。

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

但是,我强调这一点,这将需要一些调查,这不是你可以通过按下按钮并让计算机解决的事情。您可能必须深入研究程序集才能了解它是如何工作的。

于 2017-08-31T04:28:48.820 回答