tgbot-collection/ExpressBot

关于被加密的视频文件

JasonKhew96 opened this issue · 10 comments

当时客户端1.0的时候我已经看了一下代码
每4096字节就加密16个字节,使用AES加密

秘匙是这样组成的
fileid = "d21a081cc6a32daa85310ca6aad81e378f0b736e"
secret = "zm"
key = fileid + secret + fileid

"d21a081cc6a32daa85310ca6aad81e378f0b736ezmd21a081cc6a32daa85310ca6aad81e378f0b736e"

然后再加密就是AES钥匙

然后我写了个C++程序来解密文件
至于2.0后没做对比,不过解密后还是能看

哇哦,竟然看到了源代码?要是能提供你的C++源代码的话……我就直接port到Python省着分析了(或者PR下?或者编译出来一个二进制可以被外部调用?)。

感激不尽!

YYeTs.zip <-- C++源代码
yyets.exe input.mp4 d21a081cc6a32daa85310ca6aad81e378f0b736e
会写出 “decrypted_file” 文件
代码随便写的,没想到到成功了

@JasonKhew96
好的好的,我等会读下,看看能不能port过去

YYeTs.zip
我已经上载了C++源代码
客户端1.X的代码不知道去哪里。。。
没记错的话,当时的客户端是用C#写的
客户端2.0后好像是C++

@JasonKhew96
嗯 我以为那个包里只有二进制,打开才发现也有源代码。

很好奇你是怎么有的源代码,当初组里喊的时候我应一声就好了,说不定就能拿到源代码了。
现在的版本,目前看的话是qt5的,那么也基本上八九不离十的是cpp了。

我用这个查看源代码的 https://github.com/0xd4d/dnSpy

@JasonKhew96
哇哦,神器,net应用也能轻松看到源代码了!

请问……你知道文件的id是怎么来的吗?长度为40位,看样子应该是sha1,但是对源文件和解密之后的进行sha1结果都和id不同。

我也不知道,当时没找到文件id别的用处。