学校项目 - 破解学校模拟器

逆向工程 艾达 ollydbg x64dbg 修补
2021-06-28 23:45:09

约翰在这里。我在我们 IT 学校的后半生,我们从我们的一位老师那里得到了一个副项目。他早在 2009 年就用 delphi 编写了一个模拟器,直到那时还在使用。没什么特别的,只是一个串行总线仿真器,我们可以通过接口控制,或者通过带有他的 dll 的 C++ 代码模拟进程。一个有趣的小应用。我想为自己获取一份副本,并且已将所需的内容通过电子邮件发送给自己。这时惊喜来了。如果我尝试在学校环境之外运行该程序,它只会将我抛出并显示一条错误消息,指出我无权运行该软件,然后它就会退出。嗯。第二天,我们和那位老师一起上课,我问过这个项目。他很高兴“终于有人试过了”。他告诉我,我可以自由地测试程序直到它' s 限制,如果我设法在我的笔记本电脑上运行它,他可以奖励我一些好成绩。接下来,他为全班讲述了一些关于该程序的信息: - 我们正在谈论一个 64 位进程。它不检查 DLL,但会检查“某些东西”,如果找到了某些东西,则程序将启动。如果没有,将显示一条简单的错误消息,然后进程终止。此外,程序只检查一次,直到程序停止才检查。将显示一条简单的错误消息,然后进程终止。此外,程序只检查一次,直到程序停止才检查。将显示一条简单的错误消息,然后进程终止。此外,程序只检查一次,直到程序停止才检查。

所以,我带着我收集的新信息回家了,然后启动 x64dbg 和 IDA 看看发生了什么。我只能找到 messageBox(W) 代。在此之前,它会检查“test al,al”。如果相等,它会跳转到一个地址,但它只返回一个“nop”,并且弹出消息框。

我试图搜索字符串引用,比如一些硬编码的文件位置或注册表项,还有消息框的文本,但没有运气。还没有找到。

在此处输入图片说明

所以此刻,我在这里。如果我一开始甚至不知道我在寻找什么,我应该如何继续修补支票?当然,他们在学校不教逆向工程,但我们空闲时间可以自由地做任何事情,如果它给出了一些结果,那就是奖励。

有任何想法吗?

谢谢,约翰。

1个回答

由于应用程序是用 Delphi 编写的,我建议通过 IDR(交互式 Delphi 记录器)运行二进制文件。该工具对 Delphi 和 VCL 内部结构有更好的理解,然后可以生成可以加载到 Ida Pro 中的 .idc 文件。您将拥有(大部分)正确的函数和符号命名,这使得阅读代码变得更加容易。然后执行到消息框并检查调用堆栈以查看您来自哪里。可能检查可能是 IP 地址、域名、计算机名(是否遵循某些命名约定)等。