弄清楚程序通信

发布于 2024-11-16 23:59:36 字数 253 浏览 5 评论 0原文

我在运行程序的arm设备上有一个嵌入式gnu/linux,我可以远程登录它。我想知道程序如何向设备发送命令,这样我就可以制作自己的程序来发送这些命令,但是当我想要的时候。我很确定它会写入 /dev 中的某些内容。
我如何知道程序正在写入 /dev 中的哪个文件(我知道它不是真正的文件)以及什么内容?
作为参考,它位于带有 2.6.27.47 内核的 armv5tejl 芯片上。我也有它的工具链,这样我就可以向它编译程序。

I have an embedded gnu/linux on an arm device running a program and I can telnet it. I want to know how the program sends commands to the device so I can make my own program to send those commands but when I want it to. I'm pretty sure it writes to something in /dev.
How do I know which file in /dev (I know its not really files) a program is writing to and what?
For reference its on armv5tejl chip with 2.6.27.47 kernel. I also have its tool-chain so I can compile programs to it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与酒说心事 2024-11-23 23:59:36

使用lsof(列出打开的文件),您可以查看每个进程打开了哪些文件。您应该在那里找到您的进程使用的设备节点。或者,您可以使用 ps aux 找出程序的 PID(进程 ID),然后在 /proc/$pid/fd 中查看该进程的打开文件描述符>,其中 $pid 是您的程序的 PID。

要找出程序正在编写什么,最简单的方法可能是使用 strace 来跟踪程序执行的所有系统调用。 (使用 strace,您还可以找出程序打开的文件。)如果可能的话,您还可以将程序写入的文件替换为空文件,或者如果需要,使用虚拟内核驱动程序,该驱动程序记录它接收到的所有内容。

Using lsof (list open files), you can see which files each process has open. You should find the device node your process uses there. Alternatively, you can find out the PID (process ID) of your program using ps aux, then look at the open file descriptors of the process at /proc/$pid/fd, where $pid is the PID of your program.

To find out what the program is writing, probably the easiest thing is to use strace to trace all system calls the program does. (With strace, you can also find out which file the program opens.) You could also replace the file the program writes to with an empty file, if possible, or, if necessary, with a dummy kernel driver, which records everything it receives.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文