吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28447|回复: 322
收起左侧

[原创工具] 微信图片解密小工具(UI版本也来了)

    [复制链接]
红叶落尽 发表于 2021-5-12 17:28
本帖最后由 红叶落尽 于 2021-5-16 08:46 编辑

自己媳妇要整理微信图片文件夹里的文件,发现里面是.dat文件的,网上找了一下,发现这个东西是加密了滴,但是解密并不复杂。本来想偷懒用网上的工具,发现效率太低,一个文件夹里面都是上万的文件。然后就打算用golang重新写一个,因为golang有协程,能大大加快处理速度。废话不多说,直接上代码。
[Golang] 纯文本查看 复制代码
package main

import (
        "bufio"
        "fmt"
        "io/ioutil"
        "os"
        "runtime"
        "strings"
)

var fg string
var secKey byte
var decPath string
var dPath string
var workCount = 0  //工作中工人数
var maxWorker = 32 //最大工人数
var mainWorkerDone = false
var getFileWork = make(chan string) //分配工作
var workDone = make(chan bool)      //是否结束工作

func main() {
        //var rootpath string
        fmt.Println("说明:文件夹路径最后请勿带斜杠,请确认保存路径为已存在空文件夹!")
        fmt.Println("请输入待解密图片文件夹路径:")
        dscanner := bufio.NewScanner(os.Stdin) //用此方法可以获取带空格路径
        dscanner.Scan()
        dPath = dscanner.Text()
        fmt.Println("请输入待解密图片保存路径:")
        secscanner := bufio.NewScanner(os.Stdin)
        secscanner.Scan()
        decPath = secscanner.Text()
        systype := runtime.GOOS //获取操作系统类型
        if systype == "windows" {
                fg = "\\"
        } else {
                fg = "/"
        }
        secKey = getkey(dPath)
        fmt.Println(secKey)
        go getFileList()
        waitForWorkers()
}

func getkey(p string) (key byte) { //获取解密key
        dir_list, err := ioutil.ReadDir(p)
        if err == nil {
                for _, v := range dir_list { //循环查找文件,需要找到jpg加密特征码
                        if v.IsDir() == false { //判断是否是文件夹
                                fio, err := ioutil.ReadFile(p + fg + v.Name())
                                if fio[0] == fio[2] && err == nil {
                                        key = fio[0] ^ '\xFF' //异或运算获取解密key
                                        return key
                                }
                        }
                }
        }
        return
}

func decodepic() { //解密图片
        fname := <-getFileWork //向通道获取任务
        fpath := dPath + fg + fname
        ffio, err := ioutil.ReadFile(fpath)
        if err == nil {
                for i, val := range ffio {
                        ffio[i] = val ^ secKey
                }
                var hz string
                if ffio[0] == '\xFF' && ffio[1] == '\xD8' { //jpg格式
                        hz = "jpg"
                } else if ffio[0] == '\x89' && ffio[1] == '\x50' { //PNG格式
                        hz = "png"
                } else if ffio[0] == '\x42' && ffio[1] == '\x4D' { //bmp格式
                        hz = "bmp"
                } else if ffio[0] == '\x47' && ffio[1] == '\x49' { //gif格式
                        hz = "gif"
                } else { //未知格式
                        hz = "dat"
                }
                fname := strings.TrimRight(fname, "dat") + hz //生成新的名称
                decf := decPath + fg + fname
                ioutil.WriteFile(decf, ffio, 0666)
                //reFileName <- decf //向通道反馈解密的文件名
                fmt.Println(decf)
                workDone <- true //报告任务已经完成
        }
}

func waitForWorkers() { //任务循环监听进程
        for {
                if workCount < maxWorker { //布置新工作
                        go decodepic()
                        workCount++ //加个工人
                }
                select {
                case <-workDone:
                        workCount-- //工人减少
                }
                if mainWorkerDone == true && workCount == 0 { //所有工作完成,退出循环
                        return
                }
        }
}

func getFileList() { //任务发布者,根据获取的文件列表发送任务
        flist, err := ioutil.ReadDir(dPath)
        if err == nil {
                for _, ff := range flist {
                        if ff.IsDir() == false && strings.Contains(ff.Name(), ".dat") == true {
                                //t := dPath+fg+ff.Name()
                                getFileWork <- ff.Name()
                        }
                }
                mainWorkerDone = true //主任务结束标志
        }
}


最后附上编译好的exe,双击直接运行

UI版本来了(mac和win的)
链接:https://pan.baidu.com/s/1oNxzE3RM6npKLaNWrYrBFQ
提取码:1lj1
UI版采用的是原生UI 我不大会美化 将就用吧  exe文件是用rar打包的自解压程序  里面的dll 是govcl的链接库。UI界面文件我就不放了 我也没整明白。
注:代码我都是在MAC下面编写和编译的,应该是不会出现啥兼容性问题,就是界面丑【用的跨平台库】,后来发现 mac的wechat竟然没有使用加密,可以直接看图片,真是有意思咧。突然看到有群友写了一个UI界面非常好看的工具,挺不错的,而且好像有人测试gif无法解密,我这个小工具估计也无法解密gif,因为解密方法我是从网上找的,我的测试文件里面也没有发现gif文件,如果以后找到方法了我再更新吧。

wechatpicres.zip

1.22 MB, 下载次数: 2602, 下载积分: 吾爱币 -2 CB

没有压缩的编译文件

免费评分

参与人数 73吾爱币 +65 热心值 +64 收起 理由
aren008 + 1 + 1 我很赞同!
jjbudy84 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
kevin233 + 1 谢谢@Thanks!
alex1yhy + 1 + 1 我很赞同!
wudakai1218 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
laobj + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
黑丝短裙 + 1 热心回复!
syjl25111 + 1 + 1 谢谢@Thanks!
imsnail + 1 + 1 谢谢@Thanks!
whduanping + 1 + 1 我很赞同!
yln19971225 + 1 + 1 谢谢@Thanks!
zdj520320 + 1 + 1 谢谢@Thanks!
cgyy + 1 我很赞同!
hjl123 + 1 + 1 谢谢@Thanks!
taaiyu + 1 谢谢@Thanks!
sht281 + 1 + 1 我很赞同!
征战四方 + 1 + 1 谢谢@Thanks!
赫鲁 + 1 + 1 我很赞同!
Peaky + 1 + 1 谢谢@Thanks!
wangzhenuen + 1 + 1 我很赞同!
pbgz + 1 + 1 谢谢@Thanks!
SmartRick + 1 鼓励转贴优秀软件安全工具和文档!
fengsuixinfei + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
vegeta + 1 我很赞同!
aikexue + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
叁块石头 + 1 不是一般的好用,分享使用技巧:可以精准解密需要的图片,找到加密图片文件.
nyhpro + 1 + 1 谢谢@Thanks!
会飞的花 + 1 + 1 谢谢@Thanks!
kingstarg + 1 + 1 谢谢@Thanks!
peterkane + 1 + 1 我很赞同!
thinknext + 1 我很赞同!
Aleshaaaa + 1 + 1 谢谢@Thanks!
cxjj + 1 + 1 热心回复!
风萧独影 + 1 + 1 热心回复!
茶城兄弟 + 1 谢谢@Thanks!
爱困了 + 1 + 1 我很赞同!
一叶微风 + 1 + 1 谢谢@Thanks!
Nron + 1 + 1 谢谢@Thanks!
jeef3287958 + 1 + 1 谢谢@Thanks!
WOAICXH + 1 热心回复!
qyhnet + 1 + 1 我很赞同!
beoncn + 1 + 1 热心回复!
allex02 + 1 我很赞同!
gyrryg + 1 谢谢@Thanks!
Lectter + 1 谢谢@Thanks!
花之舞 + 1 + 1 用心讨论,共获提升!
DaiTian + 1 谢谢@Thanks!
legendofvic + 1 + 1 谢谢@Thanks!
頩耔 + 1 + 1 膜拜大佬
生姜包子 + 1 + 1 谢谢@Thanks!
gabrielxmh + 1 我很赞同!
ywynzj + 1 + 1 谢谢@Thanks!
前世水_今生茶 + 1 + 1 谢谢@Thanks!
水月十兵卫 + 1 + 1 用心讨论,共获提升!
大雨打湿衣 + 1 + 1 谢谢@Thanks!
fenglianyun + 1 + 1 我很赞同!
Aric + 1 + 1 热心回复!
fuwenyue + 1 + 1 热心回复!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chao8709 + 1 + 1 热心回复!
beijihu999 + 1 谢谢@Thanks!
xiaobiao + 2 + 1 其他不说,评分送上
yf668888 + 1 谢谢@Thanks!
红尘客栈。 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Flyblove + 1 谢谢@Thanks!
angguandianzi + 1 + 1 我很赞同!
cxqdly + 1 + 1 谢谢@Thanks!
迪迪君 + 1 谢谢@Thanks!
wu-ai-po-jie + 1 用心讨论,共获提升!
栀蓝 + 1 + 1 谢谢@Thanks!
wangfeng_wcg + 1 我很赞同!
pentest686 + 1 + 1 大佬,厉害了,有时间看看
liuzqm + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 549, 订阅: 87

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 红叶落尽 发表于 2021-5-12 17:35
本帖最后由 红叶落尽 于 2022-1-14 10:40 编辑

本来想套个UI 还没研究好 搞好了我再把套UI版本的给更新上来

坛子里有另外一个工具 非常的好用,还能预览,推荐大家用那一款。这个工具大家可以读一下源码 了解一下原理。。欢迎探讨
tqb19900506 发表于 2021-5-12 18:07
不明觉厉   下载下来也没搞明白  但是还是支持一下
luckmako 发表于 2021-5-12 17:28
qqjaf110 发表于 2021-5-12 17:32
感谢分享!
liuzqm 发表于 2021-5-12 17:35
很好的,学习一下
zxzxzxzx329 发表于 2021-5-12 17:42
不错,借鉴一下
2733369 发表于 2021-5-12 17:50
谢谢分享...
神一样啲男人 发表于 2021-5-12 17:50

谢谢楼主分享
andacn 发表于 2021-5-12 17:55
多谢大牛,太厉害了,正好用到
tan阿法 发表于 2021-5-12 17:55
学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 19:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表