Linux:使用文件描述符查找Flash流

时间:2013-05-30 10:35:49

标签: linux flash

首先,我要宣布,我不打算对受版权保护的视频流和视频采取任何非法行动。我想我有权知道,我的计算机上运行的进程正在做什么(以及涉及哪些文件和位置),因此我问这个问题。我知道这些知识可能被人滥用,但这更多是知识和技术的普遍问题,因此没有公开回答这个问题的有效论据。

我正在使用最新的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)

在firefox的情况下。因此,您仍然可以访问并查看所涉及的Flash文件。 现在这已经不可能了。在铬的情况下

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或任何其他方法在这些目录中找到任何已删除的文件。

如果有人能告诉我文件的存储位置以及如何了解各个视频文件以及如何访问这些文件,我将非常感激。它们现在以某种方式分开了吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

作为bash one-ish liner

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

  1. 查看所有/ proc / / fd / 链接
  2. 仅打印指向“ Flash ”文件的文件
  3. 我这样做是为了播放Flash视频而不通过Flash播放器播放(用于持续控制和更好的电源/ CPU使用):

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