2014-01-31 4 views
0

Windows 플랫폼의 Wireshark 용 해부학자를 작성하려고합니다. 그러나 오류가 발생합니다.Windows 플랫폼의 Wireshark Disscetor 오류

  • 나는이 link에 따라 Windows의 소스에서 Wireshark를 설치했으며, 소프트웨어를 성공적으로 빌드하고 실행할 수있었습니다.
  • 그런 다음 README.plugins을 사용하여 플러그인을 추가하고 파일에 언급 된 모든 변경 작업을 수행했습니다.
  • 플러그인을 사용하여 성공적으로 빌드했지만 실행을 시도 할 때마다 The plugin 'ABC.dll' has neither a register routine, a register_tap_listener or a register_wtap_module or a register_codec_module routine.이라는 대화 상자가 나타납니다. wireshark는 잘 돌아가고 있지만 플러그인은 포함되어 있지 않습니다.
  • 리눅스 환경 : 리눅스 플랫폼에서 컴파일하고 실행 해 보았습니다. 플러그인이 포함 된 상태에서 제대로 작동했습니다.
    아무도 나에게 윈도우 플랫폼에서 잘못 될 수있는 곳을 말해 줄 수 있습니까? 감사.
  • 답변

    0

    Windows에서 플러그인을 빌드 할 때 DLL의 특정 기호가 내 보낸 것으로 선언되어 실행시 DLL에서 찾을 수 있도록하는 약간의 마술이 있습니다. (최근에 모든 세부 사항을 파고 들지는 않았지만 메커니즘은 * nix에서 다르므로 각 플랫폼의 결과가 다를 수 있습니다.)

    어떤 Wireshark 버전을 만들고 있습니까? (Wireshark 소스를 어떻게 얻고 있습니까?).

    나타나는 오류 메시지는 사용자가 WWireshark 1.10 버전을 빌드 중임을 나타냅니다. (메시지는 Wireshark 개발 버전 (1.11)에서 변경되었습니다.

    어떤 경우에도 Windows에서 DLL을 빌드하는 방법에 대해서는 분명하지 않습니다.

    출발점으로 나의 제안 :

    당신은 함께 Windows에서 플러그인 디렉토리에 (빌드시에 생성)을 plugin.c 파일을 비교 에 의해 잘못 무엇인지에 대한 아이디어를 얻을 수있을 것 다른 Wireshark Windows 플러그인 디렉토리 중 하나에서 plugin.c.

    마법은 해당 파일에서 발생합니다.

    WS_DLL_PUBLIC_NOEXTERN void 
    plugin_reg_handoff(void) 
    { 
        {extern void proto_reg_handoff_unistim (void); proto_reg_handoff_unistim();} 
    } 
    
    +0

    고마워 : 같은

    것. plugin.c가 종속 된 Makefile.nmake를 디버깅하고 오류없이 실행했습니다. – vidzi