从进程上下文中跟踪内核中的单步?
我想知道如果从内核(本例中为 Linux)在进程上下文(系统调用、页面错误等)中使用 PTRACE_SINGLESTEP 调用 ptrace_request 会发生什么。它会单步执…
ptrace mprotect调试麻烦
我在一个研究项目上遇到了麻烦。 我正在尝试使用 ptrace 来观察目标进程的执行情况。 在 ptrace 的帮助下,我将 mprotect 系统调用注入到目标代码段(…
为什么 ptrace SINGLESTEP 不能正常工作?
我正在尝试使用 ptrace API 跟踪一个小程序。我发现每次运行跟踪器时,都会产生不好的结果。这是我想要跟踪的短程序的反汇编: $ objdump -d -M intel…
为什么这个 ptrace 程序说 syscall returned -38?
它与这个相同 除了我正在运行 execl("/bin/ls", "ls", NULL);。 结果显然是错误的,因为每个系统调用都返回 -38: [user@ test]# ./test_trace syscal…
为什么在使用 ptrace 跟踪进程时 WIFSIGNALED(status) 无法检测到信号?
我正在使用 ptrace 来跟踪子进程。当子进程正常退出时,它工作得很好。但如果异常退出,程序就会进入无限循环,尽管使用了宏 WIFSIGNALED(&status)。…
如何在 x86-64 上使用 ptrace?
我正在遵循此处的教程,并针对x86-64(基本上将 eax 替换为 rax 等)以便编译: #include #include #include #include #include #include #include in…
如何获得“回溯” (如 gdb)仅使用 ptrace(linux、x86/x86_64)
我想像 gdb 那样获得类似 backtrace 的输出。但我想直接通过 ptrace() 来完成此操作。我的平台是Linux,x86;以及后来的 x86_64。 现在我只想从堆栈中…
strace/ltrace 输出不一致的信息
strace pwd: getcwd("/root"..., 4096) = 6 ltrace pwd: getcwd(NULL, 0) = "/root" 为什么ltrace中第一个参数是NULL? 看起来 strace/ltrace 都使…
如何使用ptrace跟踪程序执行情况?
我一直在尝试使用系统调用“ptrace”(使用 PTRACE_SINGLESTEP 宏)来跟踪简单应用程序的执行。 在记录程序的执行时,我想跳过阅读中无用的部分,只从…
sys_open 的 ptrace %edx 不一致
我正在尝试使用 ptrace 从 sys_open 系统调用中获取文件名。我获得了文件路径指针,并且能够从该地址获取正确的数据,但是,我需要一种方法来知道要获…
Linux:通过 ptrace() 执行系统调用
嘿 :) 我目前正在为 x86/x64 Linux 开发一个内存黑客库。 我挣扎的重点是实现某种远程系统调用执行。 这是我的代码,当我尝试执行有效的系统调用时…
ptrace 附加到 vsftpd 挂起
我正在尝试 ptrace linux 上的 vsftpd 服务器进程,以便在 vsftpd 进程进行系统调用时能够获得控制权。我启动 vsftpd 进程并将此进程 ID 作为命令行传…