用madCodeHook去Hook浏览器,取回的数据包好多乱码 本帖最后由 kendychong 于 2009-08-18 09:53:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 uses SysUtils, classes, windows, madCodeHook, winsock2;var oldWSARecv: function(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD; var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED; lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall; function SetHook: Boolean;implementationprocedure myRecv(buf: PChar; len: integer);var ss: string; //PacketDispose: TPacketDispose;begin //PacketDispose := TPacketDispose.Create(buf, len); // 通过其它线程输出以免阻塞 ss := strPas(buf); Form1.Memo1.Lines.Add(IntToStr(lpNumberOfBytesRecvd) + '------------- >' + #13#10 + ss);end;function myWSARecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD; var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED; lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;begin myWSARecv := oldWSARecv(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd, lpFlags, lpOverlapped, lpCompletionROUTINE); myRecv(lpBuffers.buf, lpNumberOfBytesRecvd); end;function SetHook: Boolean;begin // 由于我是Hook程序本身(程序里面有TWebBrowser控件),所以没有做DLL HookAPI('ws2_32.dll', 'WSARecv', @myWSARecv, @oldWSARecv);end; 读内存字节 这个函数怎么写 在线等 怎么样改变取记录的顺序? 一个字符串的问题??????十万火急 请问如何将很多文件放到一个exe当中,还可以释放出来运行? Access的口令 古有卖炭翁,今有卖葱妇(宝马事件) 怎样隐藏ActiveX 全局临时表的使用问题 有关读取文本的问题。 如何使用Windows的Cabinet.dll库? read error 64:用dephi开发的程序,socket(采用多线程) 还是fastreport问题
uses
SysUtils, classes, windows, madCodeHook, winsock2;var
oldWSARecv: function(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;
var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall; function SetHook: Boolean;implementationprocedure myRecv(buf: PChar; len: integer);
var
ss: string;
//PacketDispose: TPacketDispose;
begin
//PacketDispose := TPacketDispose.Create(buf, len); // 通过其它线程输出以免阻塞 ss := strPas(buf);
Form1.Memo1.Lines.Add(IntToStr(lpNumberOfBytesRecvd) + '------------- >' + #13#10 + ss);
end;function myWSARecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;
var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;
begin
myWSARecv := oldWSARecv(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd, lpFlags, lpOverlapped, lpCompletionROUTINE);
myRecv(lpBuffers.buf, lpNumberOfBytesRecvd);
end;function SetHook: Boolean;
begin // 由于我是Hook程序本身(程序里面有TWebBrowser控件),所以没有做DLL
HookAPI('ws2_32.dll', 'WSARecv', @myWSARecv, @oldWSARecv);
end;