-
-
[原创]修改一个C#程序的SevenZipSharp.dll文件,获取ZIP密码
-
发表于: 2019-6-17 15:41 5793
-
没什么技术含量,记录自己找出一个被C#程序加密后的ZIP文件密码
我用的一个软件每次修改设置后都会备份一次配置文件,有了这个配置文件后就可以恢复我的设置,但是此备份的配置文件是个加密的ZIP文件,因此想恢复以前的设置必须得知道密码。
试了各种可能的密码还是不对,因此我决定尝试通过分析这个软件来找出密码
这个软件安装文件太多,得先缩小范围,确定压缩在哪个模块里面
先在程序安装目录,查找有没有用来加密的可疑文件,比如zlib.dll,结果没有找到
尝试使用Process Monitor,打开过滤器,添加不是该进程名的排除的过滤项。捕获所有和这个进程有关的事件,找出和写入加密ZIP文件有关的WrtiteFile事件,在事件中查看堆栈。最终引出7z.dll和SevenZipSharp.dll这两个文件,通过搜索发现SevenZipSharp.dll好像是个C#程序集,调用的7Z.dll。查看这两个文件的导出函数表,没有什么可利用的函数。
抱着尝试的心态用NET.Reflector反编译SevenZipSharp.dll,意外的顺利

展开SevenZip命名空间,发现有个SevenZipCompressor类

展开SevenZipCompressor类,里面有4个CompressFilesEncrypted函数,看名字和参数名很容易就知道这个就是用密码压缩文件的

赞赏
他的文章
- [原创]修改一个C#程序的SevenZipSharp.dll文件,获取ZIP密码 5794
- [分享]把文件的时间都设置成一样 5028
- [讨论]如果把Cookies保存下来,在另一台电脑不知能不能用? 11350
- [原创]一个虚拟桌面程序(源码) 28933
- [讨论]QQ最新版连密码框都没有了 5496
赞赏
雪币:
留言: