Development

Edit | View | Diffs | Info | Raw | Print

Ethereal Development

  • /!\ ETHEREAL HAS CHANGED ITS NAME

    Due to trademark issues the Ethereal software project has changed its name to [WWW]Wireshark. Development under the name Ethereal has ceased.
    The anonymous SVN server linked below (anonsvn.ethereal.com) has been unreachable since fall 2006.

The Ethereal network protocol analyzer has changed its name to [WWW]Wireshark.

This is the development section of the Ethereal wiki.

Beginner?

If you are new to Ethereal development, you should look at the following places (listed in order of importance):

  • [WWW]Ethereal development webpage the first place to look at ...

  • [WWW]doc/README.developer the best manual about Ethereal development so far, you will also find that one in the [WWW]doc directory of the Ethereal sources - please read and thoroughly understand all of the "Portability" and "Robustness" sections before writing any Ethereal code!

  • [WWW]Ethereal documentation webpage of which the Developer Guide is currently invaluable for setting up a Win32 development environment

  • you may find additional information in the README.xxx file suitable for your target platform (e.g. [WWW]README.win32 for windows) in the [WWW]root directory of the Ethereal sources

  • ... and of course you should have a look at the [WWW]Ethereal sources itself!

General

  • [WWW]Ethereal documentation webpage: the latest version of the Ethereal User's Guide and the Ethereal Developer's Guide in different formats (PDF, HTML, ...)

  • /Roadmap: Roadmap for further Ethereal releases

  • /Wishlist: Wish list for internal features and architectural changes (as opposed to user-visible features WishList)

  • /Translations: Why it's not a good idea to translate Ethereal into spanish/german/... language

Development

  • SendingFilesToEthereal: Tips on sending files to the Ethereal mailing lists

  • /SecureProgramming How to write more secure code, e.g. replace insecure ANSI-C calls by more secure ones

  • /CommonProblems: Some common problems while developing Ethereal

  • /DeprecatedFunctions: Some features now deprecated for new code

  • /Tips: Some selected wisdom to ease development/debugging

  • /MSVC7: Efforts to compile Ethereal under Microsoft VC7/.NET (or however it's really called)

  • /FilenameEncoding: the various Unicode and code page encodings of filenames in GLib

Projects

  • /DropWin32GTK1: Thoughts about dropping GTK1 support on Win32

  • /PrivilegeSeparation: A proposal to add privilege separation to Ethereal

  • Mate: Meta Analysis and Tracing Engine

  • /Security: Efforts to make Ethereal more secure

  • /Examples: Example files, which are used by the various installers as default files

  • /LibpcapFileFormat A libpcap file format description

  • EMEMification A Janitor project to audit and fix memory management and prevent memleaks.

  • /Canary Finding and fixing memory over- and under-runs with canaries

  • Removeold-styleASN.1code A project to remove old-style ASN.1 code

  • /ExpertInfo: a better "user display" of network misbehaviour

  • /PacketInput: how to get packet data into Ethereal in some "unusual" ways

  • /OptimizePacketList: the packet list isn't optimized for the way we use it, could make a huge difference for large capture files

  • Lua: Extending Ethereal with the extensible extension language

Tools

  • Asn2eth: How to create a dissector using the ASN1 compiler

  • /EtherealEnvCmd: A batch script to set environment variables useful for Windows development

  • idl2eth: CORBA IDL to Ethereal Plugin Generator [WWW]idl2eth

  • FuzzTesting: tools to stress test protocol dissectors

  • Pidl: A perl-based DCE/RPC IDL compiler (and Ethereal dissector generator) developed for Samba 4

Discussion