모두와의 호환성 문제. 나는 WinPcap에 패킷을 수정하는 라이브러리를 수정하고있다. 내 상사는 NDIS 4에서 NDIS 6으로 WinPcap의 NDIS 버전을 전송하기를 원합니다. 호환성 요구 사항은 Windows XP/Vista/7/8 (32 비트 및 64 비트)입니다. NDIS 6.3의 최신 버전이 6.3이라는 것을 알았지 만, NDIS 6.3이 XP를 더 이상 지원하지 않는다는 사실이 사실입니까? 또한 WinPcap 웹 사이트에서 현재 WinPcap 4.1.3이 이미 Windows XP/2003/Vista/2008/Win7/2008R2/Win8 (x86 및 x64)을 지원하고 있음을 알았습니다. 맞아? 가장 넓은 호환성을 유지하기 위해 어떤 버전의 NDIS를 업데이트해야합니까?NDIS 버전과 Windows 버전
답변
NDIS 6.3이 XP를 더 이상 지원하지 않는 것 같습니다. 사실입니까?
"Windows XP에서 NDIS 6.3을 사용하는 드라이버가됩니까?"라는 대답은 "아니오"이며 항상 "아니오"입니다. "더 이상"의 경우가 아닙니다.
주어진 버전의 Windows는 특정 버전의 NDIS를 지원합니다 (다른 방법은 아닙니다). "NT 5.x", 즉 Windows 2000, Windows XP 및 해당 서버는 NDIS 5를 지원합니다. NDIS 6 드라이버 (심지어 NDIS 6.0)는 해당 버전의 Windows에서 작동하지 않습니다. NDIS 6 드라이버에는 "NT 6.x"즉 Windows Vista 이상이 필요합니다.
Microsoft's MSDN documentation on network drivers을 보면 "Windows Vista로 시작하는 네트워크 드라이버"섹션과 "Windows Vista 이전의 네트워크 드라이버"섹션이 있다는 것을 알 수 있습니다. 첫 번째 섹션은 NDIS 6 용이고 두 번째 섹션은 NDIS 5 용입니다 (NDIS 4는 더 이상 문서화하는 데 너무 오래 걸린 것으로 여겨지며 NDIS 4와 NDIS 5의 차이점은 무엇인지 모릅니다.
- 가의 버전을 만들 : 당신은 WinPcap (예를 들어, 와이파이 장치에 모니터 모드를 지원하는)에 NDIS (6)을 지원 싶은지 아닌지은 WinPcap는 여전히, 4)
귀하의 옵션 NDIS 지원 Windows 2000 또는 Windows XP 또는 해당 서버 버전을 지원하지 않으며 NDIS 6 만 지원하는 WinPcap;
- "NT 5"(W2K/WXP 및 해당 서버 버전) 및 "NT 6"(Vista, 7, 8 및 해당 서버 버전) 용 WinPcap 드라이버 및 packet.dll 라이브러리의 별도 버전을 만들어 두 버전 (예 : "NT 5"버전을 사용하여 인터페이스를 모니터 모드로 전환하려는 시도에 대한 실패 표시를 반환하는) packet.dll의 wpcap.dll (즉, WinPcap의 "libpcap"부분) 이 API를 사용하여 설치 프로그램이 어느 것을 설치할 지 파악하게하십시오. 즉, "NT 5"시스템을 "NT 6"으로 업그레이드하는 경우 WinPcap을 다시 설치하여 NDIS 6 기능을 설치해야합니다 (예 : Windows XP를 Windows Vista, 7 또는 8) 드라이버가로드 될 때 올바른 드라이버 코드가 실행될 수 있습니다. 당신의 목표는 NDIS 장치에 모니터 모드를 지원하는 경우
주, 그런데, 즉, 당신은 있습니다 강력하게 익스플로러, 이미 모니터 모드의 libpcap에 존재하는 API를 구현하는 것이 좋습니다 pcap_create()
/pcap_activate()
디바이스 열기를위한 API, 모니터 모드를 요청하는 API 인 pcap_set_rfmon()
및 모니터 모드를 켤 수 있는지 여부를 확인하기위한 pcap_can_set_rfmon()
API가 있습니다. 이러한 API는 tcpdump 및 Wireshark와 같은 프로그램이 기대하는 API입니다.
pcap_create()
/pcap_activate()
API는 현재 원격 패킷 캡처를 처리하지 않으므로 해당 기능을 제거하거나 나를 (또는 누군가) 해당 API에 추가 할 때까지 기다려야합니다.
NDIS 6에는 모니터 모드를 지원하는 API가 있지만 모든 Wi-Fi 장치에는 NDIS 6 드라이버가있는 것은 아니지만 NDIS 6 드라이버를 가진 모든 드라이버가 Native를 지원하는 NDIS 6 드라이버를 가지고있는 것은 아닙니다 Wi-Fi (따라서 모니터 모드를 지원하는 NDIS 6 드라이버가 없음) 을 수행하는 경우에도에는 Native 802.11을 지원하는 NDIS 6 드라이버가 있어야하며 Native 802.11 물건을 만드는 버그가없는 NDIS 6 드라이버가 반드시 필요하지는 않습니다 잘 작동합니다.
또한 모니터 모드에서 기본 802.11 드라이버가 제공하는 "라디오 정보"헤더가 pcap 및 pcap-ng에서 지원하는 기존의 "라디오 정보"헤더와 다르다는 점에 유의하십시오. [email protected]의 "라디오 정보"헤더에 대해 새 LINKTYPE_
/DLT_
값을 요청해야합니다. Wireshark는 Microsoft Network Monitor에서 802.11 캡처를 읽을 수 있으므로 이미 해부학을 가지고 있습니다. tcpdump가 필요합니다.
(PPP 장치에 대한 지원 추가 또는 공급 업체의 장치 설명을 얻기위한 코드 수정과 같은 다른 이유로이 작업을 수행하는 경우 NDIS 6 드라이버를 경량 필터 드라이버 또는 이와 비슷한 것으로 만들어야 할 수도 있습니다.
가이 (Guy)의 말에 덧붙여서 ... XP는 NDIS 6를 지원할 수 없으며 결코 지원하지 않았으므로, XP 호환성을 갖춘 NDIS 6 드라이버를 만드는 것은 불가능한 요구 사항입니다. 요구 사항을 변경해야합니다. 가이의 옵션 중 하나가 좋음 (XP 지원 중단 또는 병렬 5.1 및 6.0 드라이버 유지).
구조적으로 패킷 캡처는 NDIS 6 LWF에서 수행되어야하며 루프백 패킷이있는 프로토콜 드라이버는 사용하지 않아야합니다. 깨끗하고 비어있는 LWF (sample 참조)로 시작하여 WinPcap에서 패킷 캡처 기능을 추가하는 것이 좋습니다.
XP에서 8까지 모든 플랫폼을 지원하는 NDIS 버전이 있습니까? WDK7.1.0과 함께 출시 된 NDIS가 XP와 Win7을 동시에 지원한다는 것을 알고 있습니다. NDIS 버전을 모르겠다. 아마 5.1 일까? Win8은 NDIS 5.1 드라이버를 지원합니까? 다음은 MS에서 WDK7.1.0에 대한 링크입니다. http://www.microsoft.com/en-us/download/details.aspx?id=11800 – hsluoyz
예. 그것은 "NDIS 5"라고합니다. WinPcap에는 NDIS 5 드라이버가 있으며 W2K부터 8까지 지원합니다. 그러나 1) XP에서 8까지 모든 플랫폼을 지원하는 단일 NDIS 버전은 없습니다. 2) NDIS 6을 사용하기를 원하는 보스를 행복하게 만듭니다. 예를 들어, 1) XP에서 8, 2) 모든 플랫폼을 지원하는 NDIS 버전은 기본 802.11을 지원하므로 모니터 모드로 캡처 할 수 있습니다. –
"parallel drivers"구성표는 95/98/Me가 지원 될 때 Windows 95/98/Me 및 NT를 지원하기 위해 사용되었으므로 그러한 구성표의 선례가 있습니다. –
XP에서 8까지 모든 플랫폼을 지원하는 단일 NDIS 버전이 있습니까? WDK7.1.0과 함께 출시 된 NDIS가 XP와 Win7을 동시에 지원한다는 것을 알고 있습니다. NDIS 버전을 모르겠다. 아마 5.1 일까? Win8은 NDIS 5.1 드라이버를 지원합니까? 다음은 MS에서 WDK7.1.0에 대한 링크입니다 : http://www.microsoft.com/en-us/download/details.aspx?id=11800 – hsluoyz