我正在尝试解决Sharif CTF 2016 HI2.exe挑战。这个挑战需要一个特定的(不可能到达)环境(64个处理器,128GB RAM等)来显示标志。由于可执行文件带有VMProtect,因此最好的选择似乎是挂接负责环境规范检查的函数,并在运行时修改其返回值。我正在使用带有StrongOD插件的OllyDbg。我已经在此处记录了所有详细信息:https://www.aldeid.com/wiki/SharifCTF-2016/hi。

我已经迈出了第一步(我修改了由SYSTEM_INFO函数),但未能达到我在GetSystemInfo函数上设置的第二个断点。在达到我的第二个BP之前,程序显示以下错误消息:更改任何东西或使第二个BP之前的可执行文件崩溃。

我如何实现此目标?我应该如何配置OllyDbg和/或StronOD以防止程序知道它正在调试?

非常感谢您的帮助。

评论

您应该尝试调查可执行文件的确切检测内容,而不是盲目地打开/关闭反调试功能。

#1 楼

如果将Win7用作调试环境,则StrongOD可能具有意外行为。尝试在启用ScyllaHide配置文件的情况下使用VMProtect插件,在调试选项中忽略Invalid or privileged instruction异常。

#2 楼

如果无法对其进行调试,请使用系统机制将DLL加载到受保护的进程中,然后执行所需的任何操作。