首页
社区
课程
招聘
[求助]对付vb.net写的网络程序应该hook哪个send函数
发表于: 2012-12-13 17:53 5884

[求助]对付vb.net写的网络程序应该hook哪个send函数

2012-12-13 17:53
5884
一个vb.net写的服务端,我想HOOK它的发送函数,但HOOK它的send和sendto没有用。
而它的客户端是用vb写的,我用自己的HOOK代码成功了,说明问题出在,我没有找到服务端的发送函数上。估计服务端根本没用到Winsock2来编写,小弟对.net上的网络编程不熟悉,特来请教。

我用Reflector查看了一下服务端用到了代码,发现它引用了 system.net.sockets.
而且我发现它的一个发送代码是用到了  NetworkStream,用数据流的方式来发送。

请教各位大牛,对于这样的.net程序,我要怎么样hook它的发送函数。

附上其中的一个内容
private void SendFile(FileInfo fi, ref NetworkStream ns)
{
    BinaryWriter writer = new BinaryWriter(ns);
    try
    {
        FileStream stream = fi.OpenRead();
        try
        {
            int num2;
            long length = fi.Length;
            byte[] buffer = new byte[0x2000];
            while ((num2 = stream.Read(buffer, 0, 0x2000)) != 0)
            {
                writer.Write(buffer, 0, num2);
            }
        }
        finally
        {
            stream.Close();
        }
    }
    catch
    {
    }
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 53
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
VB。NET应该调用的也是底层DLL,有两个,一个是winsock2.dll,还有一个是ws2_32.dll
2013-2-21 11:48
0
雪    币: 214
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我hook过一个C#的,用的 recv   send 工作正常,VB。NET应该也一样
2013-2-22 15:31
0
雪    币: 66
活跃值: (203)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
// System.Net.UnsafeNclNativeMethods.OSSOCK
[DllImport("ws2_32.dll", SetLastError = true)]
internal unsafe static extern int send([In] IntPtr socketHandle, [In] byte* pinnedBuffer, [In] int len, [In] SocketFlags socketFlags);

// System.Net.UnsafeNclNativeMethods.OSSOCK
[DllImport("ws2_32.dll", SetLastError = true)]
internal unsafe static extern int recv([In] IntPtr socketHandle, [In] byte* pinnedBuffer, [In] int len, [In] SocketFlags socketFlags);


C# 默认使用的是 ws2_32.dll 中的 send, recv
我这里看的是 2.0 的 System.dll 的代码
.Net 里 C#,VB.net 编译成程序是一样的,都是 IL 字节码
2013-2-24 20:51
0
游客
登录 | 注册 方可回帖
返回
//