Python 描述未记录程序的IPC接口?

Python 描述未记录程序的IPC接口?,python,c++,c,linux,wine,Python,C++,C,Linux,Wine,我有一个没有文档的程序。我想知道是否有一种方法可以发现它是否有用于进程间通信的接口。是否有任何工具可以通过搜索可执行文件来发现此类接口?我有兴趣了解关于这样一个程序的任何信息,比如它是否支持任何命令行选项或参数,或者任何其他可以发现的东西 我主要使用Linux,我想使用的一些程序是通过wine运行的Windows程序。我用C和C++编程,有些Python。 相关问题;有没有一种方法可以通过编程模拟单击计算机屏幕上其他窗口中的按钮?某些Windows程序使用DCOM进行进程间通信。有一些程序可以从

我有一个没有文档的程序。我想知道是否有一种方法可以发现它是否有用于进程间通信的接口。是否有任何工具可以通过搜索可执行文件来发现此类接口?我有兴趣了解关于这样一个程序的任何信息,比如它是否支持任何命令行选项或参数,或者任何其他可以发现的东西

我主要使用Linux,我想使用的一些程序是通过wine运行的Windows程序。我用C和C++编程,有些Python。
相关问题;有没有一种方法可以通过编程模拟单击计算机屏幕上其他窗口中的按钮?

某些Windows程序使用DCOM进行进程间通信。有一些程序可以从DLL和EXE文件中提取此接口。 否则,您必须反汇编程序,并直接查看代码,这不是繁琐的。 关于你的最后一个问题:
Windows程序使用消息系统与GUI通信。您可以使用
sendmessage
来模拟任何消息,例如单击按钮。

发现未记录程序的IPC接口/IPC机制可能涉及通过各种方式收集大量信息,将其放在一起并映射信息

ipcs
命令可用于获取有关所有ipc对象的信息。它应提供有关当前活动消息队列、共享内存段和信号量的信息。这是
util linux
的一部分

另一个选项是在
/proc/
中查找
shm
文件夹,以查看运行程序前后正在使用的当前活动共享内存列表

FIFO是使用mkfifo创建的特殊文件,您可以通过
ls-l
输出中的文件类型
p
来确定。此外,您还可以使用
-p
选项测试
文件是否为管道

/proc//fd
可以帮助收集更多信息。
lsof
是一个非常方便的工具,可以为您提供打开文件的列表以及打开文件的进程。它可以列出PID、PGID、PPID、进程所有者、进程正在执行的命令以及进程正在使用的文件

fuser
可以提供使用特定文件或文件系统的PID列表

top/htop
提供系统中运行的进程列表。这可以提供范围广泛的信息,从
NI
形式的进程优先级到通过
REM
MEM
使用内存

iotop
可以通过监视内核输出的I/O使用信息,提供系统上进程或线程的当前I/O使用情况表

mpstat
可以通过'iowait'参数给出系统有未完成的磁盘I/O请求时CPU或CPU空闲的时间百分比

strace
应拦截/记录进程调用的系统调用以及进程接收的信号。Strace将能够显示事件顺序和所有调用的返回/恢复路径


LTTng
是kprobe、tracepoint和perf功能的组合,可以帮助跟踪中断和竞争条件

您可以尝试使用GNU objdump as
objdump-t-t
来转储非压缩elf文件的符号表。Linux方面可能适合,尽管它非常广泛。使用
strings
ldd
可以获得一些关于Linux程序的有用信息。我想你可以运行它,然后使用
netstat
等来查看它是否打开了任何套接字。你也可以使用strace来查看它打开了什么文件以及它发出了什么操作系统调用。在运行程序之前和运行程序时,请尝试ipcs-qasm,看看是否有新的内容。同时检查运行程序时wireshark中是否有任何活动增加。sendmessage可用于向其他程序发送消息吗?