请各位高人给指点一下.最好能给出一段主要的程序代码.
以IE为例吧,百分求代码演示一下如何修改IE传输的数据.

解决方案 »

  1.   

    难度比防火墙还要高点vbsniffer有个代码我还没看通
      

  2.   

    http://down.lihuasoft.com/45545/source/vb/net/vb_Sniff.rar
    一个vb嗅探器的代码你看看 吧他只提供了获取信息的功能没有提供修改
      

  3.   

    有关信息包的修改
    如果你是要发送的话其实只要使用winsock就可以完成
    下面是个模拟网站访问的实例Private Sub Command1_Click()
    Winsock1.RemoteHost = "www.crsky.com"Winsock1.RemotePort = 80Winsock1.ConnectEnd SubPrivate Function GetKey(HTML, Start, Last, i)
     On Error Resume Next
    filearray = Split(HTML, Start)
    filearray2 = Split(filearray(i), Last)
    GetKey = filearray2(0)
    End FunctionPrivate Sub Winsock1_Connect()
    Dim strCommand As StringDim strWebPage As StringstrWebPage = Text2.TextstrCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLfstrCommand = strCommand + "Accept: */*" + vbCrLfstrCommand = strCommand + "Accept: text/html" + vbCrLfstrCommand = strCommand + vbCrLfWinsock1.SendData strCommand
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim webData As StringWinsock1.GetData webData, vbStringhtml1 = webData
    Text1.Text = html1
    s = GetKey(html1, "Location: ", Chr(10), 1)
    Text3.Text = s
    Winsock1.Close
    End SubPrivate Sub Form_Load()
    Text2.Text = "http://www.crsky.com/view_down.asp?downd_id=8&downd=0&ID=157&down=yes"
    End Sub这个是我模拟ie访问网页获取一个使用redirctor并且指定refer的下载地址的真实地址的一个实例
    主要的过程就是构造ie访问的包
      

  4.   

    这是链路层的东西,需要驱动支持,只要有支持VB来做也是可以的,当然比C要麻烦,因为现成的代码基本上都是C写的。
      

  5.   

    api钩子 (send, recv, sendto, recvfrom)
    纯vb难度极大.
    api钩子简单点可用dll inject, 可是vb做不了dll。
    复杂点可以用CreateRemoteThread, VirtualAllocEx, WriteProcessMemory来做
    但是vb的代码无法直接copy到目标程序中因为msvbvm60.dll库没被对方加载(即便有导入表也对不上), 虽然如此, 但也不是完全没办法。
    你必须拷贝2个代码到目标进程中去。
    第一个代码拷贝后是被CreateRemoteThread来执行的, 很简单, LoadLibrary ws2_32.dll然后
    GetProcAddress得到一个东东,然后向这个东东写一条指令jmp 到你第2个拷贝函数那去
    当然是要计算的了第一个是e9,后面根据前面的“东东”以及VritualAllocEx第2个拷贝函数的时候可以计算出来的,  第2个拷贝过去的则可以读下esp+8来得到buf从而找到你要改的东东来修改, 查找的长度当然在esp+12里面拉(这是send的函数原形。。)
    vb做的解决这个问题的方法只能写字节数组呢。
    把这几个机器指令写成字节数组dim patch1(xxx) as byte: dim patch2(xxx)as byte
    怎么找这个可同其他语言, 就说来话长了。
    如果你想做到跟wpe一样的话
    可以用callback函数, 就是send的时候不是jump到了你的“东东”了吗, 你就把那个buf
    发送一个wm_copydata数据过来,并reset event,  你可以做结构定义比如这个copydata
    标记了len是多少,data是哪儿?  好了, 你的程序接着readprocessMemory后修改了在
    writeprocessmemory回去, 然后set下那个event,  那个发送的函数呢, 则
    waitforsingleobject这个event, 继续。
    完善下:
    1 这部分代码是通用的, 完全可以写成patch的形式, 从别的语言抠。
    2 你的程序当然可以做配置, 自动完成readprocessmemory和writeprocessmemory的事。
    几乎所有的修改网络风暴程序都这么实现。
      

  6.   

    http://community.csdn.net/Expert/topic/4883/4883617.xml?temp=.1168329
    http://blog.csdn.net/jyu1221
      

  7.   

    http://www.cn700.com/2004-11/13-231317.html
    这里有个人家写的,不过比较复杂