申请会员ID:simont【申请通过】
申请会员ID:simont个人邮箱:simon9921@qq.com
标题:暴力破解某EXE资源加密工具打包文件密码
需要用到的工具:OD、WinHex、VC6.0、Ziperello(ZIP密码破解工具)
网上意外搜索到如下软件,打开发现是加密的。闲着就试试能不能解开,看看运气怎么样。现在我们开始干吧!
1、首先打开文件截图如下:
随便输入密码提示,播放密码不正确。
2、上OD直接拽入OD。发现它是D7写的东西,还是无壳的。查找字符串发现该软件名称:
本次主题是该程序解压文件后,我们是破解文件密码,并非破解本加密程序,所以对程序本身就不啰嗦。按常规手段大家有兴趣就跟下。
通过跟踪我们发现,该加密在错误密码的情况下,一样会解压文件。如下图:
生成的文件,我们拷一份留着。因为它在生成完运行后会删除它。
3、拷出来后,我们用WinHex打开看看如下;
从数据来看,我们发现它是一个ZIP包的头。于是将文件改名,它确实是一个压缩包文件。可惜是加密文件。
现在重点就是放在如何暴力密码了。现在我们继续OD跟看有没什么发现。
OD往下走,我们在次看到重要信息:
这里发现有个比较,估计是试用版或通用播放密码的时候,统一密码是111222333,明显这里不是默认密码,跳到下面执行发现生成了假密码,生成7个数前加上A后加上B。结合后在进行MD5加密。
这里猜想生成的MD5应该就是解压密码,往下走它开始执行压缩包了:
到这,OD部分基本走完了。因为密码不对,压缩包无法解压,程序也崩溃了。
总结:
通过OD分析,我们得到了加密的压缩包文件。解压的密码是a0000000b这样的格式在MD5一次就是最终的密码,可是没有正确密码无法解压,这串数值又如何得来成了难题。网上找ZIP破解工具,都无法解压。于是抱着试试的心态自己开始写程序生成字典来猜解!
4、打开VC 6.0,网上下载的免安装版。开始写着很戳的代码,让它自动生成密码。代码思路如下:
使用嵌套7个FOR循环从0-F,生成的字典是从a0000000b------afffffffb在MD5后保存到文本里。(仅7个循环完成字典生成)
CString str;
for(int a=0;a<0xf;a++)
{for(int b=0;b<0xf;b++)
{
for(int c=0;c<0xf;c++)
{
for(int d=0;d<0xf;d++)
{
for(int e=0;e<0xf;e++)
{
for(int f=0;f<0xf;f++)
{
for(int j=0;j<0xf;j++)
{
str.Formart("a%d%d%d%d%d%d%db",a,b,c,d,e,f,j);
MD5 m5(str.GetBuffer(),str.GetLength());
}
}
}
}
}
}
}
我也是醉了:rggrg:rggrg:rggrg:rggrg,打心底我开始崇拜自己。这是多大一个数啊,这样我都敢干。
程序自动生成字典,眼看字典到了2G多还没完,也过去十几分钟,我也安奈不住心中的小激动。强制结束进程,开始进行爆破。
5、打开Ziperello工具,添加好要破解的压缩文件,选择自己生成的字典
点击下一步后,开始爆破。等待结果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
哎,这种笨的不能在笨的方法。很幸运,密码被猜解出来。说明我还真是很幸运的!
拿到密码后,进行解压。发现密码正确!
本篇结束!仅技术交流,如有不妥可联系删除。 I D:simont
邮箱:simon9921@qq.com
申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
ps:登录后把文章整理一下发到脱壳破解区。 来此报到,成功申请到帐号。感谢管理员! 本帖最后由 Ganlv 于 2018-8-27 18:29 编辑
主帖子链接:<https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=786478&pid=21549533>
挺有意思的。
这个程序的逻辑大概就是,要求输入密码(这个密码应该是一个32位16进制数,相当于把某个 `a0000000b` 格式的字符串 MD5 一下),然后把这个作为压缩包的密码解压文件,如果成功了那就正常打开程序,失败了就失败了。这个理解应该没错吧。
这里有几个问题。
1. 为什么 `a0000000b` 这个格式表示 `a0000000b -afffffffb` 而不是`a0000000b -a9999999b` 或者 `a0000000b -azzzzzzzb`?
2. 如果是7位完整的字典最小应该是 8 GB(总共 256 M 条 每条 32 字节),为什么只生成 2 GB 就找到结果了 ?
3. 为什么用自动跑字典的软件,用了 103 秒就结束了?
按照这个尝试速度,和 103 秒的时间,应该已经尝试了 1.8 G 条了,这个速度有些不能理解,况且你的字典总共没有那么多条数据。
还有,剩余时间的将近 5 万天是什么意思。这里不太理解。
4. `f01ee686d4ad12bdba2dda094f28b859` 这个 MD5 的原始内容是什么。
f01ee686d4ad12bdba2dda094f28b859是什么的hash啊
页:
[1]