网络上正在传输的数据,拦截后能否看的到是什么数据? (100分)

我有一份IPMAN,而且我用C++Builder实现了,不过怎么用Delphi实现了,我却不会。
我的Email是dai123@kali.com.cn
 
我要﹐謝謝!!!!
hehe1chen@hotmail.com
 
大虾们给我一份吧:xujiancai@21cn.com
 
帮忙,来一份
yongjiepan@sian.com
 
这么多人要??算了我还是不说为好^_^
 
能志哥,快给我发来吧,zhfhq@163.net
 
能志哥,快给我发来吧,yuxinonline@china.com
 
我也要
tczxm@263.net
 
能志哥,行个好,也给我发一份吧
alei@zjgl.net.cn
 
我也要!
liuyj@zhonghuan.com.cn
 
能志哥,行个好,也给我发一份吧
alei@zjgl.net.cn
 
那位大哥有delphi或VC 的ipman麻烦给我来一份。
先谢谢了!
 
让我看看!
BoyDaiHua@china.com
 
能志哥,我也要lzy291@263.net
 
这是我的毕业设计
等我做完了
给大家每人发一份
七月份再发
 
给我一份,谢了,
hncslsy@sohu.com


 
调用VPacket.VxD同步事件最简化例子

unit Unit2;

interface

uses Windows;

const
FILE_DEVICE_PROTOCOL = $8000;
METHOD_BUFFERED = 0;
FILE_ANY_ACCESS = 0;
IOCTL_PROTOCOL_QUERY_OID = 0;
IOCTL_PROTOCOL_SET_OID = 1;
IOCTL_PROTOCOL_STATISTICS = 2;
IOCTL_PROTOCOL_RESET = 3;
IOCTL_PROTOCOL_READ = 4;
IOCTL_PROTOCOL_WRITE = 5;
IOCTL_PROTOCOL_MACNAME = 6;
IOCTL_PROTOCOL_BIND = 7;
IOCTL_PROTOCOL_UNBIND = 8;

type
TVPacket = class(TObject)
private
public
hVxd: THandle;
ErrorCode: Integer;
constructor Create;
destructor Destroy; override;
function CTL_CODE(DeviceType, Func, Meth, Access: integer): DWORD;
function Bind(inBuffer: PChar): DWORD;
function GetPacket(var inBuffer: Pointer; cbIn: DWORD): DWORD;
end;

implementation

function TVPacket.CTL_CODE(DeviceType, Func, Meth, Access: Integer): DWORD;
begin
Result := (DeviceType shl 16) or (Access shl 14) or (Func shl 2) or (Meth);
end;

function TVPacket.Bind(inBuffer: PChar): DWORD;
var
cbin: Integer;
res: Boolean;
begin
cbIn := 5;
res := DeviceIoControl(hVxd,
CTL_CODE(FILE_DEVICE_PROTOCOL, IOCTL_PROTOCOL_BIND, METHOD_BUFFERED, FILE_ANY_ACCESS),
inBuffer,
cbIn,
inBuffer,
cbIn,
Result,
nil);
if not res then
ErrorCode := GetLastError;
end;

constructor TVPacket.Create;
begin
hVxD := CreateFile('//./VPACKET.VXD',
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, // 异步要加 or FILE_FLAG_OVERLAPPED
0);

if hVxD = INVALID_HANDLE_VALUE then
ErrorCode := GetLastError;
end;

destructor TVPacket.Destroy;
begin
inherited;
if hVxD <> INVALID_HANDLE_VALUE then
CloseHandle(hVxd);
hVxD := INVALID_HANDLE_VALUE;
end;

function TVPacket.GetPacket(var inBuffer: Pointer; cbIn: DWORD): DWORD;
var
res: Boolean;
cbRet: DWORD;
begin
Result := 0;
res := DeviceIoControl(hVxd,
CTL_CODE(FILE_DEVICE_PROTOCOL, IOCTL_PROTOCOL_READ , METHOD_BUFFERED, FILE_ANY_ACCESS),
inBuffer,
cbIn,
inBuffer,
cbIn,
Result,
nil);
if not res then
ErrorCode := GetLastError;
end;

end.
 
给我一份,谢了,
wjainn@sohu.com
 
可以给我一份吗?先谢啦!
dabaosod@8848.net
 
能志哥,快给我发来吧,我都想死它啦!
hoer1999@263.net
 
顶部