查看原文
其他

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

脚本之家 2021-06-30

The following article is from 小白学黑客 Author 小白

 关注脚本之家”,与百万开发者在一起
来源 | 小白学黑客
如若转载请联系原公众号

不知道大家有没有遇到这样的情况:遇到好看的微信表情,想把它导出成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 -

科技名人榜:“中国版乔布斯”雷军
欢迎大家点进文末视频号了解
👇👇👇

  推荐阅读:

雷军,打不倒的王者!(内含视频、新年福利)

太强了!这4款「油猴」脚本简直给浏览器开挂!

卧槽!这软件直接把同类软件干蒙了!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存