申请会员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个循环完成字典生成)
[C++] 纯文本查看 复制代码 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());
}
}
}
}
}
}
}
我也是醉了,打心底我开始崇拜自己。这是多大一个数啊,这样我都敢干。
程序自动生成字典,眼看字典到了2G多还没完,也过去十几分钟,我也安奈不住心中的小激动。强制结束进程,开始进行爆破。
5、打开Ziperello工具,添加好要破解的压缩文件,选择自己生成的字典
点击下一步后,开始爆破。等待结果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
哎,这种笨的不能在笨的方法。很幸运,密码被猜解出来。说明我还真是很幸运的!
拿到密码后,进行解压。发现密码正确!
本篇结束!仅技术交流,如有不妥可联系删除。 |