当前位置: 首页 > 编程笔记 >

易语言通过枚举密码进行破解rar压缩包文件的代码

甘英光
2023-03-14
本文向大家介绍易语言通过枚举密码进行破解rar压缩包文件的代码,包括了易语言通过枚举密码进行破解rar压缩包文件的代码的使用技巧和注意事项,需要的朋友参考一下

rar密码破解源码

此功能需要加载精易模块5.6

.版本 2
.支持库 xplib
.程序集 窗口程序集_启动窗口
.程序集变量 程序集_数组1, 文本型, , "0"
.程序集变量 程序集_数组2, 文本型, , "0"
.程序集变量 程序集_数组3, 文本型, , "0"
.程序集变量 程序集_数组4, 文本型, , "0"
.程序集变量 程序集_数组5, 文本型, , "0"
.程序集变量 程序集_数组_文本汇总, 文本型, , "0"
.程序集变量 程序集_数组_标点汇总, 文本型, , "0"
.程序集变量 程序集_破解字典, 整数型
.子程序 __启动窗口_创建完毕
XP风格 (1)
.子程序 _按钮_打开_被单击
通用对话框.初始目录 = 取当前目录 ()
通用对话框.打开 ()
编辑框_文件路径.内容 = 通用对话框.文件名
.子程序 _选择框_小写字母_被单击
.如果真 (选择框_小写字母.选中 = 真)
  程序集_数组1 = { “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, “j”, “k”, “l”, “m”, “n”, “o”, “p”, “q”, “r”, “s”, “t”, “u”, “v”, “w”, “x”, “y”, “z” }
.如果真结束
.如果真 (选择框_小写字母.选中 = 假)
  清除数组 (程序集_数组1)
.如果真结束
.子程序 _选择框_大写字母_被单击
.如果真 (选择框_大写字母.选中 = 真)
  程序集_数组2 = { “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, “W”, “X”, “Y”, “Z” }
.如果真结束
.如果真 (选择框_大写字母.选中 = 假)
  清除数组 (程序集_数组2)
.如果真结束
.子程序 _选择框_数字_被单击
.如果真 (选择框_数字.选中 = 真)
  程序集_数组3 = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9” }
.如果真结束
.如果真 (选择框_数字.选中 = 假)
  清除数组 (程序集_数组3)
.如果真结束
.子程序 _选择框_英文标点_被单击
.如果真 (选择框_英文标点.选中 = 真)
  程序集_数组4 = { “`”, “~”, “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”, “(”, “)”, “-”, “_”, “=”, “+”, “\”, “|”, “[”, “]”, “{”, “}”, “;”, “:”, “'”, #左引号, #右引号, “,”, “<”, “>”, “.”, “/”, “?” }
.如果真结束
.如果真 (选择框_英文标点.选中 = 假)
  清除数组 (程序集_数组4)
.如果真结束
.子程序 _选择框_中文标点_被单击
.如果真 (选择框_中文标点.选中 = 真)
  程序集_数组5 = { “·”, “!”, “¥”, “……”, “(”, “)”, “——”, “、”, “【”, “】”, “;”, “:”, “‘”, “,”, “《”, “》”, “。”, “、”, “?” }
.如果真结束
.如果真 (选择框_中文标点.选中 = 假)
  清除数组 (程序集_数组5)
.如果真结束
.子程序 _按钮_开始_被单击
.局部变量 局部_文件后缀名, 文本型
.如果 (选择框_小写字母.选中 = 假 且 选择框_大写字母.选中 = 假 且 选择框_数字.选中 = 假)
  程序集_破解字典 = 0
.否则
  程序集_破解字典 = 1
.如果结束
局部_文件后缀名 = 取文本右边 (编辑框_文件路径.内容, 3)
.判断开始 (编辑框_文件路径.内容 = “”)
  信息框 (“请打开一个RAR文件!”, 0, “提醒”, )
  按钮_打开.获取焦点 ()
  返回 ()
.判断 (程序集_破解字典 = 0)
  信息框 (“请选择一个密码字典选项!”, 0, “提醒”, )
  返回 ()
.判断 (局部_文件后缀名 ≠ “rar”)
  信息框 (“请选择一个后缀名是RAR文件!”, 0, “错误”, )
  按钮_打开.获取焦点 ()
  返回 ()
.判断 (到数值 (编辑框_最小长度.内容) > 到数值 (编辑框_最大长度.内容))
  信息框 (“密码最大长度不能小于最小长度!”, 0, “错误”, )
  编辑框_最大长度.获取焦点 ()
  返回 ()
.默认
.判断结束
清除数组 (程序集_数组_文本汇总)
清除数组 (程序集_数组_标点汇总)
.如果真 (取数组成员数 (程序集_数组1) > 0)
  加入成员 (程序集_数组_文本汇总, 程序集_数组1)
.如果真结束
.如果真 (取数组成员数 (程序集_数组2) > 0)
  加入成员 (程序集_数组_文本汇总, 程序集_数组2)
.如果真结束
.如果真 (取数组成员数 (程序集_数组3) > 0)
  加入成员 (程序集_数组_文本汇总, 程序集_数组3)
.如果真结束
.如果真 (取数组成员数 (程序集_数组4) > 0)
  加入成员 (程序集_数组_标点汇总, 程序集_数组4)
.如果真结束
.如果真 (取数组成员数 (程序集_数组5) > 0)
  加入成员 (程序集_数组_标点汇总, 程序集_数组5)
.如果真结束
穷举密码 ()
.子程序 穷举密码
.局部变量 局部_文本, 文本型
.局部变量 局部_密码, 文本型
.局部变量 局部_取密码数组, 整数型, , "0"
.局部变量 局部_密码位数, 整数型
.局部变量 局部_循环位置, 整数型
.局部变量 局部_跳出循环, 整数型
.局部变量 局部_结果, 逻辑型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
局部_密码位数 = 到数值 (编辑框_最小长度.内容) - 1
.变量循环首 (到数值 (编辑框_最小长度.内容), 到数值 (编辑框_最大长度.内容), 1, a)
  局部_跳出循环 = 0
  局部_密码位数 = 局部_密码位数 + 1
  清除数组 (局部_取密码数组)
  .计次循环首 (局部_密码位数, )
    加入成员 (局部_取密码数组, 1)
  .计次循环尾 ()
  局部_循环位置 = 取数组成员数 (局部_取密码数组)
  .循环判断首 ()
    局部_文本 = “”
    .如果真 (取数组成员数 (局部_取密码数组) > 1)
      .计次循环首 (取数组成员数 (局部_取密码数组), c)
        局部_文本 = 局部_文本 + 程序集_数组_文本汇总 [局部_取密码数组 [c]]
      .计次循环尾 ()
      .如果 (取数组成员数 (程序集_数组_标点汇总) > 0)
        .计次循环首 (取数组成员数 (程序集_数组_标点汇总), b)
          .计次循环首 (取文本长度 (局部_文本), c)
            局部_密码 = 取文本左边 (局部_文本, c) + 程序集_数组_标点汇总 [b] + 取文本右边 (局部_文本, 取文本长度 (局部_文本) - c)
            局部_结果 = 尝试密码 (局部_密码)
            .如果真 (局部_结果 = 真)
              返回 ()
            .如果真结束
            处理事件 ()
          .计次循环尾 ()
        .计次循环尾 ()
      .否则
        局部_密码 = 局部_文本
      .如果结束
      局部_结果 = 尝试密码 (局部_密码)
      .如果真 (局部_结果 = 真)
        返回 ()
      .如果真结束
      处理事件 ()
    .如果真结束
    .如果真 (取数组成员数 (局部_取密码数组) = 1)
      .计次循环首 (取数组成员数 (程序集_数组_文本汇总), b)
        局部_文本 = 程序集_数组_文本汇总 [b]
        .如果 (取数组成员数 (程序集_数组_标点汇总) > 0)
          .计次循环首 (取数组成员数 (程序集_数组_标点汇总), b)
            局部_密码 = 局部_文本 + 程序集_数组_标点汇总 [b]
            局部_结果 = 尝试密码 (局部_密码)
            .如果真 (局部_结果 = 真)
              返回 ()
            .如果真结束
            处理事件 ()
          .计次循环尾 ()
        .否则
          局部_密码 = 局部_文本
          局部_结果 = 尝试密码 (局部_密码)
          .如果真 (局部_结果 = 真)
            返回 ()
          .如果真结束
          处理事件 ()
        .如果结束
      .计次循环尾 ()
    .如果真结束
    .如果 (取数组成员数 (局部_取密码数组) > 1)
      .如果 (局部_取密码数组 [局部_循环位置] + 1 > 取数组成员数 (程序集_数组_文本汇总))
        .判断循环首 (真)
          局部_取密码数组 [局部_循环位置] = 1
          局部_循环位置 = 局部_循环位置 - 1
          .如果真 (局部_循环位置 < 1)
            局部_跳出循环 = 1
            跳出循环 ()
          .如果真结束
          .如果 (局部_取密码数组 [局部_循环位置] + 1 > 取数组成员数 (程序集_数组_文本汇总))
            到循环尾 ()
          .否则
            局部_取密码数组 [局部_循环位置] = 局部_取密码数组 [局部_循环位置] + 1
            跳出循环 ()
          .如果结束
        .判断循环尾 ()
        局部_循环位置 = 取数组成员数 (局部_取密码数组)
      .否则
        局部_取密码数组 [局部_循环位置] = 局部_取密码数组 [局部_循环位置] + 1
      .如果结束
    .否则
      跳出循环 ()
    .如果结束
    .如果真 (局部_跳出循环 = 1)
      跳出循环 ()
    .如果真结束
  .循环判断尾 (真)
.变量循环尾 ()
标签_显示.标题 = “字典跑完啦,没有找到正确的密码!”
返回 ()
.子程序 尝试密码, 逻辑型
.参数 参数_穷举密码, 文本型
.局部变量 局部_密码, 文本型
.局部变量 局部_文本, 文本型
.局部变量 a, 整数型
.局部变量 b, 整数型
局部_密码 = 参数_穷举密码
.如果真 (编辑框_自定义开头.内容 ≠ “”)
  局部_密码 = 删首尾空 (编辑框_自定义开头.内容) + 局部_密码
.如果真结束
.如果真 (编辑框_自定义结尾.内容 ≠ “”)
  局部_密码 = 局部_密码 + 删首尾空 (编辑框_自定义结尾.内容)
.如果真结束
.如果 (RAR_解压文件 (编辑框_文件路径.内容, 局部_密码, 取当前目录 () + “\”) = 真)
  标签_显示.标题 = “”
  标签_显示.标题 = “文件密码是:” + 局部_密码
  返回 (真)
.否则
  标签_显示.标题 = “”
  标签_显示.标题 = “正在尝试密码:” + 局部_密码
  返回 (假)
.如果结束
.子程序 _按钮_退出_被单击
结束 ()

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip

  • 本文向大家介绍易语言通过路径来判断是不是在压缩包内运行的代码,包括了易语言通过路径来判断是不是在压缩包内运行的代码的使用技巧和注意事项,需要的朋友参考一下 判断是不是在压缩包内运行的代码 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。如果你想了解更多相关内容请查看下面相关链接

  • 本文向大家介绍Java解压和压缩带密码的zip文件过程详解,包括了Java解压和压缩带密码的zip文件过程详解的使用技巧和注意事项,需要的朋友参考一下 前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名。 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzipaes开源项目。 该项目在google cod

  • 本文向大家介绍Python实现加密的RAR文件解压的方法(密码已知),包括了Python实现加密的RAR文件解压的方法(密码已知)的使用技巧和注意事项,需要的朋友参考一下 博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程。         第一步:安装unrar模块,直接pip install unrar可能会找不到库,需要下载unr

  • 易语言破解 1、借助E-Code Explorer查找按钮事件 2、下消息断点,查看堆栈再返回 3、eCode法–断按钮事件 4、字符串法—插件/搜索所有参考文本 按钮事件固定模式: 0040EC78 837D F4 00 cmp dword ptr ss:[ebp-C],0 ;关键判断 0040EC7C 0F84 3B000000 je dcse.0040ECBD ;关键跳 0040EC82 6