Skip to content

小教程与程序:解密储存在Android设备上QQ的data目录中经过简单加密后的原创表情包文件

Notifications You must be signed in to change notification settings

JayMuShui/Encrypted-QQ-Original-Sticker-Decryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encrypted QQ Original Sticker Decryption | 加密后的QQ原创表情解密

此方法最后更新于UTC+8 2024-11-14 23:10:39

提示:这个项目仅仅是我用来熟悉编辑逻辑的一个小尝试,并不是一个完美的解决方案,只是提供了解密思路和简易程序。

废话

随着腾讯QQ的版本迭代,对于在其软件上的表情包保存限制越来越大,用户自定义的表情包直接可以保存到相册的功能被删除,用户可以通过以下方法:

①通过收藏然后去收藏当中找到对应内容进行保存

②通过用小程序打开然后进行保存

但是其QQ官方提供的表情包集(贴纸集)并不能进行此操作,静态的表情可以在对应缓存目录下直接复制出来使用,但是动态的GIF无法直接获得,研究了一下发现实际使用的文件是可预览的图片文件对应名字的无后缀名文件,但是并不能直接打开,会显示乱码,一通冲浪后,在 哔哩哔哩上发布于UFC+8 2017-07-10 14:47:56【教程】提取qq原创表情为gif和其评论区中名为海馬用户的评论中得到启发总结后并成功解密同时编写了一个简单的C++程序用于批量解密

原理

这里以哔哩哔哩UP主明风OuO( 男 娘 武 器 库 )的表情包为例

明风_拿心心.gif

这个表情包在QQ缓存的无后缀文件用十六进制编辑器打开后前三行为 example-QQ加密后十六进制码显示.png

经过解密后能够正常显示时为

example-解密后十六进制码显示.png

因此,我们可以总结出以下规则: 腾讯QQ对缓存在data目录中的原创表情包为对应的无后缀文件,我们对当中对前24个字节当中的偶数次序字节转化为十六进制格式进行显示时,转化的十六进制数如果是偶数则在其基础上+1,如果是奇数则在其基础上-1,完成后重新保存便可正常显示,这便是解密的方式。

相反的,加密方式为对于一个正常显示的表情包文件在前24个字节上的偶数次序偶数则在基础上-1奇数则在基础上+1

项目使用方式

根据此原理,通过一个程序读取其相同目录下的文件提取其前24字节,按照原理的方式进行修改覆盖便可得到正常表情。

在手机QQ聊天框中发送所有你想要保存的表情包

如图所示,这样才能在缓存目录中产生无后缀缓存文件 1000049950.jpg

访问QQ对应的原创表情包缓存目录文件夹

可通过MT管理器或者数据线连接PC并允许管理文件,找到 /storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/.emotionsm/

您需要自行解决高版本安卓无法访问data/.emotionsm文件夹需要取消隐藏的问题,然后按照时间顺序排序文件夹,找到对应表情包的编号文件夹,如下图所示的标红文件即是我们需要进行解密的文件,将其拷贝至PC内的文件夹

QQ原创表情包缓存文件.png

运行 [decrypt].exe可执行文件

将这些文件复制到[decrypt].exe所在目录下运行即可自动提取字节修改覆写(会自动给新产生的文件添加上.gif后缀

❗注意

[decrypt].exe会将同一目录下除自身为所有的文件都进行在此程序不可逆单向的解密(按照上述规则),请确保是运行在没有其他重要文件的环境下并且对已经解密的文件再次运行则是会得到新的不可用的文件。

About

小教程与程序:解密储存在Android设备上QQ的data目录中经过简单加密后的原创表情包文件

Topics

Resources

Stars

Watchers

Forks

Languages