牛掰!把微信表情包导出GIF文件

数据管道

共 1359字,需浏览 3分钟

 ·

2020-12-23 09:06

不知道大家有没有遇到这样的情况:遇到好看的微信表情,想把它导出成GIF文件,用于自己在其他地方使用。

今天,看完这篇文章,相信你知道该怎么做了!

寻找表情包文件

微信有很多表情,但我们想要的那个表情文件在哪里呢?第一步先来解决这个问题:寻找表情包文件

手机上不便操作,建议在Windows电脑上实施。

打开神器:ProcMon.exe,这是一个系统监控工具,它可以监控整个系统中所有进程的文件、注册表、网络等访问行为。

通过配置过滤器,只筛选进程名中包含wechat字样的进程,过滤出微信进程的所有文件访问行为:

这时,找到我们想要获取的表情包文件,点击发送(发送给谁都行,这里测试方便就发给了自己的文件传输助手)

随后在ProcMon中停止监控,可以看到它捕获了刚才这一操作过程中,微信进程所有的文件相关的操作记录。

往下翻,可以看到最近的对一个文件的多次读写,并且从这个文件的路径可以猜测出,这个是用户自定义(CustomEmotion)的表情包:

打开这个路径所在的文件夹,可以看到目标文件:

就是你了!

咱们给它添加一个 .gif 的扩展名,打开看看是不是刚才那个表情包。

糟糕,好像打开失败了!难道这不是GIF文件?用十六进制编辑器打开看看这文件神马格式!

V1MMWX?这是什么格式的标记?小白纵横江湖多年,也没见过这种格式的文件。

接下来看了一下同目录下的其他文件,全都是以这个标记开头的。

额~~微信看来是对表情包文件加密了!

这样不难理解,现在都有不少微信表情包作者通过制作表情包赚钱了,这些表情包图片作为知识产权,做一些安全保护自然理所应当。

但是有些图片明明就不是付费表情包,也给加密,这可不行,得想个办法解密!

破解加密文件

根据ProMon监控记录中的调用堆栈信息,可以追溯到读取表情包的位置:

在IDA中打开分析目标模块WeChatWin.dll文件,发现了几处图片文件解密的调用:

这几个函数位于另一个模块VoipEngine中,在调试器WinDbg中给它们都打上断点,再次发送表情包文件触发断点,发现是isWxGF函数命中,查看堆栈,发现了文件明文!

使用windbg的内存dump命令,将数据dump到磁盘上,查看:

.writemem f:\emj.gif 0x128352b8  L 0x1073f

果然就是之前的那个表情包!

有了明文,问题就好办了!编写一个DLL来实现将内存中的明文文件自动dump到磁盘上!

  • 获取VoipEngine加载地址
  • 获取其导出函数isWxGF函数地址
  • HOOK这个函数
  • 在HOOK函数中读取堆栈参数,将明文内容写入到磁盘文件中
  • 最后,将DLL注入到微信进程中!完事儿

注意:本文这个方法有一定的局限性,不确定哪天微信加上检测手段~然后~

·················END·················

推荐阅读

  1. 说说心里话

  2. 写给所有数据人。

  3. 从留存率业务案例谈0-1的数据指标体系

  4. NB,真PDF神处理工具!

  5. 超级菜鸟如何入门数据分析?


欢迎长按扫码关注「数据管道」

浏览 518
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报