lqzhgood
V2EX  ›  Java

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

  •  
  •   lqzhgood · May 26, 2022 · 2471 views
    This topic created in 1453 days ago, the information mentioned may be changed or developed.

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

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

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

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

    5 replies    2022-05-27 14:53:18 +08:00
    Bingchunmoli
        1
    Bingchunmoli  
       May 26, 2022 via Android   ❤️ 1
    用 java 反序列化后转 json ,但是没有原本类和序列化 id ,不会。
    sutra
        2
    sutra  
       May 26, 2022   ❤️ 1
    它的 apk 包里应该能找到 com.tencent.mobileqq.data.MarkFaceMessage 这个类的 class ,反编译一下。
    demobin
        4
    demobin  
       May 26, 2022   ❤️ 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.
    ```
    C02TobNClov1Dz56
        5
    C02TobNClov1Dz56  
       May 27, 2022
    @demobin 有意思的库.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5405 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    ♥ Do have faith in what you're doing.