基于CPU缓存的隐蔽进程通讯

Interprocess Communication

Baklib
狐白 最后一次编辑 12 天前
74

效果

可在不同进程或相同进程通信,以及通信多个进程

缺点

速度有限,CPU占用高,如果发送0x1000字节 150000缓存次数  可能需要18秒,AMD 5600X 测试 L1 384K L2 3MB L3 32MB

原理

选定CPU缓存的虚拟地址,通过__rdtscp 测量缓存访问时间  对缓存进行刷新和预取 _mm_clflushopt _mm_prefetch
但需要注意数据可能是残缺的 所以需要多次获取确保数据完整性,所以这样一来需要占用大量CPU ☞_mm_clflushopt_mm_prefetch