微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Linux中伪造RDTSC

我目前正在努力工作。 RDTSC在x86程序集中被用来获得时间戳,以便在被debugging器或其他东西放慢的情况下匹配。crackme本身是elf32剥离的二进制文件

我目前正在使用MacOS + VirtualBox Debian32。

我的策略是保持第一个RDTSC电话并存储它的eax和edx 。 把它保留在其他rdtsc调用的地方,我以前的eax和edx值设置为当前的。 我没有这个策略的运气。 Crackme仍然认识我。

我通过谷歌search,发现IDAstealth另一个Windows程序,让你假rdtsc电话。

英特尔指令的LOCK前缀。 有什么意义?

从组件中读取文件

如何在汇编语言中运行独立的代码

如何find一个C程序的“退出

执行特权指令

我正在寻找相当于这个在Linux。 有没有什么办法可以在linux中设置rdtsc值?

x64调用在另一个DLL中的function

近绝对呼叫(0xFF 0x15)寻址为Windows x64

ASM at&t语法

从命令行创build一个文件

在C中写入Bootloader

你用一个带有ecx = 59的WRMSR指令写入TSC寄存器。这是一条特权指令,所以你只能在内核中执行它。

“截获”RDTSC呼叫的一个更简单的方法是将CR4中的TSD位置1,禁用RDTSC指令。 这也只能在内核中完成。

因此,无论你如何分割它,如果你想在linux上做到这一点,你需要编写一个内核模块来完成必要的控制寄存器操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐