牛掰!把微信表情包导出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注入到微信进程中!完事儿
注意:本文这个方法有一定的局限性,不确定哪天微信加上检测手段~然后~
推荐阅读
欢迎长按扫码关注「数据管道」