IVY DOM


 

人生就像一副复杂拼图
每个人总有属於自己的记忆碎片
优质美国空间-老薛主机|IVY DOM|Flowline|

联系我

RSS




六月 23, 2012

[网截]易语言网截源码

API:

.版本 2

.DLL命令 拷贝文本, , “kernel32.dll”, “RtlMoveMemory”
.参数 目标数据, 文本型, 传址, any
.参数 原数据, 整数型, , any
.参数 尺寸, 整数型

.DLL命令 GetModuleHandleA, 整数型
.参数 lpModuleName, 文本型

.DLL命令 子程序指针到整数, 整数型, “kernel32″, “lstrcpyn”
.参数 数据1, 子程序指针, , lpString1
.参数 数据2, 子程序指针, , lpString2
.参数 数据长度, 整数型, , iMaxLength

.DLL命令 取整数指针, 整数型, “kernel32″, “lstrcpyn”
.参数 数据1, 整数型, 传址, lpString1
.参数 数据2, 整数型, 传址, lpString2
.参数 数据长度, 整数型, , iMaxLength

.DLL命令 拷贝内存, 整数型, “kernel32″, “RtlMoveMemory”, , RtlMoveMemory
.参数 目标数据, 整数型, , lpvDest
.参数 源数据, 字节集, 传址, lpvSource
.参数 尺寸, 整数型, , cbCopy

.DLL命令 VirtualProtect, 逻辑型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址

.DLL命令 GetProcAddress, 整数型
.参数 hModule, 整数型
.参数 lpProcName, 文本型

.DLL命令 Send, 整数型, “ws2_32.dll”, “send”, , 发送数据(TCP,当这次发送数据未发送完时返回剩余字节数)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 整数型, , 欲发送的数据
.参数 buflen, 整数型, , 欲发送数据长度
.参数 flags, 整数型, , 0

网截程序集

.版本 2

.程序集 网截
.程序集变量 pFunAddress, 整数型
.程序集变量 OldProtect, 整数型
.程序集变量 NewData, 字节集
.程序集变量 OldData, 字节集
.程序集变量 HookInfo, 文本型

.子程序 接收网截, 整数型
.参数 s, 整数型, , 套接字描述符
.参数 buf, 整数型, , 欲发送的数据
.参数 buflen, 整数型, , 欲发送数据长度
.参数 flags, 整数型, , 0
.局部变量 返回值, 整数型
.局部变量 文本, 文本型

StopHook ()
返回值 = Send (s, buf, buflen, flags)
BeginHook ()
文本 = 取空白文本 (buflen)
拷贝文本 (文本, buf, buflen)
.如果真 (取文本长度 (文本) > 10)
_启动窗口.编辑框3.加入文本 (#换行符 + 文本)
.如果真结束
返回 (返回值)

.子程序 安装网截

InstallApiHook (“ws2_32.dll”, “send”, 子程序到整数 (&接收网截))  ‘ 只安装send,安装recv一样的方法
BeginHook ()

.子程序 卸载网截

UninstallApiHook ()

.子程序 BeginHook

.如果真 (pFunAddress ≠ 0)
拷贝内存 (pFunAddress, NewData, 8)
.如果真结束

.子程序 StopHook

.如果真 (pFunAddress ≠ 0)
拷贝内存 (pFunAddress, OldData, 8)
.如果真结束

.子程序 InstallApiHook, 逻辑型
.参数 lpLibFileName, 文本型
.参数 lpProcName, 文本型
.参数 lpfn, 整数型
.局部变量 lpfn指针, 整数型

.如果真 (NewData ≠ {  })
返回 (假)
.如果真结束
pFunAddress = GetProcAddress (GetModuleHandleA (lpLibFileName), lpProcName)  ‘ 获取API函数地址
.如果真 (pFunAddress = 0)
返回 (假)
.如果真结束
VirtualProtect (pFunAddress, 8, 64, OldProtect)  ‘ 把内存块设置为可读写
lpfn指针 = 取整数指针 (lpfn, lpfn, 0)
NewData = { 184 } + 指针到字节集 (lpfn指针, 4) + { 255, 224 }  ‘ 生成新机器码数据
OldData = 指针到字节集 (pFunAddress, 8)  ‘ 保存旧机器码数据
HookInfo = lpLibFileName + “|” + lpProcName
返回 (真)

.子程序 子程序到整数, 整数型
.参数 子程序参数, 子程序指针

返回 (子程序指针到整数 (子程序参数, 子程序参数, 0))

.子程序 UninstallApiHook
.局部变量 temp, 整数型

.如果真 (pFunAddress ≠ 0)
拷贝内存 (pFunAddress, OldData, 8)
VirtualProtect (pFunAddress, 8, OldProtect, temp)
.如果真结束
连续赋值 (0, pFunAddress, OldProtect)
连续赋值 ({  }, NewData, OldData)
连续赋值 (“”, HookInfo)

.子程序 GetApiHookInfo, 文本型

返回 (HookInfo)

主窗口程序集

.版本 2
.支持库 HtmlView

.程序集 窗口程序集1

.子程序 __启动窗口_创建完毕

安装网截 ()

.子程序 _按钮6_被单击

安装网截 ()

.子程序 _按钮7_被单击

卸载网截 ()

.子程序 _按钮3_被单击

超文本浏览框1.执行命令 (#后退)

.子程序 _按钮4_被单击

超文本浏览框1.执行命令 (#前进)

.子程序 _按钮5_被单击

超文本浏览框1.执行命令 (#刷新)

.子程序 __启动窗口_将被销毁

卸载网截 ()

.子程序 _按钮2_被单击
.局部变量 地址, 文本型

.如果 (寻找文本 (删首尾空 (编辑框1.内容), “http://”, , 假) = -1)
地址 = “http://” + 删首尾空 (编辑框1.内容)
.否则
地址 = 删首尾空 (编辑框1.内容)
.如果结束
超文本浏览框1.地址 = 地址

相关文章

返回
  1. 端午快乐

    • 无心
    • 一月 18th, 2014

    能给个完整版本的么

  1. 暂无 Trackback

You must be logged in to post a comment.