qq的原创表情有些很萌哒,提取出来可以用的地方很多哒(?ò ? ó?)
一、准备工作
- 安卓手机
- 手机qq[非国际版/轻聊版]
- ES文件管理器[3.2.5.5或ES Pro]
- Hex Editor
二、原理简介
Android上qq原创表情存储在手机内存/tencent/MobileQQ/emotionsm
下emotionsm
文件夹是被隐藏了的,可以通过ADB抓取,也可以直接用文件管理器显示隐藏文件。
文件夹中储存着的gif经过简单加密,可以通过16进制编辑器将00000000
位的47 48 46 39 39 60 xx xx
更改为标准的GIF89a
编码47 49 46 38 39 61 xx xx
,即可正确识别。
三、提取表情
在手机qq里下载对应要提取的原创表情,然后打开ES文件管理器,按手机菜单键打开左侧[菜单]
,在[工具]
选项栏下下翻,找到[显示隐藏文件]
,将开关更改为蓝色[开]
依次打开手机主存/tencent/MobileQQ
,这个目录在2020年新版QQ迁移到了手机主存/Andriod/data/com.tencent.mobileqq/Tencent/MobileQQ
,在该文件夹下找到.emotionsm
文件夹并进入
在该文件夹下的目录数字为表情编号,在这些数字目录下储存着原创表情的gif以及缩略图。这里需要找到你需要的那个表情的文件夹,需要挨个去翻看,根据缩略图锁定所需的表情。一般已下载的表情文件夹项目数在30以上,在这里以编号[11808]洛天依的呆萌日常为例。
*图中文件名为等长无尾缀、文件大小在100k以上(多数情况)即为加密后的gif
长按批量选中并复制粘贴到手机内存容易找到的地方;全部选中,点击[重命名]
,新文件名自己可以随便填写,数字起始值推荐使用1或者01,修改扩展名填写[gif]
打开Hex Editor,选择[打开文件]
并定位到刚才复制出来的目录,按顺序选择第一个gif。把第一排的[47 48 46 39 39 60 xx xx]
改成[47 49 46 38 39 61 xx xx]
点击右上角保存,大功告成,返回ES,可以看到修改过的图会显示缩略图并且可以打开播放。
其他的图照此方法重复操作即可(>﹏<)
四.其他问题
因为腾讯gif表情的编码方式略有不同,提取出来的表情在Ps、Win图片查看器等软件上无法打开或者只能看到静态图,这里提供两个解决方案:
提取出来的GIF无法在qq里面发出来
这是因为表情会被识别为侵权而被和谐,这个识别是通过识别MD5实现的,可以通过Photoshop或者图片工厂进行一次转存解决
提取出来的GIF分辨率不对,只有左上角
用Photoshop或者图片工厂进行裁剪
有些图片改了16进制字头还是无法读取
这个我也在纠结,miku的表情100k以上的均无法照此实现提取,但是100k以下的都可以。等有了新进展我将会在这里跟进。
五.相关下载
点击下载
(密码bldr
)
表情下载
点击前往
*原创文章,转载请注明出处
感谢分享,初音16th的准备去试试看
解决“100k以上的表情无法照此实现提取”的问题:以四位16进制为一组,遇到偶数+1,遇到奇数-1。比如4748是偶数,+1变成4749,322F是奇数,-1变成322E。整个文件头都要一一改变,直到不加密的地方为止。比如“4E44 5452 4340 5044 322F 3002 0101 0001 21FE 0B59 4D51 2045 6175 6159”解密后就变成“4E45 5453 4341 5045 322E 3003 0100 0000 21FF 0B58 4D50 2044 6174 6158”。这种方法可以解决“只改文件头会转换失败”的问题。