易语言制作网截抓包工具的代码

时间:2022-06-01 17:12:49

常量数据表

?
1
2
.版本 2
.常量 编码常量, "<文本长度: 10797>", ,   名称:编码_GB2312  英文名称:Encoding_GB2312   类型:文本型  值:“GB2312” 列举各种编码类型

全局变量表

?
1
2
.版本 2
.全局变量 系统配置路径, 文本型

网截抓包工具

?
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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
.版本 2
.支持库 eNetIntercept
.支持库 eGrid
.支持库 iconv
.支持库 iext
.支持库 iext2
.程序集 主程序集
.程序集变量 服务安装, 网络服务安装
.程序集变量 临时句柄文件路径, 文本型
.程序集变量 临时进程文件路径, 文本型
.子程序 __启动窗口_创建完毕
初始化 ()
.子程序 初始化
.局部变量 文本组, 文本型, , "0"
.局部变量 临时整数变量, 整数型
.局部变量 加入位置, 整数型
.局部变量 取出值, 文本型
.如果真 (服务安装.是否已安装 () = 假)
  .如果 (信息框 (“服务没有安装,是否现在安装?”, #询问图标 + #取消钮, “初始化”) = #确认钮)
    .如果真 (文件是否存在 (取运行目录 () + “\ESPI11.dll”) = 假)
      .如果真 (写到文件 (取运行目录 () + “\ESPI11.dll”, #安装文件) = 假)
        信息框 (“写出文件错误!”, #错误图标, “初始化”)
        结束 ()
      .如果真结束
    .如果真结束
    .如果 (服务安装.安装 (取运行目录 () + “\ESPI11.dll”) = 假)
      信息框 (“服务安装失败!”, #错误图标, “初始化”)
      结束 ()
    .否则
      信息框 (“服务安装成功!”, #信息图标, “初始化”)
    .如果结束
  .否则
    结束 ()
  .如果结束
.如果真结束
临时句柄文件路径 = 取运行目录 () + “\” + “Ws_sock.dep”
删除文件 (临时句柄文件路径)
临时进程文件路径 = 取运行目录 () + “\” + “Ws_jinchen.dep”
删除文件 (临时进程文件路径)
高级表格.列数 = 9
高级表格.行数 = 1
高级表格.置数据 (0, 0, #表格常量.文本型, “PID”)
高级表格.置数据 (0, 1, #表格常量.文本型, “进程名”)
高级表格.置数据 (0, 2, #表格常量.文本型, “进程路径”)
高级表格.置数据 (0, 3, #表格常量.文本型, “转IP”)
高级表格.置数据 (0, 4, #表格常量.文本型, “转端口”)
高级表格.置数据 (0, 5, #表格常量.文本型, “清空发送”)
高级表格.置数据 (0, 6, #表格常量.文本型, “清空接收”)
高级表格.置数据 (0, 7, #表格常量.文本型, “过滤1”)
高级表格.置数据 (0, 8, #表格常量.文本型, “过滤2”)
高级表格.置列类型 (5, #表格常量.选择型)
高级表格.置列类型 (6, #表格常量.选择型)
高级表格.置列类型 (7, #表格常量.选择型)
高级表格.置列类型 (8, #表格常量.选择型)
高级表格.置对齐方式 (0, 0, , 8, #表格常量.居中对齐)
文本组 = 分割文本 (#编码常量, #换行符, )
.计次循环首 (取数组成员数 (文本组), 临时整数变量)
  .如果真 (寻找文本 (文本组 [临时整数变量], #左引号, , 假) ≠ -1)
    取出值 = 取文本之间 (文本组 [临时整数变量], #左引号, #右引号)
    加入位置 = 源编码组合框.加入项目 (取出值, )
    .如果真 (取出值 = #编码_UTF_8)
      源编码组合框.现行选中项 = 加入位置
    .如果真结束
    加入位置 = 目编码组合框.加入项目 (取出值, )
    .如果真 (取出值 = #编码_GB2312)
      目编码组合框.现行选中项 = 加入位置
    .如果真结束
  .如果真结束
.计次循环尾 ()
_启动窗口.宽度 = 800
_启动窗口.高度 = 600
__启动窗口_尺寸被改变 ()
.子程序 调整列宽
.局部变量 临时整数变量, 整数型
.局部变量 单格大小, 整数型
单格大小 = 高级表格.宽度 ÷ 100
.计次循环首 (9, 临时整数变量)
  高级表格.置列宽 (临时整数变量 - 1, 多项选择 (临时整数变量, 单格大小 × 8, 单格大小 × 13, 单格大小 × 18, 单格大小 × 16, 单格大小 × 8, 单格大小 × 10, 单格大小 × 10, 单格大小 × 8, 单格大小 × 8))
.计次循环尾 ()
发送数据列表框.置列宽 (6, 发送数据列表框.宽度 - 500)
.子程序 __启动窗口_可否被关闭, 逻辑型
网截.关闭 ()
.子程序 __启动窗口_尺寸被改变
.如果真 (_启动窗口.宽度 < 800)
  _启动窗口.宽度 = 800
.如果真结束
.如果真 (_启动窗口.高度 < 600)
  _启动窗口.高度 = 600
.如果真结束
数据分组框.宽度 = _启动窗口.宽度 - 12
发送数据列表框.宽度 = 数据分组框.宽度 - 15
数据分组框.高度 = _启动窗口.高度 - 过滤分组框.高度 - 详细分组框.高度 - 95
发送数据列表框.高度 = 数据分组框.高度 - 25
过滤分组框.顶边 = 数据分组框.顶边 + 数据分组框.高度
详细分组框.顶边 = 过滤分组框.顶边 + 过滤分组框.高度
详细分组框.宽度 = 数据分组框.宽度 - 全局分组框.宽度 - 1
过滤分组框.宽度 = 数据分组框.宽度
高级表格.宽度 = 过滤分组框.宽度 - 10
编码转换编辑框.宽度 = 详细分组框.宽度 ÷ 2 - 7
原始数据标签.左边 = 详细分组框.宽度 - 5 - 编码转换编辑框.宽度
原始数据编辑框.左边 = 原始数据标签.左边
原始数据编辑框.宽度 = 编码转换编辑框.宽度
全局分组框.顶边 = 详细分组框.顶边
全局分组框.左边 = 详细分组框.宽度 + 1
调整列宽 ()
.子程序 _发送数据列表框_当前表项被改变
.局部变量 转换前, 字节集
.局部变量 转换后, 字节集
转换前 = 到字节集 (发送数据列表框.取标题 (发送数据列表框.现行选中项, 6))
原始数据编辑框.内容 = 发送数据列表框.取标题 (发送数据列表框.现行选中项, 6)
转换后 = 编码转换 (转换前, 源编码组合框.取项目文本 (源编码组合框.现行选中项), 目编码组合框.取项目文本 (目编码组合框.现行选中项), )
编码转换编辑框.内容 = 彗星URL解码 (到文本 (转换后))
.子程序 _工具条_被单击
.参数 按钮索引, 整数型
.判断开始 (按钮索引 = 0)
  .如果真 (网截.打开 () = 假)
    信息框 (“启动失败!”, #错误图标, )
    返回 ()
  .如果真结束
  工具条.加入状态 (0, #按下)
  工具条.去除状态 (2, #按下)
.判断 (按钮索引 = 2)
  .如果真 (网截.关闭 () = 假)
    信息框 (“停止失败!”, #错误图标, )
    返回 ()
  .如果真结束
  工具条.加入状态 (2, #按下)
  工具条.去除状态 (0, #按下)
.判断 (按钮索引 = 4)
  发送数据列表框.全部删除 ()
.判断 (按钮索引 = 6)
.判断 (按钮索引 = 8)
.默认
.判断结束
.子程序 _网截_调绑定, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网址, 网址信息, 参考
.局部变量 IP段1, 字节型
.局部变量 IP段2, 字节型
.局部变量 IP段3, 字节型
.局部变量 IP段4, 字节型
.局部变量 端口号, 整数型
网址.取IP端口 (IP段1, IP段2, IP段3, IP段4, 端口号)
写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “bdip”, 到文本 (IP段1) + “.” + 到文本 (IP段2) + “.” + 到文本 (IP段3) + “.” + 到文本 (IP段4))
写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “bddk”, 到文本 (端口号))
返回 (#拦截操作.默认调用)
.子程序 _网截_调侦听, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 等待队列长度, 整数型, 参考
返回 (#拦截操作.默认调用)
.子程序 _网截_调连接, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网址, 网址信息, 参考
.局部变量 IP段1, 字节型
.局部变量 IP段2, 字节型
.局部变量 IP段3, 字节型
.局部变量 IP段4, 字节型
.局部变量 端口号, 整数型
.局部变量 全_IP, 文本型
.局部变量 IP段组, 文本型, , "0"
.局部变量 新端口号, 整数型
网址.取IP端口 (IP段1, IP段2, IP段3, IP段4, 端口号)
全_IP = 到文本 (IP段1) + “.” + 到文本 (IP段2) + “.” + 到文本 (IP段3) + “.” + 到文本 (IP段4)
.如果真 (转IP选择框.选中 = 真)
  IP段组 = 分割文本 (IP编辑框.地址, “.”, )
  .如果真 (取数组成员数 (IP段组) ≠ 4)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (转端口选择框.选中 = 真)
  新端口号 = 到整数 (端口编辑框.内容)
.如果真结束
.如果真 (取数组成员数 (IP段组) = 4 且 新端口号 ≠ 0)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, “全转-” + 到文本 (IP段组 [1]) + “.” + 到文本 (IP段组 [2]) + “.” + 到文本 (IP段组 [3]) + “.” + 到文本 (IP段组 [4]))
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, “全转-” + 到文本 (新端口号))
  网址.置IP端口 (到字节 (IP段组 [1]), 到字节 (IP段组 [2]), 到字节 (IP段组 [3]), 到字节 (IP段组 [4]), 新端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (取数组成员数 (IP段组) = 4)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, “全转-” + 到文本 (IP段组 [1]) + “.” + 到文本 (IP段组 [2]) + “.” + 到文本 (IP段组 [3]) + “.” + 到文本 (IP段组 [4]))
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, 到文本 (端口号))
  网址.置IP端口 (到字节 (IP段组 [1]), 到字节 (IP段组 [2]), 到字节 (IP段组 [3]), 到字节 (IP段组 [4]), 端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (新端口号 ≠ 0)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, 到文本 (IP段1) + “.” + 到文本 (IP段2) + “.” + 到文本 (IP段3) + “.” + 到文本 (IP段4))
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, “全转-” + 到文本 (新端口号))
  网址.置IP端口 (IP段1, IP段2, IP段3, IP段4, 新端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “ip”, ) ≠ “”)
  IP段组 = 分割文本 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “ip”, ), “.”, )
  .如果真 (取数组成员数 (IP段组) ≠ 4)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “port”, ) ≠ “”)
  新端口号 = 到整数 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “port”, ))
.如果真结束
.如果真 (取数组成员数 (IP段组) = 4 且 新端口号 ≠ 0)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, “单转-” + 到文本 (IP段组 [1]) + “.” + 到文本 (IP段组 [2]) + “.” + 到文本 (IP段组 [3]) + “.” + 到文本 (IP段组 [4]))
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, “单转-” + 到文本 (新端口号))
  网址.置IP端口 (到字节 (IP段组 [1]), 到字节 (IP段组 [2]), 到字节 (IP段组 [3]), 到字节 (IP段组 [4]), 新端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (取数组成员数 (IP段组) = 4)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, “单转-” + 到文本 (IP段组 [1]) + “.” + 到文本 (IP段组 [2]) + “.” + 到文本 (IP段组 [3]) + “.” + 到文本 (IP段组 [4]))
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, 到文本 (端口号))
  网址.置IP端口 (到字节 (IP段组 [1]), 到字节 (IP段组 [2]), 到字节 (IP段组 [3]), 到字节 (IP段组 [4]), 端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (新端口号 ≠ 0)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, 全_IP)
  写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, “单转-” + 到文本 (新端口号))
  网址.置IP端口 (IP段1, IP段2, IP段3, IP段4, 新端口号)
  返回 (#拦截操作.更改调用)
.如果真结束
写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, 全_IP)
写配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, 到文本 (端口号))
返回 (#拦截操作.默认调用)
.子程序 _网截_调发送, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网络数据, 网络数据, 参考
.参数 调用方式, 整数型, 参考
.局部变量 表项索引, 整数型
.局部变量 数据内容, 字节型
.局部变量 文本数据, 文本型
.如果真 (清空发送选择框.选中 = 真) ' 全局过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↑”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, “数据被清空”)
  网络数据.释放 ()
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ) = “”) ' 过滤IP为空的数据局
  返回 (#拦截操作.默认调用)
.如果真结束
.如果真 (暂停过滤选择框.选中 = 真) ' 全局暂停过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↑”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, 文本数据)
  返回 (#拦截操作.默认调用)
.如果真结束
文本数据 = 网络数据.到文本 ()
.如果真 (过滤1选择框.选中 = 真) ' 全局过滤
  .如果真 (网络数据.取长度 () ≤ 1)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (过滤2选择框.选中 = 真)
  .如果真 (到大写 (取文本左边 (文本数据, 3)) ≠ “GET” 且 到大写 (取文本左边 (文本数据, 4)) ≠ “POST”)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (读配置项 (临时句柄文件路径, 到文本 (调用者信息.取进程标识 ()), “fs”, ) = “真”) ' 单进程过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↑”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, “数据被清空”)
  网络数据.释放 ()
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “1”, ) = “真”)
  .如果真 (网络数据.取长度 () ≤ 1)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “2”, ) = “真”)
  .如果真 (到大写 (取文本左边 (文本数据, 3)) ≠ “GET” 且 到大写 (取文本左边 (文本数据, 4)) ≠ “POST”)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
表项索引 = 发送数据列表框.插入表项 (, , , , , ) ' 所有过滤关闭
发送数据列表框.置标题 (表项索引, 0, “↑”)
发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
发送数据列表框.置标题 (表项索引, 6, 文本数据)
返回 (#拦截操作.默认调用)
.子程序 _网截_调接收, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网络数据, 网络数据, 参考
.参数 调用方式, 整数型, 参考
.局部变量 表项索引, 整数型
.局部变量 数据内容, 字节型
.局部变量 文本数据, 文本型
.如果真 (清空接收选择框.选中 = 真) ' 全局过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↓”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, “数据被清空”)
  网络数据.释放 ()
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ) = “”) ' 过滤IP为空的数据局
  返回 (#拦截操作.默认调用)
.如果真结束
.如果真 (暂停过滤选择框.选中 = 真) ' 全局暂停过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↓”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, 文本数据)
  返回 (#拦截操作.默认调用)
.如果真结束
文本数据 = 网络数据.到文本 ()
.如果真 (过滤1选择框.选中 = 真) ' 全局过滤
  .如果真 (网络数据.取长度 () ≤ 1)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (过滤2选择框.选中 = 真)
  .如果真 (到大写 (取文本左边 (文本数据, 3)) ≠ “GET” 且 到大写 (取文本左边 (文本数据, 4)) ≠ “POST”)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (读配置项 (临时句柄文件路径, 到文本 (调用者信息.取进程标识 ()), “js”, ) = “真”) ' 单进程过滤
  文本数据 = 网络数据.到文本 ()
  表项索引 = 发送数据列表框.插入表项 (, , , , , )
  发送数据列表框.置标题 (表项索引, 0, “↓”)
  发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
  发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
  发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
  发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
  发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
  发送数据列表框.置标题 (表项索引, 6, “数据被清空”)
  网络数据.释放 ()
  返回 (#拦截操作.更改调用)
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “1”, ) = “真”)
  .如果真 (网络数据.取长度 () ≤ 1)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “2”, ) = “真”)
  .如果真 (到大写 (取文本左边 (文本数据, 3)) ≠ “GET” 且 到大写 (取文本左边 (文本数据, 4)) ≠ “POST”)
    返回 (#拦截操作.默认调用)
  .如果真结束
.如果真结束
表项索引 = 发送数据列表框.插入表项 (, , , , , ) ' 所有过滤关闭
发送数据列表框.置标题 (表项索引, 0, “↓”)
发送数据列表框.置标题 (表项索引, 1, 到文本 (调用者信息.取进程标识 ()))
发送数据列表框.置标题 (表项索引, 2, 读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ))
发送数据列表框.置标题 (表项索引, 3, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycip”, ))
发送数据列表框.置标题 (表项索引, 4, 读配置项 (临时句柄文件路径, 到文本 (套接字句柄), “ycdk”, ))
发送数据列表框.置标题 (表项索引, 5, 到文本 (网络数据.取长度 ()))
发送数据列表框.置标题 (表项索引, 6, 文本数据)
返回 (#拦截操作.默认调用)
.子程序 _网截_调创建套接字, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 地址族, 整数型, 参考
.参数 格式, 整数型, 参考
.参数 协议, 整数型, 参考
.局部变量 临时整数变量, 整数型
.局部变量 行索引, 整数型
.局部变量 进程路径, 文本型
.如果真 (读配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, ) ≠ “”)
  返回 (#拦截操作.默认调用)
.如果真结束
高级表格.行数 = 高级表格.行数 + 1
行索引 = 高级表格.行数 - 1
进程路径 = 调用者信息.取进程名 ()
高级表格.置数据 (行索引, 0, #表格常量.文本型, 到文本 (调用者信息.取进程标识 ()))
高级表格.置数据 (行索引, 1, #表格常量.文本型, 取文本右边 (进程路径, 取文本长度 (进程路径) - 倒找文本 (进程路径, “\”, , 假)))
高级表格.置数据 (行索引, 2, #表格常量.文本型, 进程路径)
高级表格.置数据 (行索引, 3, #表格常量.文本型, “”)
高级表格.置数据 (行索引, 4, #表格常量.文本型, “”)
高级表格.置数据 (行索引, 5, #表格常量.选择型, 假)
高级表格.置数据 (行索引, 6, #表格常量.选择型, 假)
高级表格.置数据 (行索引, 7, #表格常量.选择型, 假)
高级表格.置数据 (行索引, 8, #表格常量.选择型, 假)
写配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “mc”, 取文本右边 (进程路径, 取文本长度 (进程路径) - 倒找文本 (进程路径, “\”, , 假)))
写配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “fs”, “假”)
写配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “js”, “假”)
写配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “1”, “假”)
写配置项 (临时进程文件路径, 到文本 (调用者信息.取进程标识 ()), “2”, “假”)
返回 (#拦截操作.默认调用)
.子程序 _网截_调关闭套接字
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.子程序 _网截_调许可连接, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网址, 网址信息, 参考
.局部变量 IP段1, 字节型
.局部变量 IP段2, 字节型
.局部变量 IP段3, 字节型
.局部变量 IP段4, 字节型
.局部变量 端口号, 整数型
返回 (#拦截操作.默认调用)
.子程序 _网截_调定向发送, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网络数据, 网络数据, 参考
.参数 调用方式, 整数型, 参考
.参数 网址, 网址信息, 参考
.局部变量 IP段1, 字节型
.局部变量 IP段2, 字节型
.局部变量 IP段3, 字节型
.局部变量 IP段4, 字节型
.局部变量 端口号, 整数型
返回 (#拦截操作.默认调用)
网址.取IP端口 (IP段1, IP段2, IP段3, IP段4, 端口号)
返回 (#拦截操作.默认调用)
.子程序 _网截_调定向接收, 整数型
.参数 调用者信息, 调用者信息, 参考
.参数 套接字句柄, 整数型, 参考
.参数 网络数据, 网络数据, 参考
.参数 调用方式, 整数型, 参考
.参数 网址, 网址信息, 参考
.局部变量 IP段1, 字节型
.局部变量 IP段2, 字节型
.局部变量 IP段3, 字节型
.局部变量 IP段4, 字节型
.局部变量 端口号, 整数型
返回 (#拦截操作.默认调用)
网址.取IP端口 (IP段1, IP段2, IP段3, IP段4, 端口号)
返回 (#拦截操作.默认调用)
.子程序 彗星URL解码, 文本型, 公开, 返回已解码的URL
.参数 Bin_URL, 文本型, , 欲解码的文本
.局部变量 循环容器, 整数型
.局部变量 Len, 整数型
.局部变量 HEX, 文本型
.局部变量 目标, 文本型
.局部变量 H, 整数型
.局部变量 L, 整数型
Len = 取文本长度 (Bin_URL)
循环容器 = 1
HEX = “0123456789ABCDEF”
.判断循环首 (循环容器 ≤ Len)
  .判断开始 (取文本中间 (Bin_URL, 循环容器, 1) ≠ “%”)
    目标 = 目标 + 取文本中间 (Bin_URL, 循环容器, 1)
  .默认
    循环容器 = 循环容器 + 1
    H = 寻找文本 (HEX, 到大写 (取文本中间 (Bin_URL, 循环容器, 1)), , 假) - 1
    循环容器 = 循环容器 + 1
    L = 寻找文本 (HEX, 到大写 (取文本中间 (Bin_URL, 循环容器, 1)), , 假) - 1
    目标 = 目标 + 字符 (H × 16 + L)
  .判断结束
  循环容器 = 循环容器 + 1
.判断循环尾 ()
返回 (目标)
.子程序 _高级表格_结束编辑
.局部变量 x, 整数型
.局部变量 y, 整数型
x = 高级表格.取光标列号 ()
y = 高级表格.取光标行号 ()
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “ip”, 高级表格.取数据 (y, 3))
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “port”, 高级表格.取数据 (y, 4))
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “fs”, 到文本 (高级表格.取数据 (y, 5)))
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “js”, 到文本 (高级表格.取数据 (y, 6)))
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “1”, 到文本 (高级表格.取数据 (y, 7)))
写配置项 (临时进程文件路径, 高级表格.取数据 (y, 0), “2”, 到文本 (高级表格.取数据 (y, 8)))
.子程序 _转IP选择框_被单击
IP编辑框.禁止 = 取反 (转IP选择框.选中)
.子程序 _转端口选择框_被单击
端口编辑框.禁止 = 取反 (转端口选择框.选中)
.子程序 取文本之间, 文本型
.参数 被搜寻的文本, 文本型
.参数 开始文本, 文本型
.参数 结束文本, 文本型
.局部变量 文本长度, 整数型
.局部变量 开始位置, 整数型
.局部变量 取出长度, 整数型
.局部变量 a
.局部变量 b
文本长度 = 取文本长度 (开始文本)
a = 寻找文本 (被搜寻的文本, 开始文本, , 真)
.如果真 (a ≠ -1)
  开始位置 = a + 文本长度
  b = 寻找文本 (被搜寻的文本, 结束文本, 开始位置, 真)
  .如果真 (b ≠ -1)
    取出长度 = b - 开始位置
    返回 (取文本中间 (被搜寻的文本, 开始位置, 取出长度))
  .如果真结束
.如果真结束
返回 (“”)

运行结果:

易语言制作网截抓包工具的代码

总结

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