C# NetCut 抓包、GET/POST(Flash/WebBrowser)

那几天突然在CodeProject上看见一个项目(我们中国人发的瞬间感觉幸福满满的)

不过NetCut.dll的内部代码并不依靠Jerry.Wang的开源项目上的代码

我们两者内部代码都有建立"请求映射表"先看看我给出一个示例程序的简易效果

NetCutX / 易语言

这是我在精易论坛上近期发表的一篇帖子 易语言那个"易模块"主要应用于提供对外部进程的一个HTTP请求的控制 我在帖子

上面已经提到“Inject Dll To RemoteProcess”注入DLL模块到外部进程在"DllMain"中调用“易模块NetCutX”中的函数安装上"

网截"就可以了 不过在我们C#中可无法享受这种待遇 虽然我也是很惆怅的。

外面很多抓包工具代码会在高版本系统中失效的问题 你可以认为我的很低级反正我也很菜啦 ~

NetCut 应用示例代码:

NetCutclass监控所有的HTTP/FTP等网络请求。

public void Install(); // 安装网截(安装网截后发生的请求会被映射)

public void Resume(); // 恢复被挂起的网截

public void Suspend(); // 挂起网截(挂起的时候不会有任何请求被映射)

public void Uninstall(); // 卸载网截(卸载后不会再有任何请求被映射)

public NetCut.NetTabCollection Items { get; } // 获取网络请求映射表集合

public event NetCut.NetCutRequestComplete RequestComplete // 回调函数(事件) 网络请求完成

起初的时候觉得应该把下载的数据包一起拦截后来我发现很消耗内存所以直接过滤掉 而且是非法

NetService enum 用于枚举服务协议类型

FTP

HTTP

Gopher

NetTab class 网络请求映射信息

public string Accept { get; set; } // 获取或设置网络访问链接类型

public System.IntPtr ConnectHandle { get; set; } // 获取或设置网络连接句柄

public System.IntPtr RequestHandle { get; set; } // 获取或设置网络请求句柄

public string Host { get; set; } // 获取或设置请求的网络主机(服务器)

public string Method { get; set; } // 获取或设置请求的网络方法 如:Verb(GET/POST)

public string Username { get; set; } // 获取或设置代理用户名

public string Password { get; set; } // 获取或设置代理密码

public short Port { get; set; } // 获取或设置访问端口 如:(80, 443)

public string Version { get; set; } // 获取或设置协议版本 如:(HTTP/1.0)

public string Url { get; set; } // 获取或设置请求的网络文件地址 如: (/index.aspx)

public System.Net.HttpStatusCode StatusCode { get; set; } // 获取或设置返回的网络状态代码

public string Status { get; set; } // 获取或设置返回的网络代码对应字符串

public NetCut.NetService Service { get; set; } // 获取或设置服务协议类型

public bool Send { get; set; } // 获取或设置网络请求发送到网络服务器是否被响应

public System.Net.WebHeaderCollection ResponseHeaders { get; set; } // 获取或设置响应标头容器

public System.Net.WebHeaderCollection RequestHeaders { get; set; } // 获取或设置请求标头容器

public byte[] RequestData { get; set; } // 获取或设置网络请求的数据包

public bool CloseHandle(); // 关闭句柄成功返回真否则返回假 如果为真该网络请求会直接失效

public string QueryInfo(System.IntPtr Handle, int Query, System.Text.StringBuilder Buffer);// 查询网络响应信息

public static string HttpQueryInfo(System.IntPtr Handle, int Query, StringBuilder Buffer) // 查询网络响应信息

注意:NetCut是在.Net 2.0(X86)上设计的,,如果你采用X64开发无法使用由NetCut提供的命令

修订版:

修正已知部分BUG 增强数据抓取的准备

减少无意义的错误抛出 增强内存稳定性

NetCut.dll

示例代码:NetCut: NetWatcher(Flash/WebBrowser)抓包



版权声明:本文为博主原创文章,未经博主允许不得转载。

关于爱情的句子:情不知所起,一往而情深。

C# NetCut 抓包、GET/POST(Flash/WebBrowser)

相关文章:

你感兴趣的文章:

标签云: