封包编码
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
|
.版本 2 .程序集 程序集1 .子程序 取内容, 文本型 .参数 封包, 文本型 .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 ls, 文本型 .如果真 (寻找文本 (封包, “[]”, , 假) ≠ -1 或 寻找文本 (封包, “head”, , 假) ≠ -1 或 封包 = “”) 输出调试文本 (封包) 返回 (“”) .如果真结束 a = 寻找文本 (封包, “[”, , 假) .如果真 (a ≠ -1) a = a + 2 b = 倒找文本 (封包, “]”, , 假) .如果真 (b ≠ -1) b = b - 1 ls = 取文本中间 (封包, a, b - a) ls = 子文本替换 (ls, #引号 + “,” + #引号, “\u000d\u000a”, , , 真) .如果真结束 .如果真结束 返回 (asciiConvertNative (ls)) .子程序 asciiConvertNative, 文本型, , 将Ucs2码转换为Ansi码 (返回转换后的文本) .参数 文本, 文本型, , 欲转换的Ucs2码 .局部变量 p, 文本型 .局部变量 对象, 对象 .局部变量 js, 文本型 js = “function asciiConvertNative(s) {” + #换行符 + “var asciicode = s.split(” + #引号 + “\\u” + #引号 + “);” + #换行符 + “var nativeValue = asciicode[0];” + #换行符 + “for (var i = 1; i < asciicode.length ; i++) {” + #换行符 + “var code = asciicode [i];” + #换行符 + “nativeValue += String.fromCharCode(parseInt(” + #引号 + “0x” + #引号 + “ + code.substring(0, 4)));” + #换行符 + “if (code.length > 4) {” + #换行符 + “nativeValue += code.substring(4, code.length);” + #换行符 + “}” + #换行符 + “}” + #换行符 + “return nativeValue;” + #换行符 + “}” 对象.创建 (“ScriptControl”, ) 对象.写属性 (“Language”, “JScript”) 对象.通用方法 (“Eval”, js) p = 对象.通用方法 (“Run”, “asciiConvertNative”, 文本, , , , ).取文本 () 返回 (p) .子程序 彗星URL编码, 文本型, , 返回已编码的URL .参数 Bin_URL, 文本型 .局部变量 局部_数据, 字节集 .局部变量 i, 整数型 .局部变量 ii, 文本型 局部_数据 = 到字节集 (Bin_URL) .计次循环首 (取字节集长度 (局部_数据), i) .如果 (到整数 (局部_数据 [i]) ≥ 48 且 到整数 (局部_数据 [i]) ≤ 57 或 到整数 (局部_数据 [i]) ≥ 65 且 到整数 (局部_数据 [i]) ≤ 90 或 到整数 (局部_数据 [i]) ≥ 65 且 到整数 (局部_数据 [i]) ≤ 90 或 到整数 (局部_数据 [i]) ≥ 97 且 到整数 (局部_数据 [i]) ≤ 122) ii = ii + 字符 (局部_数据 [i]) .否则 ii = ii + “%” + 取十六进制文本 (局部_数据 [i]) .如果结束 .计次循环尾 () 返回 (ii) .子程序 Base64编码, 文本型, , BASE64编码处理(返回编码后的文本) .参数 待编码数据, 字节集, , 待编码字节集 .局部变量 余数 .局部变量 临时, 字节型, , "3" .局部变量 变量 .局部变量 集合, 字节集 .局部变量 长度, 整数型 .局部变量 字符, 字节集 .局部变量 i 长度 = 取字节集长度 (待编码数据) .如果真 (长度 < 1) 返回 (“”) .如果真结束 余数 = 长度 % 3 .如果真 (余数 > 0) 待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数) .如果真结束 长度 = 取字节集长度 (待编码数据) 字符 = 取空白字节集 (长度 × 4 ÷ 3) i = 1 集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”) .变量循环首 (1, 长度, 3, 变量) 临时 [1] = 待编码数据 [变量] 临时 [2] = 待编码数据 [变量 + 1] 临时 [3] = 待编码数据 [变量 + 2] 字符 [i] = 集合 [右移 (临时 [1], 2) + 1] 字符 [i + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1] 字符 [i + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1] 字符 [i + 3] = 集合 [位与 (临时 [3], 63) + 1] i = i + 4 .变量循环尾 () .如果真 (余数 > 0) 长度 = 取字节集长度 (字符) .如果 (余数 = 1) 字符 [长度 - 1] = 取代码 (“=”, ) 字符 [长度] = 取代码 (“=”, ) .否则 字符 [长度] = 取代码 (“=”, ) .如果结束 .如果真结束 返回 (到文本 (字符)) |
微信转账记录金额导出数据的代码
此功能需要加载精易模块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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
|
.版本 2 .支持库 shell .支持库 iext .程序集 窗口程序集_启动窗口 .程序集变量 微信句柄, 整数型 .程序集变量 阿信, 类_识图 .程序集变量 handwork, 整数型 .程序集变量 总收入, 整数型 .程序集变量 领包回复, 文本型 .程序集变量 自动回复, 文本型 .子程序 __启动窗口_创建完毕 .如果真 (文件是否存在 (取特定目录 (#系统桌面) + “Config.ini”) = 假) 写配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “领包回复”, “已确定收款,即将充值”) 写配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “自动回复”, “您好,有什么可以帮助您的”) .如果真结束 ' 读取句柄 微信句柄 = 进程_名取句柄 (“WeChat.exe”) handwork = GetDesktopWindow () ' 调试输出 (微信句柄) .如果真 (微信句柄 = -1) 选择框1.选中 = 假 .如果真结束 ' 读取配置 领包回复 = 读配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “领包回复”, “已确定收款,即将充值”) 自动回复 = 读配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “自动回复”, “您好,有什么可以帮助您的”) .子程序 百度云OCR识别图片, 文本型, , 论坛大佬转载的帖子 忘记谁了... .参数 图片, 字节集, , png、gif、jpg图片,尺寸不宜过大 .局部变量 XML对象, 对象 .局部变量 源代码, 字节集 .如果真 (XML对象.创建 (“Microsoft.XMLHTTP”, ) = 假) 返回 (“”) .如果真结束 XML对象.方法 (“open”, “POST”, “http://biji.baidu.com/inotes/api/hackathonocr”, 假, ) XML对象.方法 (“setRequestHeader”, “Content-Type”, “application/x-www-form-urlencoded”) XML对象.方法 (“send”, “text=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGg&sig=47E%2BgkykZJ8HIncF%2BXugDwalZmI2mtP%2F3jy6nVZNCDUAAAAAAAAAAAAAAAAAAAAA&body=data%3Aimage%2Fpng%3Bbase64%2C” + 彗星URL编码 (Base64编码 (图片))) 处理事件 () 返回 (取内容 (XML对象.读文本属性 (“responseText”, ))) .子程序 备注识别, , , 备注识别备注识别备注识别 .局部变量 返回位置_备注, 精易_坐标 .局部变量 区域截图_备注, 字节集 .局部变量 返回文本_备注, 文本型 .如果真 (选择框2.选中 = 真) ' 首次激活自动回复 剪辑板_置文本 (自动回复) 键盘_组合按键 (#V键, #Ctrl键, , ) 键盘_单击 (#回车键, 1) 处理事件 () 键盘_单击 (#回车键, 1) .如果真结束 .如果真 (选择框3.选中 = 真) 播放音乐 (#提示音, ) .如果真结束 ' 截图 返回位置_备注 = 阿信.找图_从句柄 (, #备注标识, , ) 区域截图_备注 = 图片_屏幕区域截图 (返回位置_备注.横 + 50, 返回位置_备注.纵 - 15, 180, 30) 图片框1.图片 = 区域截图_备注 ' Ocr识别 返回文本_备注 = 百度云OCR识别图片 (区域截图_备注) 返回文本_备注 = 子文本替换 (返回文本_备注, “,”, “”, , , 真) 返回文本_备注 = 子文本替换 (返回文本_备注, “!”, “”, , , 真) 返回文本_备注 = 删全部空 (返回文本_备注) ' 调试输出 (返回文本_备注) 编辑框1.内容 = 返回文本_备注 .子程序 _按钮1_被单击 .局部变量 索引, 整数型 .局部变量 int, 整数型 .局部变量 金额, 整数型 .如果真 (编辑框1.内容 ≠ “暂无消息” 且 编辑框2.内容 ≠ “暂无转账”) ' 置剪辑版 .如果 (选择框5.选中 = 真) 剪辑板_置文本 (编辑框1.内容) .否则 剪辑板_置文本 (编辑框1.内容 + “-” + 编辑框2.内容) .如果结束 ' 加入超级列表框 索引 = 超级列表框1.插入表项 (-1, 编辑框1.内容, , , , ) 超级列表框1.置标题 (索引, 1, 编辑框2.内容) 超级列表框1.置标题 (索引, 2, 时间_到文本 (, 3, )) ' 计算总收入 总收入 = 总收入 + 到整数 (编辑框2.内容) 标签4.标题 = “已收转账数:” + 到文本 (超级列表框1.取表项数 ()) + “ | 总金额:” + 到文本 (总收入) 时钟1.时钟周期 = 2000 时钟2.时钟周期 = 6000 .如果真结束 .子程序 转账识别, , , 转账识别转账识别转账识别 .局部变量 区域截图_金额, 字节集 .局部变量 返回文本_金额, 文本型 .局部变量 返回位置_金额, 精易_坐标 .局部变量 确认收钱_位置, 精易_坐标 .局部变量 聊天框_坐标, 精易_坐标 返回位置_金额 = 阿信.找图_从句柄 (, #转账标识, , ) 处理事件 () 程序_延时 (200) 区域截图_金额 = 图片_屏幕区域截图 (返回位置_金额.横 + 46, 返回位置_金额.纵, 150, 30) ' 写到文件 (取特定目录 (#系统桌面) + “1.jpg”, 区域截图) 图片框2.图片 = 区域截图_金额 返回文本_金额 = 百度云OCR识别图片 (区域截图_金额) 程序_延时 (500) ' 点击转账 鼠标_单击 (handwork, 返回位置_金额.横, 返回位置_金额.纵, 1) ' 调试输出 (“返回位置”, 返回位置_金额.纵) 处理事件 () 程序_延时 (500) 确认收钱_位置 = 阿信.找图_从句柄 (, #确认收钱, , ) 处理事件 () 程序_延时 (1000) ' 调试输出 (“确认收钱”, 确认收钱_位置.横) .如果 (确认收钱_位置.横 ≠ -1) ' 点击收钱 鼠标_单击 (handwork, 确认收钱_位置.横, 确认收钱_位置.纵, 1) 程序_延时 (500) 处理事件 () 键盘_单击 (#Esc键, 1) 处理事件 () 程序_延时 (1000) .否则 键盘_单击 (#Esc键, 1) 处理事件 () 程序_延时 (1000) .如果结束 .如果真 (选择框4.选中 = 真) ' 领包回复 聊天框_坐标 = 阿信.找图_从句柄 (, #聊天框, , ) 程序_延时 (500) ' 调试输出 (“聊天框”, 聊天框_坐标.横) 鼠标_单击 (handwork, 聊天框_坐标.横, 聊天框_坐标.纵 + 20, 1) 程序_延时 (500) 剪辑板_置文本 (领包回复) 键盘_组合按键 (#V键, #Ctrl键, , ) 程序_延时 (500) 键盘_单击 (#回车键, 1) 处理事件 () .如果真结束 .如果真 (取文本左边 (返回文本_金额, 2) = “00”) 返回文本_金额 = “0.0” + 取文本右边 (返回文本_金额, 1) 编辑框2.内容 = 返回文本_金额 返回 () .如果真结束 返回文本_金额 = 取文本左边 (返回文本_金额, 取文本长度 (返回文本_金额) - 2) 编辑框2.内容 = 返回文本_金额 .子程序 _时钟2_周期事件 .局部变量 返回位置_金额, 精易_坐标 返回位置_金额 = 阿信.找图_从句柄 (, #转账标识, , ) .如果真 (返回位置_金额.横 = -1 且 返回位置_金额.纵 = -1) 编辑框2.内容 = “暂无转账” 返回 () .如果真结束 转账识别 () 时钟2.时钟周期 = 0 .子程序 _时钟1_周期事件, , , 监控消息识别备注 .局部变量 返回位置_消息, 精易_坐标 返回位置_消息 = 阿信.找图_从句柄 (, #消息标识, , ) ' 鼠标_移动 (, 返回位置.横, 返回位置.纵) ' 调试输出 (“消息标识符”, 返回位置_消息.横, 返回位置_消息.纵) .如果真 (返回位置_消息.横 = -1 且 返回位置_消息.纵 = -1) 返回 () .如果真结束 鼠标_单击 (handwork, 返回位置_消息.横, 返回位置_消息.纵, 1) 备注识别 () 时钟1.时钟周期 = 0 .子程序 _标签3_鼠标左键被放开, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .局部变量 错误率, 整数型 信息框 (“本程序调用百度OCR文字智能识别技术” + #换行符 + “如果识别出现错误,建议备注名中加上空格” + #换行符 + “比如:原备注名为 mx666 则改为 m x 6 6 6”, 0 + #信息图标, “提示:面向未来”) .子程序 _时钟3_周期事件 .局部变量 微信位置, 精易_矩形 .如果真 (微信句柄 = -1) 选择框1.选中 = 假 .如果真结束 .如果真 (选择框1.选中 = 真) .如果真 (选择框1.选中 = 真) 微信位置 = 窗口_取矩形 (微信句柄) 移动 (微信位置.右边 - 10, 微信位置.顶边 + 24, , ) .如果真结束 .如果真结束 .子程序 _选择框1_鼠标左键被放开, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .如果真 (微信句柄 = -1) 选择框1.选中 = 假 信息框 (“检测到您并没有打开微信” + #换行符 + “请先打开微信”, 0, “提示:您好”) .如果真结束 .子程序 __启动窗口_将被销毁 .局部变量 时间, 文本型 .局部变量 文件号, 整数型 .局部变量 int, 整数型 .局部变量 文本, 文本型 .如果 (信息框 (“您好” + #换行符 + “是否导出列表框金额相关数据?” + #换行符 + “点击是表示生成配置并导出,否则直接结束”, #是否钮 + #询问图标, “提示:是否导出数据”) = #是钮) 时间 = 到文本 (取现行时间 ()) 写到文件 (取特定目录 (#系统桌面) + 时间 + “.txt”, 到字节集 (“”)) 文件号 = 打开文件 (取特定目录 (#系统桌面) + 时间 + “.txt”, , ) .计次循环首 (超级列表框1.取表项数 (), int) 文本 = 超级列表框1.取标题 (int - 1, 0) + “-” + 超级列表框1.取标题 (int - 1, 1) + “-” + 超级列表框1.取标题 (int - 1, 2) 写文本行 (文件号, 文本) .计次循环尾 () 关闭文件 (文件号) .否则 结束 () .如果结束 .子程序 _监控消息_被选择 .局部变量 time, 整数型 .如果真 (监控消息.选中 = 真) 监控消息.选中 = 假 信息框 (“已撤销监控消息”, 0, “提示:成功”) 时钟1.时钟周期 = 0 返回 () .如果真结束 .如果真 (监控消息.选中 = 假) 监控消息.选中 = 真 .如果真 (Ms2000.选中 = 真) time = 2000 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms3500.选中 = 真) time = 3500 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms4900.选中 = 真) time = 4900 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真结束 .子程序 _Ms3500_被选择 Ms3500.选中 = 真 Ms2000.选中 = 假 Ms4900.选中 = 假 时钟1.时钟周期 = 3500 .子程序 _监控转账_被选择 .局部变量 TIME, 整数型 .如果真 (监控转账.选中 = 真) 监控转账.选中 = 假 信息框 (“已撤销监控转账”, 0, “提示:成功”) 时钟2.时钟周期 = 0 返回 () .如果真结束 .如果真 (监控转账.选中 = 假) 监控转账.选中 = 真 .如果真 (Ms5000.选中 = 真) TIME = 5000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms6000.选中 = 真) TIME = 6000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms7000.选中 = 真) TIME = 7000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真结束 .子程序 _Ms2000_被选择 Ms2000.选中 = 真 Ms3500.选中 = 假 Ms4900.选中 = 假 时钟1.时钟周期 = 2000 .子程序 _Ms4900_被选择 Ms4900.选中 = 真 Ms2000.选中 = 假 Ms3500.选中 = 假 时钟1.时钟周期 = 4900 .子程序 _Ms5000_被选择 Ms5000.选中 = 真 Ms6000.选中 = 假 Ms7000.选中 = 假 时钟2.时钟周期 = 5000 .子程序 _Ms6000_被选择 Ms5000.选中 = 假 Ms6000.选中 = 真 Ms7000.选中 = 假 时钟2.时钟周期 = 6000 .子程序 _Ms7000_被选择 Ms5000.选中 = 假 Ms6000.选中 = 假 Ms7000.选中 = 真 时钟2.时钟周期 = 7000 .子程序 _Ms200_被选择 Ms200.选中 = 真 Ms500.选中 = 假 Ms1000.选中 = 假 时钟3.时钟周期 = 200 .子程序 _Ms500_被选择 Ms200.选中 = 假 Ms500.选中 = 真 Ms1000.选中 = 假 时钟3.时钟周期 = 500 .子程序 _Ms1000_被选择 Ms200.选中 = 假 Ms500.选中 = 假 Ms1000.选中 = 真 时钟3.时钟周期 = 1000 |
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接