文件名称:TrapRDTSC:用于 Mac OS X 的 rdtsc 的内核级仿真
文件大小:53KB
文件格式:ZIP
更新时间:2024-07-08 19:09:09
C++
陷阱RDTSC TrapRDTSC 在 Mac OS X/x86-64 上捕获并模拟rdtsc (读取时间戳计数器)和rdtscp指令。 这在使用 rdtsc 检测外部仪器的逆向工程软件时主要有用。 除了在使用, rdtsc Mac OS X 的 iCloud/Spotlight/iMessage/apsd/... 客户端实现用作阻止逆向工程和最终重新实现密钥交换和客户端识别机制的手段。 实施说明 TrapRDTSC 的工作原理是: 在 CR4 中设置 TSD(时间戳禁用)位,导致 rdtsc 触发环 0 外的一般保护故障。 修补 GP 中断向量以检测和模拟 rdtsc 指令。 修补 PF 中断向量以检测从 GP 处理程序获取错误指令时触发的页面错误并从中恢复。 请注意,这不会查询页表,也无法区分可恢复和不可恢复的故障。 兼容性说明 kext 仅在 Mac OS X 10.9
【文件预览】:
TrapRDTSC-master
----docs()
--------LLVM_CREDITS.txt(3KB)
----LICENSE(3KB)
----TrapRDTSC()
--------Error.hpp(2KB)
--------Logging.h(2KB)
--------CPU.hpp(5KB)
--------Info.plist(1KB)
--------kext.cpp(8KB)
--------System.hpp(4KB)
--------interrupts.s(8KB)
--------IDT.hpp(5KB)
----run.sh(1KB)
----README.md(1KB)
----ttl()
--------micro_stl.hpp(39KB)
--------shared_ptr_test.cpp(8KB)
--------weak_ptr_test.cpp(5KB)
--------weak_ptr.hpp(3KB)
--------ReferenceType.hpp(4KB)
--------ttl.hpp(283B)
--------Reference.hpp(7KB)
--------ReferenceTypeTest.cpp(6KB)
--------shared_ptr.hpp(9KB)
--------unique_ptr_test.cpp(1KB)
--------unique_ptr.hpp(2KB)
--------ReferenceValue.hpp(4KB)
----TrapRDTSC.xcodeproj()
--------project.pbxproj(15KB)
----ftk()
--------unit.hpp(1KB)
--------ftk.hpp(2KB)
--------Either.hpp(5KB)
--------list.hpp(9KB)