这篇文章主要为大家展示了“易语言如何制作网截抓包工具”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“易语言如何制作网截抓包工具”这篇文章吧。
常量数据表
.版本 2 .常量 编码常量, "<文本长度: 10797>", , 名称:编码_GB2312 英文名称:Encoding_GB2312 类型:文本型 值:“GB2312” 列举各种编码类型
全局变量表
.版本 2 .全局变量 系统配置路径, 文本型
网截抓包工具
.版本 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 - 开始位置 返回 (取文本中间 (被搜寻的文本, 开始位置, 取出长度)) .如果真结束 .如果真结束 返回 (“”)
运行结果:
以上是“易语言如何制作网截抓包工具”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。