有谁知道原始套接字是什么?

zx4219770 2014-06-14 04:33:44
最近在想关于ARP数据包的问题,这种封包是一种特殊的数据包,不是用send或sendto发送的那种,突然想到书上提到除了流套接字和数据报套接字外还有一个叫原始套接字的东西,百度了一下貌似是个很强大的东西,但是不知道怎么用,有没有会的大神解答一下原始套接字是怎样一种套接字,要怎么使用,跟常见的流套接字和数据报套接字有什么区别?
...全文
471 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dibotiger 2014-06-17
  • 打赏
  • 举报
回复
不排除有未知的技术, 但可以确认的是Windows下的RAW SOCKET是没法直接操作ARP报文的. 搭个环境, 加点ARK软件, 检测下这个软件运行时: 1. 是否释放出SYS安装. 2. 是否有HOOK某些API的行为.
dibotiger 2014-06-16
  • 打赏
  • 举报
回复
引用 4 楼 zx4219770 的回复:
[quote=引用 3 楼 dibotiger 的回复:] LINUX下的RAW SOCKET可以操作到二层, ARP/IP报文都可以捕获和自己构造. Windows从2000版本开始支持RAW SOCKET, 但从一开始只支持三层即IP层的报文构造和捕获. 在诸多蠕虫的功劳下, XP SP2后, 微软基本废掉了客户端版本的Windows里RAW SOCKET的构包功能. 而Server版本的Windows系统还保留了大部分的RAW SOCKET功能(好像也加了部分限制). 所以在Windows下, 发送ARP request报文, 你可以直接调用SendARP API来实现. 至于要自己构造ARP其他类型报文, 就别想了, Windows从开始支持RAW SOCKET那刻开始就没有打算这么干.
那要在win7下实现ARP欺骗要怎样实现呢?我在网上下到某个利用ARP欺骗捕获数据包的软件查了一下它的导入表貌似只是使用几个简单的函数,其中就有SendARP和send,但是SendARP只能发送正常的ARP封包啊,按理说第二个参数应该是填入自己的IP,但是只能填NULL,一旦填入IP则函数执行错误,这个函数根本就不能伪造ARP封包嘛,那些软件是怎么做到的?[/quote] 两种: 1. 第三方驱动, 比如地球人都知道的WINPCAP. 2. 自己挂NDIS的驱动实现. 我估计你遇到的就是这个. WINPCAP无非也是如此. 比如: http://www.pudn.com/downloads164/sourcecode/hack/sniffer/detail747255.html
zx4219770 2014-06-16
  • 打赏
  • 举报
回复
引用 6 楼 dibotiger 的回复:
[quote=引用 4 楼 zx4219770 的回复:]
[quote=引用 3 楼 dibotiger 的回复:]
LINUX下的RAW SOCKET可以操作到二层, ARP/IP报文都可以捕获和自己构造.
Windows从2000版本开始支持RAW SOCKET, 但从一开始只支持三层即IP层的报文构造和捕获.

在诸多蠕虫的功劳下, XP SP2后, 微软基本废掉了客户端版本的Windows里RAW SOCKET的构包功能.
而Server版本的Windows系统还保留了大部分的RAW SOCKET功能(好像也加了部分限制).

所以在Windows下, 发送ARP request报文, 你可以直接调用SendARP API来实现.
至于要自己构造ARP其他类型报文, 就别想了, Windows从开始支持RAW SOCKET那刻开始就没有打算这么干.

那要在win7下实现ARP欺骗要怎样实现呢?我在网上下到某个利用ARP欺骗捕获数据包的软件查了一下它的导入表貌似只是使用几个简单的函数,其中就有SendARP和send,但是SendARP只能发送正常的ARP封包啊,按理说第二个参数应该是填入自己的IP,但是只能填NULL,一旦填入IP则函数执行错误,这个函数根本就不能伪造ARP封包嘛,那些软件是怎么做到的?[/quote]


两种:

1. 第三方驱动, 比如地球人都知道的WINPCAP.

2. 自己挂NDIS的驱动实现. 我估计你遇到的就是这个. WINPCAP无非也是如此.

比如:
http://www.pudn.com/downloads164/sourcecode/hack/sniffer/detail747255.html

[/quote]



zx4219770 2014-06-16
  • 打赏
  • 举报
回复
引用 6 楼 dibotiger 的回复:
[quote=引用 4 楼 zx4219770 的回复:] [quote=引用 3 楼 dibotiger 的回复:] LINUX下的RAW SOCKET可以操作到二层, ARP/IP报文都可以捕获和自己构造. Windows从2000版本开始支持RAW SOCKET, 但从一开始只支持三层即IP层的报文构造和捕获. 在诸多蠕虫的功劳下, XP SP2后, 微软基本废掉了客户端版本的Windows里RAW SOCKET的构包功能. 而Server版本的Windows系统还保留了大部分的RAW SOCKET功能(好像也加了部分限制). 所以在Windows下, 发送ARP request报文, 你可以直接调用SendARP API来实现. 至于要自己构造ARP其他类型报文, 就别想了, Windows从开始支持RAW SOCKET那刻开始就没有打算这么干.
那要在win7下实现ARP欺骗要怎样实现呢?我在网上下到某个利用ARP欺骗捕获数据包的软件查了一下它的导入表貌似只是使用几个简单的函数,其中就有SendARP和send,但是SendARP只能发送正常的ARP封包啊,按理说第二个参数应该是填入自己的IP,但是只能填NULL,一旦填入IP则函数执行错误,这个函数根本就不能伪造ARP封包嘛,那些软件是怎么做到的?[/quote] 两种: 1. 第三方驱动, 比如地球人都知道的WINPCAP. 2. 自己挂NDIS的驱动实现. 我估计你遇到的就是这个. WINPCAP无非也是如此. 比如: http://www.pudn.com/downloads164/sourcecode/hack/sniffer/detail747255.html [/quote] 我觉得该软件并没有使用内核的方式实现,至于使用类似于WINPCAP这样的第三方模块那么移植并没有那么好,因为不是所有的电脑上都安装有这些模块供程序调用的,而且这个软件就一个单一的可执行文件,并没有附带什么链接库或者.sys文件,但是这个软件却可以仅仅复制一个.exe文件到别的系统就能完美运行,该程序有两个模式,第一个是普通模式,第二种是你说的使用第三方驱动,下面附程序的有关截图
zx4219770 2014-06-14
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
http://www.360doc.com/content/10/1015/18/2935312_61277341.shtml
这个我看过,不是很懂他在说什么
worldy 2014-06-14
  • 打赏
  • 举报
回复
http://www.360doc.com/content/10/1015/18/2935312_61277341.shtml
zx4219770 2014-06-14
  • 打赏
  • 举报
回复
引用 3 楼 dibotiger 的回复:
LINUX下的RAW SOCKET可以操作到二层, ARP/IP报文都可以捕获和自己构造. Windows从2000版本开始支持RAW SOCKET, 但从一开始只支持三层即IP层的报文构造和捕获. 在诸多蠕虫的功劳下, XP SP2后, 微软基本废掉了客户端版本的Windows里RAW SOCKET的构包功能. 而Server版本的Windows系统还保留了大部分的RAW SOCKET功能(好像也加了部分限制). 所以在Windows下, 发送ARP request报文, 你可以直接调用SendARP API来实现. 至于要自己构造ARP其他类型报文, 就别想了, Windows从开始支持RAW SOCKET那刻开始就没有打算这么干.
那要在win7下实现ARP欺骗要怎样实现呢?我在网上下到某个利用ARP欺骗捕获数据包的软件查了一下它的导入表貌似只是使用几个简单的函数,其中就有SendARP和send,但是SendARP只能发送正常的ARP封包啊,按理说第二个参数应该是填入自己的IP,但是只能填NULL,一旦填入IP则函数执行错误,这个函数根本就不能伪造ARP封包嘛,那些软件是怎么做到的?
dibotiger 2014-06-14
  • 打赏
  • 举报
回复
LINUX下的RAW SOCKET可以操作到二层, ARP/IP报文都可以捕获和自己构造. Windows从2000版本开始支持RAW SOCKET, 但从一开始只支持三层即IP层的报文构造和捕获. 在诸多蠕虫的功劳下, XP SP2后, 微软基本废掉了客户端版本的Windows里RAW SOCKET的构包功能. 而Server版本的Windows系统还保留了大部分的RAW SOCKET功能(好像也加了部分限制). 所以在Windows下, 发送ARP request报文, 你可以直接调用SendARP API来实现. 至于要自己构造ARP其他类型报文, 就别想了, Windows从开始支持RAW SOCKET那刻开始就没有打算这么干.

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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