首页
社区
课程
招聘
[原创]修改一个C#程序的SevenZipSharp.dll文件,获取ZIP密码
发表于: 2019-6-17 15:41 5793

[原创]修改一个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函数,看名字和参数名很容易就知道这个就是用密码压缩文件的

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回