3

操作系统:Linux。

所以假设我只是流式传输了一个 mp3 文件,该文件存在于 firefox 的内存中(我可以在 about:cache?device=memory 中看到它)。

我尝试了整个浏览器的内存转储并搜索(使用 hexedit)mp3 文件中存在的字符串。Firefox 有一个不错的 about:cache?device=memory 页面,其中列出了放入内存缓存中的所有文件,我选择了有问题的 mp3,Firefox 显示了一个不错的 hexdump。所以我从那个转储中提取了一个字符串并在核心中搜索它。我可以找到它,但不幸的是,它后面的字节与 about:cache hexdump 页面中显示的字节不同,看起来文件是分散的。

如何在内存中找到文件并将其写入磁盘?感谢您的任何提示。

编辑

使用wireshark可以实现网络级解决方案

4

1 回答 1

1

对于@Anwar:

下载该特定内存缓存条目的整个 html 页面,然后在其上运行此函数(groovy):

function groovy {
    sed -n '/<pre>/,/<\/pre>/p' "$1" |  replace '<pre>' '' '</pre>' '' | hex2mp3 - "$2"
}

function hex2mp3 {
    echo "in $1"
    echo "out $2"
    echo "cut -c10-74 $1 | xxd -r -p - $2"
    cut -c10-74 "$1" | xxd -r -p - "$2"    
}

Groovy 将从<pre> </pre>标签中提取 hexdump,而 hex2mp3 会将 hexdump 反转为其原始二进制形式,以便最终您获得 mp3 ;)

cut 将丢弃 hexdump 中的额外列, xxd 将执行实际的反转操作。

于 2015-03-17T15:12:49.833 回答