在IP抓包时,我如何知道抓到的IP包是由系统哪个程序发出或接收的呢?

KingOf007 2003-06-28 01:28:33
如题,谢谢大家
...全文
1331 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingOf007 2003-07-03
  • 打赏
  • 举报
回复
呼。。。没人来,结了
KingOf007 2003-07-02
  • 打赏
  • 举报
回复
那就再改一下:
WPE是如何对某个进程抓包的:)再一天,谢谢
如大家有好的思路,分是没有问题的
ybluo 2003-07-01
  • 打赏
  • 举报
回复
用Native api?还是 DDK?要写驱动?
NowCan 2003-07-01
  • 打赏
  • 举报
回复
驱动到用不着,不过没想到别的办法。
其实还有一个问题,无端口的协议(如ICMP)能不能知道接收进程是谁?
KingOf007 2003-06-30
  • 打赏
  • 举报
回复
??这么麻烦.....反着问是不是简单点:
我如何知道系统中每个程序都打开了哪些端口来访问网络?
KingOf007 2003-06-30
  • 打赏
  • 举报
回复
有没有别的办法??等一天
mhappy 2003-06-29
  • 打赏
  • 举报
回复
很麻烦的, 参考UNDOCUMENTED NT
warton 2003-06-29
  • 打赏
  • 举报
回复
以前看过SHOTGUN写的一篇文章不错!
转:

WINDOWS端口到进程的实现 (阅览 2746 次)

WINDOWS端口到进程的实现

作者: flashsky


   端口到进程的检查是对进程状态的一个检查,目前国内XICI的SHOTGUN开发了一个工具PPORT,但是其程序却无法列出系统进程如8号进程开启的端口。国外的工具如FPORT可以列出,但其缺乏源代码和说明,下面是根据FPORT反汇编出来的代码获得的WINDOWS端口到进程实现的过程:


1. 首先使用ZwOpenSection打开/device/physcalmemory句柄


2. 使用MapViewOfFile将/device/physcalmemory影射到自己进程的空间


3. 提升自己的权限到LOCALSYSTEM并调整当前进程的权限


4. 使用ZWOPENFILE打开/device/tcp和/device/udp设备


5. 使用NtQuerySystemInformation获得当前所有句柄的列表


6. 检查所有句柄的列表中对应当前打开的/device/tcp, /device/tcp设备的句柄


7. 将当前进程打开的TCP设备对应的句柄的dwKeObject进行换算运算获得其对应/device/physcalimemory中的位置,算法如下


           readset1 = (tcpdnum->dwKeObject>>0x16);


           readset1 = *((LPDWORD)((DWORD)pmaddr + 4*readset1));


           readset1=(readset1&0xfffff000)+(tcpdnum->dwKeObject&0x003ff000);


8. 在根据获得的位置将对应的物理内存从新影射到本地进程空间


9. 从物理内存空间中读出对应TCP设备的信息,偏移地址是tcp设备句柄的dwKeObject后几位


10.       重复以上过程获得UDP设备的设备信息


11.       创建一个event并和一个overlapped挂接


12.       循环依次打开句柄表,检查句柄是否为文件句柄,如果是,按以上影射方法获得对应句柄的物理空间的描述信息


13.       比较句柄物理设备信息是否和TCP的一致,主要是比较头4个字节和0x10为1或2,0x11-0x13的字节为0,如果一致,就说明是一个TCP端口


14.       复制此句柄到本地,对于0x10为2的设备,说明此设备需要先进行申请,对该句柄发出一个设备请求查询请求,对于0x10为1的设备,跳过此步到15


DeviceIoControl(myhand,0x210012,&in,0x18,&out,0x38,&p,&la);in中包含一个请求查询的申请代码,如果成功,进行15


15.       对该句柄发出一个设备查询请求


DeviceIoControl(myhand,0x210012,&in1,0x18,&out1,0x30,&p,&la);如果成功,起输出的设备状态中包含了此设备的端口号码。


16.       再按以上方法查询UDP端口


17.       剩下的就是进程的一些信息了,这些大家都很熟悉了,就不多说了


18.       下面是例子程序联接 http://www.shopsky.com/aa1.exe





连着5天的每天工作到深夜2点看fport的汇编代码,先为了搞出zwopenfile(msdn和SDK都没有)的原形就化了好多时间,谁知道好不容易根据汇编搞出了,发现ddk上早有了,真是气愤。还是感谢shotgun的程序,是他的程序让我对这个感兴趣,呵呵。如果需要源代码的,可以给我发邮件。


欢迎大家提出意见和想法。
pp616 2003-06-29
  • 打赏
  • 举报
回复
先端口关联程序,再以端口为标志找。这样就好了。
端口关联程序你可以在以前的帖子里搜索一下。
yydy 2003-06-28
  • 打赏
  • 举报
回复
不懂,学习

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧