理解clock_gettime的问题
我在使用可通过 clock_gettime 访问的不同时钟时遇到困难。我特别感兴趣的是: CLOCK_REALTIME CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_COUTIME_ID 我…
当程序打开特定文件时 gdb 中断
背景故事:在 strace 下运行程序时,我注意到“/dev/urandom”正在被 open 编辑。我想知道这个调用来自哪里(它不是程序本身的一部分,它是系统的一部…
将参数传递给系统调用
我做了一个基本的 helloWorld 系统调用示例,没有参数,只是: int main() { syscall(__NR_helloWorld); return 0; } 但现在我试图弄清楚如何将实际参…
为什么许多系统调用(getpid)仅使用 strace 捕获一次?
我在程序中多次调用getpid()(以测试系统调用的效率),但是当我使用strace获取跟踪时,只有一次 getpid() 调用被捕获。 代码很简单: #include #incl…
在 QEMU 中,是否可以拦截 Linux Guest OS 发送/接收的数据包?
我们正在做一个小项目,涉及从虚拟机管理程序层(即 QEMU)监控来宾操作系统(例如 Linux)。我们想要监控的事情之一是进出客户操作系统的网络流量。…
系统调用如何转换为CPU指令?
假设有一个简单的程序,例如: #include void main() { int x; printf("Cool"); fd = open("/tmp/cool.txt", O_READONLY) } open 这里是一个系统调用…
我如何知道 pthread_mutex_destroy 中的系统错误是什么?
我正在使用命令“pthread_mutex_destroy(&lock);”。 当我检查返回值时 - 它返回数字 16。 在该命令的手册页中,据说失败时会返回非零值,但没有指定…
syscall、sys_open 或 open 哪个是?
我认为 sys_open 是规范的系统调用, 即那些以 sys_ 为前缀的系统调用。 但是 strace 应该记录所有系统调用,输出 open 作为系统调用(非前缀版本),…
Linux 中的所有系统调用都在哪里恢复?
pstrace 可用于跟踪所有SYSCALL, 但是所有SYSCALL都在哪里恢复? 我需要知道这一点,以便我可以使用 grep xxx 来知道 xxx 是否是系统调用。…
sys_open 的 ptrace %edx 不一致
我正在尝试使用 ptrace 从 sys_open 系统调用中获取文件名。我获得了文件路径指针,并且能够从该地址获取正确的数据,但是,我需要一种方法来知道要获…
Linux:通过 ptrace() 执行系统调用
嘿 :) 我目前正在为 x86/x64 Linux 开发一个内存黑客库。 我挣扎的重点是实现某种远程系统调用执行。 这是我的代码,当我尝试执行有效的系统调用时…
在 Linux 中,在进入 sys 调用时,%eax 中的值是多少? (不是 orig_eax)
当系统调用返回时,我在 %eax 中得到系统调用返回值,但是在输入时我得到 -38,即十六进制的 0xFFFFFFDA。这适用于写/读。这个数字是多少?它可以用来…