Overview
Comment: | Made initial code available |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
41372cf67d757526ea86de79c61f9e41 |
User & Date: | rkeene on 2014-01-25 03:54:27 |
Other Links: | manifest | tags |
Context
2014-01-25
| ||
04:22 | Updated to run appropriate sub-make check-in: 3cd8f21683 user: rkeene tags: trunk | |
03:54 | Made initial code available check-in: 41372cf67d user: rkeene tags: trunk | |
03:52 | initial empty check-in check-in: da2773f52d user: rkeene tags: trunk | |
Changes
Added Makefile version [ef64b6288d].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | TOOLCHAIN = i686-w64-mingw32 TOOLCHAIN_CMD = $(TOOLCHAIN)- TWAPI_VERSION = 3.1.17 TWAPI_URL = http://sourceforge.net/projects/twapi/files/Current%20Releases/Tcl%20Windows%20API/twapi-$(TWAPI_VERSION)/twapi-$(TWAPI_VERSION).zip TWAPI_ZIP = archive/twapi-$(TWAPI_VERSION).zip TCPDUMP_VERSION = 4.5.1 TCPDUMP_URL = http://www.tcpdump.org/release/tcpdump-$(TCPDUMP_VERSION).tar.gz TCPDUMP_TARBALL = archive/tcpdump-$(TCPDUMP_VERSION).tar.gz WINPCAP_DEV_VERSION = 4.1.2 WINPCAP_DEV_URL = http://www.winpcap.org/install/bin/WpdPack_4_1_2.zip WINPCAP_DEV_ZIP = archive/winpcap-dev-$(WINPCAP_DEV_VERSION).zip WINPCAP_INST_VERSION = 4.1.3 WINPCAP_INST_URL = http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe WINPCAP_INST_7ZIP = archive/winpcap-inst-$(WINPCAP_INST_VERSION).exe WINPCAP_INST_FILES = files/npf32.sys files/npf64.sys files/packet.dll files/pthreadvc.dll files/wpcap.dll KITCREATOR_VERSION = 0.7.0 KITCREATOR_URL = http://www.rkeene.org/devel/kitcreator-$(KITCREATOR_VERSION).tar.gz KITCREATOR_TARBALL = archive/kitcreator-$(KITCREATOR_VERSION).tar.gz # Point to real target all: tcpdump.exe # WinPcap $(WINPCAP_INST_7ZIP): @-mkdir -p archive >/dev/null 2>/dev/null wget --no-use-server-timestamps -O "$(WINPCAP_INST_7ZIP).new" "$(WINPCAP_INST_URL)" 7z t "$(WINPCAP_INST_7ZIP).new" mv "$(WINPCAP_INST_7ZIP).new" "$(WINPCAP_INST_7ZIP)" $(WINPCAP_INST_FILES): $(WINPCAP_INST_7ZIP) @-mkdir -p files rm -rf __TMP_WPCAP__ mkdir __TMP_WPCAP__ echo u | ( cd __TMP_WPCAP__ && 7z x ../$(WINPCAP_INST_7ZIP) ) cp '__TMP_WPCAP__/$$SYSDIR/Packet_4.dll' files/packet.dll cp '__TMP_WPCAP__/$$SYSDIR/pthreadVC.dll' files/pthreadvc.dll cp '__TMP_WPCAP__/$$SYSDIR/wpcap.dll' files/wpcap.dll cp '__TMP_WPCAP__/$$SYSDIR/drivers/npf_1.sys' files/npf64.sys cp '__TMP_WPCAP__/$$SYSDIR/drivers/npf.sys' files/npf32.sys rm -rf __TMP_WPCAP__ # TCPDUMP $(TCPDUMP_TARBALL): @-mkdir -p archive >/dev/null 2>/dev/null wget --no-use-server-timestamps -O "$(TCPDUMP_TARBALL).new" "$(TCPDUMP_URL)" gzip -dc "$(TCPDUMP_TARBALL).new" | tar -tf - >/dev/null mv "$(TCPDUMP_TARBALL).new" "$(TCPDUMP_TARBALL)" $(WINPCAP_DEV_ZIP): @-mkdir -p archive >/dev/null 2>/dev/null wget --no-use-server-timestamps -O "$(WINPCAP_DEV_ZIP).new" "$(WINPCAP_DEV_URL)" unzip -l "$(WINPCAP_DEV_ZIP).new" mv "$(WINPCAP_DEV_ZIP).new" "$(WINPCAP_DEV_ZIP)" files/tcpdump.exe: $(TCPDUMP_TARBALL) $(WINPCAP_DEV_ZIP) pcap-config rm -rf __TMP_TCP__ mkdir __TMP_TCP__ ( \ set -e; \ cd __TMP_TCP__; \ gzip -dc ../$(TCPDUMP_TARBALL) | tar -xf -; \ unzip ../$(WINPCAP_DEV_ZIP); \ cp ../pcap-config WpdPack/; \ cd WpdPack; \ echo '#define pcap_can_set_rfmon(x) 0' >> Include/pcap/pcap.h; \ echo '#define pcap_set_rfmon(x, y) -1' >> Include/pcap/pcap.h; \ echo '#define pcap_statustostr(x) ""' >> Include/pcap/pcap.h; \ cd ../tcpdump-$(TCPDUMP_VERSION); \ ./configure --without-smi --disable-smb --enable-ipv6 --without-crypto --host=$(TOOLCHAIN) PCAP_CONFIG="$$(pwd)/../WpdPack/pcap-config" LIBS='-lws2_32' CFLAGS='-D_WIN32_WINNT=0x0501' CPPFLAGS='-D_WIN32_WINNT=0x0501' ac_cv_func_getnameinfo='yes'; \ sed -i 's@Ws2tcpip\.h@ws2tcpip.h@' tcpdump-stdinc.h; \ grep -v '^# *define.*UNALIGNED' tcpdump-stdinc.h | \ grep -v '<net/netdb\.h>' > tcpdump-stdinc.h.new && mv tcpdump-stdinc.h.new tcpdump-stdinc.h; \ echo '#define HAVE_SOCKADDR_STORAGE 1' >> config.h; \ echo '#define HAVE_U_INT8_T 1' >> config.h; \ echo '#define HAVE_U_INT16_T 1' >> config.h; \ echo '#define HAVE_U_INT32_T 1' >> config.h; \ echo '#define HAVE_U_INT64_T 1' >> config.h; \ echo '#define HAVE_INT8_T 1' >> config.h; \ echo '#define HAVE_INT16_T 1' >> config.h; \ echo '#define HAVE_INT32_T 1' >> config.h; \ echo '#define HAVE_INT64_T 1' >> config.h; \ echo '#define HAVE_GENERATED_VERSION 1' >> config.h; \ echo '#define IN6_IS_ADDR_UNSPECIFIED IN6_IS_ADDR_UNSPECIFIED' >> config.h; \ echo '#undef HAVE_ALARM' >> config.h; \ grep -v '^# *define *inline' config.h > config.h.new && mv config.h.new config.h; \ make; \ ) @-mkdir -p files cp __TMP_TCP__/tcpdump-$(TCPDUMP_VERSION)/tcpdump files/tcpdump.exe.new $(TOOLCHAIN_CMD)strip files/tcpdump.exe.new mv files/tcpdump.exe.new files/tcpdump.exe rm -rf __TMP_TCP__ # TWAPI (TCL Windows API) $(TWAPI_ZIP): @-mkdir -p archive >/dev/null 2>/dev/null wget --no-use-server-timestamps -O "$(TWAPI_ZIP).new" "$(TWAPI_URL)" unzip -l "$(TWAPI_ZIP).new" mv "$(TWAPI_ZIP).new" "$(TWAPI_ZIP)" # Tclkit $(KITCREATOR_TARBALL): @-mkdir -p archive >/dev/null 2>/dev/null wget --no-use-server-timestamps -O "$(KITCREATOR_TARBALL).new" "$(KITCREATOR_URL)" gzip -dc "$(KITCREATOR_TARBALL).new" | tar -tf - >/dev/null mv "$(KITCREATOR_TARBALL).new" "$(KITCREATOR_TARBALL)" tclkit-zip: $(KITCREATOR_TARBALL) rm -rf kitcreator-$(KITCREATOR_VERSION) gzip -dc "$(KITCREATOR_TARBALL)" | tar -xf - cd kitcreator-$(KITCREATOR_VERSION) && KITCREATOR_PKGS=' ' AR=$(TOOLCHAIN_CMD)ar CC=$(TOOLCHAIN_CMD)gcc ./kitcreator 8.5.15 --host=$(TOOLCHAIN) --enable-kit-storage=zip cp kitcreator-$(KITCREATOR_VERSION)/tclkit-8.5.15 tclkit-zip.new mv tclkit-zip.new tclkit-zip rm -rf kitcreator-$(KITCREATOR_VERSION) # The wrapper ## Split Tclkit header from zip file contents tcpdump.exe.bin: tclkit-zip cp tclkit-zip tcpdump.exe.bin strip tcpdump.exe.bin ## Merge Tclkit zip file with TWAPI and re-combine tcpdump.exe: main.tcl tclkit-zip tcpdump.exe.bin files/tcpdump.exe $(WINPCAP_INST_FILES) $(TWAPI_ZIP) rm -f tcpdump.exe.zip cp tclkit-zip tcpdump.exe.zip zip -J -A -r -u tcpdump.exe.zip files main.tcl zipmerge tcpdump.exe.zip $(TWAPI_ZIP) cat tcpdump.exe.bin tcpdump.exe.zip > tcpdump.exe.new mv tcpdump.exe.new tcpdump.exe rm -f tcpdump.exe.zip zip -A tcpdump.exe # Cleanup clean: rm -f tcpdump.exe.zip tcpdump.exe.bin tcpdump.exe.new tcpdump.exe rm -rf kitcreator-$(KITCREATOR_VERSION) rm -rf __TMP_TCP__ __TMP_WPCAP__ distclean: clean rm -f "$(TWAPI_ZIP)" "$(TCPDUMP_TARBALL)" "$(WINPCAP_DEV_ZIP)" "$(KITCREATOR_TARBALL)" "$(WINPCAP_INST_7ZIP)" rm -f "$(TWAPI_ZIP).new" "$(TCPDUMP_TARBALL).new" "$(WINPCAP_DEV_ZIP).new" "$(KITCREATOR_TARBALL).new" "$(WINPCAP_INST_7ZIP).new" rm -f $(WINPCAP_INST_FILES) rm -f tclkit-zip files/tcpdump.exe -rmdir archive files .PHONY: all clean distclean |
Added main.tcl version [3ddbc51628].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | #! /usr/bin/env tclsh package require starkit starkit::startup lappend auto_path [file join $::starkit::topdir twapi] package require twapi # http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx if {[info exists ::env(PROCESSOR_ARCHITEW6432)]} { set arch $::env(PROCESSOR_ARCHITEW6432) } else { if {[info exists ::env(PROCESSOR_ARCHITECTURE)]} { set arch $::env(PROCESSOR_ARCHITECTURE) } else { set arch "x86" } } switch -- [string tolower $arch] { "x86" { set bits "32" } default { set bits "64" } } # Determine temp directory if {[info exists ::env(TEMP)]} { set tmpdir $::env(TEMP) } elseif {[info exists ::env(TMPDIR)]} { set tmpdir $::env(TMPDIR) } else { if {$tcl_platform(platform) == "windows"} { set tmpdir {C:/TEMP} } else { set tmpdir /tmp } } set tmpdir "C:/TEMP" # Determine interface to lookup set dest_parm_idx [lsearch -exact $argv "-i"] if {$dest_parm_idx != -1} { incr dest_parm_idx set dest_chk [lindex $argv $dest_parm_idx] if {[string match "*.*.*.*" $dest_chk] || [string match "*:*:*" $dest_chk]} { set dest $dest_chk ## Determine the index to specified destination set iface_idx 1 catch { set iface_idx [::twapi::get_outgoing_interface $dest] } if {$iface_idx == ""} { set iface_idx 1 } ## Determine the NPF name for the adapter found above set iface_adapter [lindex [::twapi::get_netif_info $iface_idx -adaptername] 1] set iface_npf "\\Device\\NPF_${iface_adapter}" set argv [lreplace $argv $dest_parm_idx $dest_parm_idx $iface_npf] } } # Copy files neeed to temporary directory for {set i 0} {$i < 20} {incr i} { append random_bin [format %c [expr {int(rand() * 256)}]] } binary scan $random_bin H* random set srcdir [file join $::starkit::topdir files] set dstdir [file join $tmpdir tcpdmp-$random] file delete -force -- $dstdir # Run tcpdump set exit 1 set start_npf_service 0 set npf_failed 0 if {[catch { set filesdir [file join $dstdir files] exec cmd /c mkdir [file nativename $dstdir] exec cmd /c mkdir [file nativename $filesdir] file copy -- {*}[glob -directory $srcdir *] $filesdir ## Delete extraneous service if {[::twapi::service_exists npf]} { if {![catch { ::twapi::stop_service npf }]} { set start_npf_service 1 } } catch { ::twapi::stop_service npf_tcpdump } catch { ::twapi::delete_service npf_tcpdump } ## Install driver and start service if {[catch { set driver [file join $filesdir npf${bits}.sys] set driver [file nativename $driver] ::twapi::create_service npf_tcpdump $driver -displayname "NPF for TCPDUMP (ignore)" -servicetype kernel_driver -starttype demand_start -errorcontrol ignore puts [exec net start npf_tcpdump] ::twapi::start_service npf_tcpdump puts [exec net start npf_tcpdump] } npf_err]} { set npf_failed 1 } after 5000 ## Launch tcpdump with the apropriate parameters #puts [list exec -- [file join $filesdir tcpdump.exe] {*}$argv] exec -- [file join $filesdir tcpdump.exe] {*}$argv >&@ stdout set exit 0 } err]} { if {$npf_failed} { puts "NPF Failed: $npf_err" } puts "Failed: $::errorInfo" set exit 1 } # Debug puts [exec net stop npf_tcpdump] puts [exec net start npf_tcpdump] # Cleanup catch { ::twapi::stop_service npf_tcpdump } catch { ::twapi::delete_service npf_tcpdump } if {$start_npf_service} { catch { ::twapi::start_service npf } } catch { file delete -force -- $dstdir } # Terminate exit $exit |
Added pcap-config version [3e755fbbad].
> > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #! /bin/bash opt="$1" ourdir="$(dirname "$(readlink -f "$(which "$0")")")" case "$opt" in --cflags) echo "-Iwin32/Include -I${ourdir}/Include" ;; --libs) echo "-L${ourdir}/Lib -lwpcap -lws2_32" ;; *) echo "Unknown option: $opt" >&2 exit 1 ;; esac exit 0 |