请各位高人给指点一下.最好能给出一段主要的程序代码.
以IE为例吧,百分求代码演示一下如何修改IE传输的数据.
以IE为例吧,百分求代码演示一下如何修改IE传输的数据.
解决方案 »
- 请问如何使用 VB 启动外部程序
- VB如何获取QQ登陆版本?在帮忙写个(急)
- 关于文本控件操作的的问题
- 【散分】本人终于脱离了上半年的单身生活.在此向各位朋友表示感谢~~~散分的同时,也郑重地宣布:
- 这个有比较快的算法吗?我现在弄的太慢了呀??
- 连接oracle数据库出错,请大家给看看。
- 如何让自制的控件也有About窗口
- 利用Winsocket控件实现C/S结构,主要实现发送 接收Excel文件的功能?
- 用VB发送消息
- 如何使用ADO操作表 and 如何用datagrid绑定command对象返回的记录集
- C/S系统,ADO连接数据库,请问用什么方法可以使得某个用户在读/插入/修改/删除某个表中记录时锁定当前表,从而使其它客户端上的用户只能
- 在VB6中,如何快速找到一连串调用的函数和过程(指自己编写的函数和过程),以便修改代码。因为用“查找”方法太不方便。
一个vb嗅探器的代码你看看 吧他只提供了获取信息的功能没有提供修改
如果你是要发送的话其实只要使用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访问的包
纯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的事。
几乎所有的修改网络风暴程序都这么实现。
http://blog.csdn.net/jyu1221
这里有个人家写的,不过比较复杂