一步步手撸一个压缩包密码爆破的批处理脚本
如题,原因主要是嫌各网站有时附带压缩密码,需要额外记忆,以及事后再找压缩包解压又想不起来密码,找起密码太费劲。草稿 v0.0.1 如下,慢慢打磨。
@rem 解压,带密码与不带密码,此外解压密码不正确是无法输出正常内容的。
@REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\问题管理.rar-o"C:\Users\nice\Desktop\"
@REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\问题管理.rar-o"C:\Users\nice\Desktop\" -p1234
@REM 7z只能实现7z、zip之类的打包加密
@REM "%ProgramFiles%"\7-Zip\7z a "C:\Users\nice\Desktop\问题管理.rar" C:\Users\nice\Desktop\问题管理.pdf -p1234
@REM 验证压缩包密码
@REM "%ProgramFiles%"\7-Zip\7z t -p1234 C:\Users\nice\Desktop\wifi密码本.rar
@REM 启用延迟变量
setlocal EnableDelayedExpansion
@REM 设置7z为常用变量
set used7z="%ProgramFiles%"\7-Zip\7z.exe
@REM 看返回值验证密码对错
"%ProgramFiles%"\7-Zip\7z t -p12345 C:\Users\nice\Desktop\wifi密码本.rar
if %errorlevel% EQU 0 (
echo 对。
) else (
echo 错。
)
endlocal 你也许需要这个,不过都是本地存储的,有丢失的风险
草稿 v0.0.2
新增:加入密码本测试,网络上常见的密码,以及个人常用密码
![](https://s2.xptou.com/2023/04/18/643e35a4251ff.png)
草稿 v0.0.2 源码
```
@REM 启用延迟变量
setlocal EnableDelayedExpansion
@REM 设置7z为常用变量
set used7z="%ProgramFiles%"\7-Zip\7z.exe
set "passwd_list=C:\Users\nice\Desktop\rarpasswd.txt"
set "has_passwd_rar=C:\Users\nice\Desktop\wifi密码本.rar"
rem 遍历密码列表并尝试打开文件
for /f "delims=" %%a in (%passwd_list%) do (
echo 测试 "%%a"...
"C:\Program Files\7-Zip\7z.exe" t -p"%%a" "%has_passwd_rar%" >nul 2>&1
if !errorlevel! equ 0 (
echo 找到: "%%a"
exit /b
)
)
echo 没找到。
pause
```
todo
* [ ]在线密码本测试
* [ ] 接收用户终端输入
* [ ] 写个简单的计时器 本帖最后由 bamboowalker 于 2023-4-18 16:55 编辑
先编个密码字典,
压缩文件的时候随便用一个字典中的密码,
然后就不用记着哪个压缩包用的什么密码了,
用这个脚本就可以了。
{:1_921:} 草稿 v0.0.3
* 新增curl远程调用密码本
* 发现301重定向错误(https写成http的原因,实际因素繁杂·,排错漏打字母)
* 终端接收字符串
* 美化格式
```
@echo off
IF NOT EXIST "C:\Users\%USERNAME%\Downloads\rarpasswd.txt" > nul (curl -o C:\Users\%USERNAME%\Downloads\rarpasswd.txt https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-txt/rarpasswd.txt)
@REM 启用延迟变量
setlocal EnableDelayedExpansion
echo/
@REM 设置7z为常用变量
set used7z="%ProgramFiles%"\7-Zip\7z.exe
set "passwd_list=C:\Users\%USERNAME%\Downloads\rarpasswd.txt"
@REM set "has_passwd_rar=C:\Users\nice\Desktop\wifi密码本.rar"
set /p input=请将文件路径复制到终端:
echo/
echo ---------开始爆破-------------
echo/
rem 遍历密码列表验证
for /f "delims=" %%a in (%passwd_list%) do (
echo 正在爆破中,密码正在快速校验:"%%a"
"C:\Program Files\7-Zip\7z.exe" t -p"%%a" "%input%" >nul 2>&1
if !errorlevel! equ 0 (
echo/
echo ---------最终结果-------------
echo/
echo 正确密码是: "%%a"
@REM 找到即退出
exit /b
)
)
echo 没找到。
``` debug_cat 发表于 2023-4-18 14:50
大佬应该分享一个密码本,这种暴力枚举都是看密码库和时间
我这有点卡,刚在半小时前在网上对比了下密码本,你可以参考下:
* 我的实验密码本: https://github.com/hoochanlon/ihs-simple/blob/main/d-txt/rarpasswd.txt
* https://enda.lanzoui.com/b00nfmolg ( [出处:B站 Adnay-- - 一秒破解复杂密码压缩包? 通杀7z RAR ZIP 常见文档格式](https://www.bilibili.com/video/BV1k54y197A6/)) 在线测试,效果图:
```
curl -Os https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-bat/seven_z_sensei.bat&&call seven_z_sensei.bat
```
![](https://s2.xptou.com/2023/04/18/643e8c1690205.png)
本地测试,效果图
![ ](https://s2.xptou.com/2023/04/18/643e869b26448.png)
附源码: https://github.com/hoochanlon/ihs-simple/blob/main/d-bat/seven_z_sensei.bat
```
@echo off
@REM 启用延迟变量
setlocal EnableDelayedExpansion
@REM 利用python获取时间,屏蔽报错信息
echo\
python -c "import datetime;now=datetime.datetime.now();print('起始时间是:', now)" 2>nul > rar_time_log.txt
@REM 判断是否存在密码本,没有则下载
IF NOT EXIST "C:\Users\%USERNAME%\Downloads\rarpasswd.txt" > nul (curl -o C:\Users\%USERNAME%\Downloads\rarpasswd.txt https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-txt/rarpasswd.txt)
echo/
@REM 设置7z为常用变量
set used7z="%ProgramFiles%"\7-Zip\7z.exe
set "passwd_list=C:\Users\%USERNAME%\Downloads\rarpasswd.txt"
@REM set "has_passwd_rar=C:\Users\nice\Desktop\wifi密码本.rar"
set /p input=请将文件路径复制到终端:
echo/
echo ---------开始爆破-------------
echo/
rem 遍历密码列表验证
for /f "delims=" %%a in (%passwd_list%) do (
echo 正在爆破中,密码正在快速校验:"%%a"
"C:\Program Files\7-Zip\7z.exe" t -p"%%a" "%input%" >nul 2>&1
if !errorlevel! equ 0 (
echo/
echo ---------最终结果-------------
echo/
type rar_time_log.txt
python -c "import datetime;other_time=datetime.datetime.now();print('现在时间为:', other_time)" 2>nul
echo/
@REM 找到即退出
echo 正确密码是: "%%a"
echo/
exit /b
)
)
echo\
echo ---------------------------------------------
echo\
type rar_time_log.txt
python -c "import datetime;other_time=datetime.datetime.now();print('现在时间为:', other_time)" 2>nul
echo\
echo 没找到。
echo\
@REM ----------------------- 草稿 -----------------------------------------
@REM解压,带密码与不带密码,此外解压密码不正确是无法输出正常内容的。
@REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\问题管理.rar-o"C:\Users\nice\Desktop\"
@REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\问题管理.rar-o"C:\Users\nice\Desktop\" -p1234
@REM 7z只能实现7z、zip之类的打包加密
@REM "%ProgramFiles%"\7-Zip\7z a "C:\Users\nice\Desktop\问题管理.rar" C:\Users\nice\Desktop\问题管理.pdf -p1234
@REM 验证压缩包密码
@REM "%ProgramFiles%"\7-Zip\7z t -p1234 C:\Users\nice\Desktop\wifi密码本.rar
@REM 启用延迟变量
@REM setlocal EnableDelayedExpansion
@REM 设置7z为常用变量
@REM set used7z="%ProgramFiles%"\7-Zip\7z.exe
@REM 看返回值验证密码对错
@REM "%ProgramFiles%"\7-Zip\7z t -p12345 C:\Users\nice\Desktop\wifi密码本.rar
@REM if %errorlevel% EQU 0 (
@REM echo 对。
@REM ) else (
@REM echo 错。
@REM )
@REM 加载密码本
@REM https://github.com/hoochanlon/ihs-simple/raw/main/d-txt/rarpasswd.txt
@REM https://statically.io/convert/
@REM http 会成301状态码,注意是https
``` 本帖最后由 hoochanlon 于 2023-4-18 21:23 编辑
#### 遇到的问题
* 选择7z,方便在公司用,有的公司会有正版检测软件、水印、禁网,措施很多的,这里就不展开了。
* 执行计时后,最后回显的问题 ;👉 `type xxx.txt`
* 301 重定向;👉 上回帖已说明
* 在线密码本调用;👉 GitHub repo raw , `curl`
* 针对没有python环境的朋友,忽略计时统计功能; 👉`2>nul`
* Windows 的 echo 如何打换行; 👉 `echo\`
#### 其他想说的
**为什么不用软件**
我个人习惯,压缩包基本不设密码,只有网站下载压缩包,经常遇到密码,找来找去很麻烦。
软件不方便我跨平台、麻烦,软件本地安装,密码字典也是本地的,那天一重装,又啥都没有了。额外保存到网盘,还是麻烦。
至于写个shell的问题,虽说自己的电脑是mac,但遇到压缩密码情况不多,后续随缘更新。
**时间统计**
没有选择 [批处理之家- [已解决]批处理怎样记录每次运行所需的时间?](http://www.bathome.net/thread-12081-1-1.html) 作为计时方案,是我觉得批处理这块不好实现。batch也没有shell `time` 这样的语法执行后计时,那么用python显示执行前,执行后的时间就好了。 感谢分享 我回头试试,正有一个忘记密码的压缩包呢
这个就是暴力破解吗,速度咋样一秒能多少次 感谢分享,好多压缩包的密码早都忘了,不知道还有么有机会打开 厉害,那么简单啊的代码就可以爆破密码! 不懂就问,这个怎么使用 用 ARCHPR不是更好么