问题标签 [strace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8795 浏览

c - ptrace(PTRACE_PEEKUSER) 和 ptrace(PTRACE_PEEKDATA) 之间的区别?

在发布了很多关于ptrace(最近的 5 个问题是我的问题:()之后,我终于在更换时得到了所需的输出

手册页中提到的区别是这样的

  • PTRACE_PEEKTEXT在孩子记忆中的位置 addr 读取一个单词
  • PTRACE_PEEKUSER在孩子的 USER 区域中的 offset addr 处读取一个单词

我无法单独从手册页中理解这种差异。任何人都可以在这方面教育我更多吗?

0 投票
4 回答
5431 浏览

windows - 如何在 Windows 上记录程序的 DeviceIoControl 调用

我需要捕获应用程序的 DeviceIoControl() 系统调用。在 linux 上,可以使用 strace 来分析所有 ioctl 调用。windows上有类似的功能吗?

MSDN 网站推荐了一个名为“Process Monitor”的程序来分析可执行文件的实时活动。但是,“进程监视器”没有显示任何有关 DeviceIoControl 调用的信息。

0 投票
1 回答
171 浏览

linux - 如何找到我的程序的系统调用的位置?

来自 strace 手册:

我跟踪我的程序:

结果我得到了很多系统调用。其中之一:

但是在这个 prog 地址的反汇编指令不会调用任何系统调用(hte 编辑器):

怎么了?如何找到我的程序的系统调用的位置?

我的设备的 PS 架构不支持 GDB 命令 catch 系统调用。

0 投票
1 回答
553 浏览

c - ptrace 是在用户级别还是内核级别工作?

我正在尝试使用 ptrace 实现数据流异常检测。经过一番研究,我实现了一个类似于 strace 的程序。现在,我对此感到困惑,这是 wiki 告诉我的关于系统调用的内容:

“系统调用提供进程和操作系统之间的接口”

当我使用 ptrace 修改进程的内存时,我是在用户空间还是内核空间上工作?我真的很困惑。

0 投票
0 回答
357 浏览

c - 捕获 execve 系统调用的参数

我正在尝试使用 ptrace 并捕获传递给 execve 系统调用的参数。但是当我使用PTRACE_GETREGS并尝试获取参数SYS_execve时,所有寄存器值都为 0。你能告诉我 strace 如何让我获得所有通过的参数吗?我尝试阅读它的源代码,但他们显然使用了一些我没有完全使用它的结构。有没有更简单的方法??

0 投票
1 回答
559 浏览

c - 为什么 strace 遵循不同的执行流程?

我指的是以下文章学习符号链接攻击:

现在,当程序休眠时,我rm将 arg[1](使用另一个终端)作为文件名,然后为同一个文件创建一个符号链接。当我按照文章中所说的那样执行时,我正在写入链接指向的文件。

然后我使用 strace 传递了相同的参数,它给了我“无法打开”,这意味着我无权访问作为 arg[1] 传递的文件。但是当我正常执行时情况并非如此 strace 是如何检测到这个的?任何帮助都是非常有价值的。

我正在使用 ptrace 编写自己的应用程序来检测此类攻击。我尝试使用 inode 编号来检测这一点,但我的应用程序仍在引用我正在传递的文件的 inode 编号。

0 投票
1 回答
6124 浏览

linux - Strace 多线程程序

在多线程程序上运行 strace 时,我得到如下结果:

请注意,参数在一行中,<unfinished...>而结果在另一行中<...resumed>。没有与结果相关的参数会降低 strace 的效用。跟踪多线程程序时,是否可以让 strace 在同一行打印结果和参数?

0 投票
4 回答
479 浏览

python - Python多处理+ scipy:过多的文件系统'stat'和'open'尝试

我在 Python 中观察到一些极端奇怪的行为。考虑以下代码:

当我对此运行 strace -f 时,我从循环中得到以下段:

关于在文件系统中搜索“随机”的所有垃圾是怎么回事?我真的想避免这种情况,因为我在集群上并行运行了很多具有这种结构的进程,并且循环非常快,并且这种文件系统活动阻塞了文件系统元数据服务器,或者集群管理员告诉我.

如果我删除“import scipy”命令,那么这个问题就会消失:

但我需要在我的真实代码中使用 scipy,所以我不能只是摆脱它。或者也许我可以,但那会很痛苦。

有谁知道我为什么会看到这种行为?如果它是某些版本的怪癖,我正在运行以下命令:

python:2.7.1,多处理:0.70a1,scipy:0.9.0,

实际上,因为我刚刚意识到它可能取决于系统,所以我在笔记本电脑上运行了相同的代码并且没有问题(即输出相当于第二种情况)。在我正在运行的笔记本电脑上

python:2.6.5,多处理:0.70a1,scipy:0.10.0,

也许这是已修复的早期版本的 scipy 中的问题或错误?我对这样的任何东西的搜索都没有出现。即使这是问题所在,在集群上更改 scipy 的版本也不是那么容易,尽管如果需要,我可能可以让集群管理员构建更新的版本。

这可能是问题吗?

0 投票
2 回答
1721 浏览

linux - wget 的 strace 给出了奇怪的套接字调用

“strace wget grooveshark.com”以错误的字符串长度停止奇怪的套接字调用,我必须按 Ctrl+C 来终止。

write(2, "HTTP request sent, awaiting resp"..., 40HTTP request sent, awaiting response...) = 40

应该

write(2, "HTTP 请求已发送,等待响应...", 40 ) = 40

但是 strace wget google.com 给出了

并正确终止。

谢谢

0 投票
2 回答
4666 浏览

c - 解释 strace 输出

使用 strace 可以查看特定文件描述符和特定命令的 ioctl 调用。第三个参数是一个结构,但 strace 将其显示为指向内存的原始指针。strace 输出示例:

有没有办法(strace 选项或其他工具)来查看结构是什么,或者至少是原始指针后面的值?