标题说明了一切。我正在尝试重新制作一个包含 Themida 的视频游戏,第二次我附加 OllyDbg 时它崩溃了。在 XP 上,我可以使用 StrongOD 和 PhanOm,但它们都不能在 Windows 7 上正常工作。我可以通过 RDP 使用 XP 机器,但我的 Win 7 机器使用起来不那么刺激。
有人有什么建议吗?
标题说明了一切。我正在尝试重新制作一个包含 Themida 的视频游戏,第二次我附加 OllyDbg 时它崩溃了。在 XP 上,我可以使用 StrongOD 和 PhanOm,但它们都不能在 Windows 7 上正常工作。我可以通过 RDP 使用 XP 机器,但我的 Win 7 机器使用起来不那么刺激。
有人有什么建议吗?
我不确定它是否仍然存在,但 Themida 曾经有一个内核模式驱动程序组件,可以促进某些保护功能。它很可能安装在您的系统上并捕获调试器。
我的第一个建议是尝试Immunity Debugger。这是一个 Olly 分支,专为攻击性调试和漏洞利用开发而设计,但它可能具有足够不同的代码库和内置足够的反反调试内容来提供帮助。
或者,您可以使用Cheat Engine及其 DBVM 内核模式模块。它通常用于游戏中的作弊,但 CE 实际上有一个功能非常齐全的调试器和一些不错的隐身功能。驱动程序组件重新实现了一堆核心 Windows API,例如 OpenProcess。
如果内核模式驱动程序不在,那么它很可能只是导致崩溃的 OutputDebugString 技巧之类的东西。如果目标在 WinMain 之前使用 TLS 回调来执行代码,则它可能会在您到达之前使调试器崩溃。您可以尝试编辑 Olly 的选项,使其在系统入口点而不是 WinMain 上中断。
你可以试试TitanHide。它是适用于 x86 和 x64 操作系统的内核模式隐藏驱动程序。它具有以下特点:
- ProcessDebugFlags (NtQueryInformationProcess)
- ProcessDebugPort (NtQueryInformationProcess)
- ProcessDebugObjectHandle (NtQueryInformationProcess)
- DebugObject (NtQueryObject)
- SystemKernelDebuggerInformation (NtQuerySystemInformation)
- NtClose (STATUS_INVALID_HANDLE exception)
- ThreadHideFromDebugger (NtSetInformationThread)
TitanHide 是开源的,添加新钩子相对容易。请注意,您需要禁用 PatchGuard 和驱动程序签名才能使其在 x64 操作系统上正常工作。查看此处了解更多信息。
编辑:我想指出 TitanHide 不再维护,不建议在生产环境中使用。始终使用 VM。对于简单的应用程序,我还推荐ScyllaHide
这可能是一个特例,但如果您使用的是 Windows 7 x64,请查看Stealth64。它通常适用于我扔给它的所有东西。
你应该试试ScyllaHide。这是一个开源的、积极开发的反反调试插件。里面有很多隐藏选项。