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

Java Serialization 生成的二进制文件如何转换成 JSON?

  •  
  •   lqzhgood · 2022-05-26 16:44:18 +08:00 · 1584 次点击
    这是一个创建于 901 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在解密 Android QQ 的数据库中表情包这一项的解码

    通过解密后是一段二进制数据,是 ACED0005 开头的,搜索得知是 Java Serialization 接口序列化后的文件。

    但本人一个前端不会 Java ,请问有办法把 Java 序列化后的文件变成 JSON 么?

    样本文件在这里 https://github.com/ZhangJun2017/QQChatHistoryExporter/issues/5

    5 条回复    2022-05-27 14:53:18 +08:00
    Bingchunmoli
        1
    Bingchunmoli  
       2022-05-26 16:55:25 +08:00 via Android   ❤️ 1
    用 java 反序列化后转 json ,但是没有原本类和序列化 id ,不会。
    sutra
        2
    sutra  
       2022-05-26 17:00:50 +08:00   ❤️ 1
    它的 apk 包里应该能找到 com.tencent.mobileqq.data.MarkFaceMessage 这个类的 class ,反编译一下。
    demobin
        4
    demobin  
       2022-05-26 17:14:41 +08:00   ❤️ 1
    `sudo pip intstall javaobj-py3`
    ```
    Python 3.8.10 (default, Mar 15 2022, 12:22:08)
    [GCC 9.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import javaobj
    >>> j = javaobj.JavaObjectUnmarshaller(open('6618684157263489480.txt', 'rb')).readObject()
    >>> j.
    j.annotations j.cSubType j.dwMSGItemType j.faceName j.imageHeight j.index j.mobileparam j.sbfKey j.wSize
    j.cFaceInfo j.classdesc j.dwTabID j.get_class( j.imageWidth j.mediaType j.resvAttr j.sbufID
    >>> j.
    ```
    chengyiqun
        5
    chengyiqun  
       2022-05-27 14:53:18 +08:00
    @demobin 有意思的库.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:15 · PVG 04:15 · LAX 12:15 · JFK 15:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.