0

首先我要声明,我不打算对受版权保护的流和视频进行任何非法行为。我想我有权知道在我的计算机上运行的进程正在做什么(以及涉及哪些文件和位置),因此我提出了这个问题。我知道这些知识可能会被人们滥用,但这更像是一个普遍的知识和技术问题,因此没有理由不公开回答这个问题。

我正在使用最新的 google-chrome 浏览器(带有集成的 Pepperflash),但我发现我的问题与本地安装的 flash 插件的 Firefox 相同。(版本 11.2 及更高版本)。
过去 flash 内容存储在 /tmp 中,可以很容易地看到所涉及的文件。后来这个过程被改变了,所以如果不使用 lsof,这些文件是不可见的。使用命令

lsof | grep Flash

表现出某事。喜欢

plugin-co 1347 user 16w REG 8,2 10221034 265226 /tmp/FlashXXv6onXK (deleted)

在火狐的情况下。所以您仍然可以访问和查看所涉及的闪存文件。现在这已经不可能了。在铬的情况下

lsof | grep lash 

给我

chrome    2705            user  mem       REG               8,18 17015392    401558 /opt/google/chrome/PepperFlash/libpepflashplayer.so

这没有给我任何文件。所以我想,也许搜索已删除的文件,关于 chrome 会给我一些结果:

lsof | grep hrome | grep deleted

但不可能从输出中看到任何有用的东西。(至少对我来说)。使用 PID 和文件描述符来访问文件只会给我几千字节的文件(这远远不是加载文件的大小)。尝试播放恢复的文件(仅用于测试目的)不起作用。

我发现的另一件有趣的事情是:通常流式传输更大的视频意味着在我关闭谷歌浏览器之前,我的驱动器上的空间减少了数百兆字节。所以我将以下目录移动到 tmpfs:

/home/user/.cache/google-chrome
/home/user/.config/google-chrome/PepperFlash/
/home/user/.config/google-chrome/Default/Pepper Data/

在播放大流时,它不再在我的驱动器上分配空间。所以我猜这些目录承载这些文件。但是,我没有成功使用 lsof 或任何其他方法在这些目录中找到任何删除的文件。

如果有人能告诉我文件存储在哪里以及如何查找单个视频文件以及如何访问它们,我将非常感激。他们现在是否以某种方式分裂了?

非常感谢!

4

2 回答 2

1

它很简单,应该适用于任何 Flash 内容。1. 获取要查看打开文件描述符的进程的 PID,在这种情况下,浏览器线程将写入 /proc/PID/fd/* 中的任何 FD,这可以通过

ps -ef | grep chrome
  1. 现在浏览所有打开的 FD 并检查文件,您也可以通过 mmin 或 cmin 来完成。
    # for i in `ps -ef| grep 铬 | awk '{print$2}'`; do [ -d /proc/$i/fd ] && find /proc/$i/fd/ -type f -follow -size +50M -exec file -L {} \; ; 完毕
    /proc/2664/fd/75:数据
    /proc/2664/fd/77:数据
    /proc/3643/fd/33:Macromedia Flash 视频

这里要注意的一件事是,flash 内容是一个链接,所以文件需要-L。对于 youtube,还有一个 python 实用程序 - http://rg3.github.io/youtube-dl/ 希望对您有所帮助。

于 2013-10-14T06:28:40.837 回答
0

作为一个 bash one-ish 班轮

ls -l /proc/*/fd/* 2>/dev/null |awk '(/Flash/){print $9}'

  1. 查看所有 /proc/ /fd/链接
  2. 只打印指向“ Flash ”文件的那些

我这样做是为了播放 Flash 视频,而不是通过 Flash 播放器播放它们(用于持续控制和更好的电源/CPU 使用率):

mplayer $(\ls -l /proc/*/fd/* 2>/dev/null |awk '(/Flash/){print $9}')

于 2015-08-05T01:47:10.297 回答