gpt4 book ai didi

linux - 如何在 Linux 中伪造 RDTSC

转载 作者:太空狗 更新时间:2023-10-29 11:19:27 25 4
gpt4 key购买 nike

我目前正在开发 crackme。 RDTSC 用于 x86 程序集以获取时间戳以匹配它是否被调试器或其他东西减慢。crackme 本身是 elf32 剥离二进制文件。

我目前正在研究 Macos + VirtualBox Debian32。

我的策略是保留第一个 RDTSC 调用并将其存储为 eaxedx。将它保存在其他 rdtsc 调用的某个地方,我将以前的 eaxedx 值设置为当前值。我对这个策略没有运气。 Crackme 仍然认识我。

我通过谷歌搜索并发现 IDAstealth 是另一个 Windows 程序,它可以让你伪造 rdtsc 调用。

我正在寻找 Linux 中的等效项。有什么方法可以在 linux 中设置 rdtsc 值吗?

最佳答案

您可以使用 ecx = 59 的 WRMSR 指令写入 TSC 寄存器。这是一条特权指令,因此您只能在内核中执行此操作。

“拦截”RDTSC 调用的更简单方法是设置 CR4 中的 TSD 位,禁用 RDTSC 指令。这也只能在内核中完成。

所以不管你怎么分割它,如果你想在 linux 上这样做,你需要编写一个内核模块来进行必要的控制寄存器操作。

关于linux - 如何在 Linux 中伪造 RDTSC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com