我有一个大型项目,它会将可执行文件(让我们称之为问候)加载到内存中,但出于某种原因(例如,有许多文件称为问候语在不同的目录下),我需要知道内存中的进程是否正是我想要使用的进程。
我知道如何比较两个文件:diff,cmp,cksum等。但有没有办法将内存中的进程与硬盘中的可执行文件进行比较?
答案 0 :(得分:6)
根据this answer,您可以从proc文件系统获取二进制文件的内存版本的内容。我想你可以使用原版和内存版本。
根据/ proc的手册页,在Linux 2.2及更高版本下, file是一个符号链接,包含已执行的实际路径名 命令。显然,二进制文件被加载到内存中,并且 / proc / [pid] / exe指向内存中二进制文件的内容。