V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

如何提取隐写到 jpg 中的视频信息?

  •  
  •   FaiChou ·
    FaiChou · 2023-06-02 16:06:27 +08:00 · 2216 次点击
    这是一个创建于 542 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://m.dodoge.me/bangumi/8497/play/1/12/

    这个视频站中的视频都是视频流地址,数据在百度云 OSS 上,每次请求的时候是一张张的 jpg ,下载下来后是全黑的照片。

    有什么方法可以将视频信息从这张 jpg 中提取出来?

    要下载的话可以使用 Chrome 插件 cococut ,但本帖只探讨技术。

    16 条回复    2023-06-03 21:08:40 +08:00
    AoEiuV020JP
        1
    AoEiuV020JP  
       2023-06-02 16:14:18 +08:00
    有个 binwalk ,可以识别出二进制文件哪部分是什么格式内容,
    我猜应该可以识别出第几字节到第几字节是 jpg ,然后第几字节到第几字节是视频,
    再取出来特定范围的数据就可以,
    没测试,
    dcty
        2
    dcty  
       2023-06-02 16:14:58 +08:00
    嗯,你下载之后,把后缀改为 mp4 就可以用播放器打开了。
    misdake
        3
    misdake  
       2023-06-02 16:15:23 +08:00 via Android
    比如可以在文件尾写上隐藏文件的 offset ,或者 jpg 内容本身就是固定大小的
    CloudnuY
        4
    CloudnuY  
       2023-06-02 16:16:05 +08:00
    下载下来的 jpg 或者 gif 文件扩展名改成 mp4 就可以用播放器播放了……
    shuax
        5
    shuax  
       2023-06-02 16:17:27 +08:00
    实际上是 gif ,然后在尾部添加了视频数据。
    FaiChou
        6
    FaiChou  
    OP
       2023-06-02 16:22:19 +08:00
    @dcty 测试过 不可以
    dcty
        7
    dcty  
       2023-06-02 16:24:33 +08:00

    应该是伪装成图片骗过图床的校验
    dcty
        8
    dcty  
       2023-06-02 16:26:19 +08:00
    @FaiChou #6 我没有每一个都测试,根据我测试的其中一个来看,通过改文件扩展名可以直接播放,如果你不行,可能是你的播放器没容错。

    通过 hexdump 查看文件前面的数据,很明显就是视频,只不过在前面插入了一些伪装成图片的信息来欺骗图床。
    whoami9894
        9
    whoami9894  
       2023-06-02 16:31:43 +08:00
    DECIMAL HEXADECIMAL DESCRIPTION
    --------------------------------------------------------------------------------
    0 0x0 GIF image data, version "89a", 100 x 100
    336 0x150 MPEG transport stream data
    900 0x384 MPEG transport stream data
    177432 0x2B518 MPEG transport stream data
    365996 0x595AC MPEG transport stream data
    545724 0x853BC MPEG transport stream data
    724700 0xB0EDC MPEG transport stream data
    FaiChou
        10
    FaiChou  
    OP
       2023-06-02 17:13:24 +08:00
    @dcty #8 哦哦 我测试了一下,用 iina 播放是 0 秒的视频,但微信里播放是 5 秒的视频。
    totoro52
        11
    totoro52  
       2023-06-02 22:02:29 +08:00
    好家伙 白嫖图床
    token10086
        12
    token10086  
       2023-06-03 00:49:06 +08:00
    这个时候就要批评下 又拍云 的 form api 了,它上传的时候识别后缀,用户打开的时候是读的头文件。这样就有个有趣的操作,用户可以把 1.mp4 重命名为 1.jpg 。然后发给别人 content-type 头返回的是 mp4 !!!!

    别问我意见为什么这么大,被坑过。
    awolf
        13
    awolf  
       2023-06-03 14:06:00 +08:00
    @token10086 被内容 shencha 到了?
    LLaMA2
        14
    LLaMA2  
       2023-06-03 14:27:28 +08:00
    文件是一堆按照特定规则编码的字节码,一个文件是什么类型( jpg ? png ? kmv ? mp4.....)不取决于文件名或文件名后缀,而是取决于内容本身。

    所以一些奇怪的网站中视频流为了绕过检查,或者是节省流量费用,自己搞一些奇怪的文件,配合定制下播放器播放的逻辑,在播放器处理下字节码还原成原本的面貌,也就不影响播放了
    daimaosix
        15
    daimaosix  
       2023-06-03 21:06:12 +08:00
    这就是 hls 协议的视频,现在很多视频转码系统支持伪装后缀,上传到各个大厂的口子上,没啥好讨论的,一看这种类型的网站就明白了
    daimaosix
        16
    daimaosix  
       2023-06-03 21:08:40 +08:00
    下载下来后缀改成 ts 就能播
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5581 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 09:19 · PVG 17:19 · LAX 01:19 · JFK 04:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.