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

2022-05-26 16:44:18 +08:00
 lqzhgood

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

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

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

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

1389 次点击
所在节点    Java
5 条回复
Bingchunmoli
2022-05-26 16:55:25 +08:00
用 java 反序列化后转 json ,但是没有原本类和序列化 id ,不会。
sutra
2022-05-26 17:00:50 +08:00
它的 apk 包里应该能找到 com.tencent.mobileqq.data.MarkFaceMessage 这个类的 class ,反编译一下。
sutra
2022-05-26 17:01:29 +08:00
demobin
2022-05-26 17:14:41 +08:00
`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
2022-05-27 14:53:18 +08:00
@demobin 有意思的库.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX