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

时间:2022-06-01 18:02:08

rar密码破解源码

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
.版本 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_解压文件 (编辑框_文件路径.内容, 局部_密码, 取当前目录 () + “\”) = 真)
  标签_显示.标题 = “”
  标签_显示.标题 = “文件密码是:” + 局部_密码
  返回 (真)
.否则
  标签_显示.标题 = “”
  标签_显示.标题 = “正在尝试密码:” + 局部_密码
  返回 (假)
.如果结束
.子程序 _按钮_退出_被单击
结束 ()

运行结果:

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

总结

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