搞搞电脑微信表情的破解(.dat转png or jpg)
首先感谢:https://blog.csdn.net/weixin_42440768/
因为狗子喜欢之前那个头像,但是没找到,于是我想看看我们之前的斗图过程中有没有发她的头像。
这是做这件事情的起因。
然后找到了我微信源文件的Image文件。发现源文件都是清一色.dat格式文件。

这时候第一步直接把后缀改了jpg :( 很失望,不行,无法打开文件。
然后去谷歌搜了一下,大牛们都说是微信用异或操作加密了Jpg.
于是朝这个方向入手。
首先下载notepad++,再给它配上Hex-Editor插件,这样我们就能用notepad++用16进制打开dat了
我的办法是:
第一步:就是从网上(https://sourceforge.net/projects/npp-plugins/files/Hex%20Editor/)下载Hex-Editor.dll文件。
第二步:然后拷贝到你自己notepad安装目录的plugins子文件夹下。
第三步:最后重启notepad。


然后在这里打开16进制显示,就好了。
这样我们就得到了16进制源文件。
我以下图为样例分析。

这是打开的DAT文件,前三位是4F 96 88。按照网上大牛说了 做过了异或操作 再存储的。那么我们来试着还原。
给出参考文件头:
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
好办了,直接逐个测试下。
我发现我这个dat 是 4F^C6 = 89,96^C6 = 50,88^C6=4E
对应得上PNG格式的文件。
然后就是java打开文件重新异或之后输入输出啦。
JAVA代码(对单个文件操作,折叠的是对整个文件夹操作)
这里有个彩蛋是:本来想用python操作文件的(方便),但是本人配置了近5小时sublime+python3,因为各种墙(GFW牛逼)的问题和各种插件需要慢慢安装体验感很差,遂投入java怀抱(真香)
package Main;
import java.io.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class test {
public static void main(String[] args) {
FileInputStream in = null;
FileOutputStream out = null;
try {
String sourceFileUrl = "存放文件目录/xxxxxx.2.dat";//文件存放目录 String targetFileUrl = "F:/p1.png";//输出目录
in = new FileInputStream(sourceFileUrl);
out = new FileOutputStream(targetFileUrl);
int data = 0;
while ((data=in.read())!=-1){
//将读取到的字节异或上一个数,加密输出
out.write(data^(0xc6));//0xc6可以改
}
}catch (Exception e){
e.printStackTrace();
}finally {
//在finally中关闭开启的流
if (in!=null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package Main;
import java.io.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class P3342 {
public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(10);
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
String[] fileName = GetFileName.getFileName("C:/Users/Administrator/Documents/WeChat Files/wxid/FileStorage/General/Data/EmotionIcon/");
int i = 0;
for (String name : fileName) {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("C:/Users/Administrator/Documents/WeChat Files/wxid/FileStorage/General/Data/EmotionIcon/" + name);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out = new FileOutputStream("F:/"+name+".png");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int data = 0;
try {
while ((data=in.read())!=-1){
//将读取到的字节异或上一个数,加密输出
out.write(data^(0xc6));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
pool.submit(r);
pool.shutdown(); } }
class GetFileName {
public static String[] getFileName(String path) {
File file = new File(path);
String[] fileName = file.list();
return fileName;
} }
效果是这样的。
搞搞电脑微信表情的破解(.dat转png or jpg)的更多相关文章
- 【ionic】微信表情设置教程
NO.0 前提你的下载我的App :超级逗表情 Andorid:http://fir.im/chaojidbq Ios:https://github.com/apanly/chaojidbq (源码, ...
- idea迁移到其他电脑,省去重新安装破解及配置
idea迁移到其他电脑,省去重新安装破解及配置,要求路径与之前的电脑保持相同. 1. 将idea的配置目录文件夹整个复制过去,默认路径 C:\Users\Administrator\.IntelliJ ...
- 用微信表情翻译表白,程序员的小浪漫,赶紧Get起来!
- (转)微信小程序破解IDE
1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...
- php emoji处理微信表情
使用 https://github.com/iamcal/php-emoji 添加下面的函数到代码中 function utf8_bytes($cp){ if ($cp > 0x10000){ ...
- 判断手机电脑微信 js
if ((navigator.userAgent.match(/(MicroMessenger)/i))) { //微信浏览器 //location.href=""; } else ...
- 【java】【mysql】存储微信表情emoji表情
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com ...
- 电脑微信电脑PC 多开/防撤回 补丁
简介 经常使用微信电脑版的用户都会发现一个蛋疼的事情,那就是微信PC版不支持多开,也就是不能同时登陆多个账号,这对于需要在电脑上登陆多个微信账号的朋友来说肯定是极其的不方便.另外有的时候别人撤回了一些 ...
- mac电脑下使用fcrackzip破解zip压缩文件密码
fcrackzip简介 fcrackzip是一款专门破解zip类型压缩文件密码的工具,工具小巧方便.破解速度快,能使用字典和指定字符集破解,适用于linux.mac osx 系统 fcrackzip安 ...
随机推荐
- MongoDB复制集
1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 1.1.1 复制集的目的 ...
- 阿里云服务器 centos7 中继邮箱+转发服务 详细配置
阿里云centos7 邮箱转发服务配置 一.文档编写目的: 网络拓扑图: 阿里云服务器屏蔽掉25端口后,内网服务器如何通过跳板机发送邮件到外网邮箱. 如果是可联网的阿里云机器,可以直接配置mailx使 ...
- Mybatis常见疑问
1.在连接数据库时候,mysql是否支持fetchsize分页获取? 满足以下几个条件,可以使用fetchsize,根据游标获得记录 ①MySQL 从5.0.2开始支持分页获得. ②同时需要在jdbc ...
- OpenCV中Mat的使用
一.数字图像存储概述 数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵. 二.Mat的存储 1.OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- svg在vue-cli3中的配置
svg矢量图有时候在项目中用起来当然要比图片用起来好.之前没有用过svg,这次花了一点时间在项目中支持了svg的使用,个人感觉用起来还是没有直接用font class的爽,然后又改成font clas ...
- Idea spring 配置文件报红 URI is not registered
把报错的加到如下忽略列表中
- ssm注入失败
今天做ssm整合时候,创建bean/注入一直出错,检查几遍没发现问题,后来发现犯了个低级错误,mapper.xml的<mapper namespace="XXXXX" > ...
- Python OS模块,和Open函数
https://www.cnblogs.com/ginvip/p/6439679.html
- eclipse/idea远程调试Linux程序
第一步.在Tomcat的bin目录下的startup.sh文件的倒数第二行增加“JPDA_ADDRESS=8787”,最后一行在start的前边增加“jpda”,之后重启Tomcat 第二步.配置Ec ...