易语言通过枚举密码进行破解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_解压文件 (编辑框_文件路径.内容, 局部_密码, 取当前目录 () + “\”) = 真) 标签_显示.标题 = “” 标签_显示.标题 = “文件密码是:” + 局部_密码 返回 (真) .否则 标签_显示.标题 = “” 标签_显示.标题 = “正在尝试密码:” + 局部_密码 返回 (假) .如果结束 .子程序 _按钮_退出_被单击 结束 ()
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
赞 (0)