我目前正在努力工作。 RDTSC在x86程序集中被用来获得时间戳,以便在被debugging器或其他东西放慢的情况下匹配。crackme本身是elf32剥离的二进制文件。
我目前正在使用MacOS + VirtualBox Debian32。
我的策略是保持第一个RDTSC电话并存储它的eax和edx 。 把它保留在其他rdtsc调用的地方,我以前的eax和edx值设置为当前的。 我没有这个策略的运气。 Crackme仍然认识我。
我通过谷歌search,发现IDAstealth另一个Windows程序,让你假rdtsc电话。
英特尔指令的LOCK前缀。 有什么意义?
从组件中读取文件
如何在汇编语言中运行独立的代码
执行特权指令
我正在寻找相当于这个在Linux。 有没有什么办法可以在linux中设置rdtsc值?
近绝对呼叫(0xFF 0x15)寻址为Windows x64
ASM at&t语法
在C中写入Bootloader
你用一个带有ecx = 59的WRMSR指令写入TSC寄存器。这是一条特权指令,所以你只能在内核中执行它。
“截获”RDTSC呼叫的一个更简单的方法是将CR4中的TSD位置1,禁用RDTSC指令。 这也只能在内核中完成。
因此,无论你如何分割它,如果你想在linux上做到这一点,你需要编写一个内核模块来完成必要的控制寄存器操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。