我得出的结论是,每次这个程序超出日期范围时,都会给我带来问题。所以我想破解该 exe 并修改该日期以避免该问题。怎么做?
这是 Windows .exe
。当问题发生时,我会收到一条消息。我可以.exe
使用简单的搜索程序在文件中找到该消息的文本。但我找不到触发日期。
也许是因为在程序中有很多种记录日期的方法,我的意思是18_09 17.10 17/09/2013
......
答案1
我借此机会写下这个答案,以建议您不要弄乱可执行文件本身。至于原因,以下是评论中提出的原因以及我自己的一些原因:
- 正如 Rik 所说,该程序的开发人员很可能没有硬编码实际到期日期(因为那将意味着一年后立即构建另一个程序)。这意味着该开发人员的维护和支持成本更高。
- 即使他确实对日期进行了硬编码,也没有达成共识如何来存储它。如果到期日期是字符串,则可能祝你好运,因为正如弗兰克所说,大多数字符串都存储在照原样在可执行文件中。然而,这并不是规则,字符串可能被加密,或者根据编译器优化代码的方式,它可能隐藏在你无法轻易理解的二进制文本中。
- 假设您可以反汇编该程序,那么您将需要了解程序中的数千行代码,并检测到期日期的存储位置或调用位置。但是,根据国家/地区和法律规定,这种活动要么不被接受,要么是非法的。
除了建议之外,我还在借鉴 Rik 所说的话,并稍微扩展一下。
您可以使用以下命令创建一个批处理文件(如您所说的.exe文件,我假设是Windows):
SET CUR_DATE=%DATE%
DATE <insert your pretended date here>
<start your program here>
DATE %CUR_DATE%
虽然我还没有测试过,但据说它可以执行以下操作:
- 存储当前日期,由 %DATE% 给出。
- 使用日期命令。
- 运行您想要的程序。
- 一旦程序退出,就将日期重置为当前日期。
您可以将这个批次存储在程序的目录中,这样您只需写入程序的名称,而不是完整路径。但是,输入的日期要保持一致,因为它需要与系统期望的格式相同。有关更多信息,请参阅有关 DATE 命令的链接;或者只需执行此操作即可echo %date%
查看您的计算机期望您输入的日期的格式。
答案2
资源黑客 (http://www.angusj.com/resourcehacker/) 是一个免费软件工具,可用于打开和更改 exe 文件内的代码和其他内容。