我的目标是在不通知进程的情况下读取进程的寄存器。原因是我的程序可能在恶劣的环境中运行。例如。进程内存中存在一种恶意软件,该恶意软件将尽一切努力使其未被发现(假设它尚未获得root / kernel特权)。如果我跟踪它,则看门狗进程可以注意到ptrace停止。
我注意到可以使用process_vm_readv
系统调用来读取内存而无需ptrace。这仅需要扫描程序的root特权。
是否可以对寄存器执行相同操作?如果抢占了一个线程,则该线程的上下文必须保存在内核中的某个位置,并且理论上可以读取该信息,而无需让进程注意到它。在Linux中是否有系统调用或其他可以让我执行此操作的东西?