Nmap Development mailing list archives
Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01)
From: Kurt Grutzmacher <grutz () jingojango net>
Date: Mon, 6 Mar 2006 20:26:41 -0800
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Mar 5, 2006, at 8:48 PM, David Warde-Farley wrote:
On 5-Mar-06, at 11:25 PM, Kelly M wrote:Thanks for walking me through that. Here's the output I got: (gdb) run -sS -T4 -A 111.222.333.444 Starting program: /usr/local/bin/nmap -sS -T4 -A 111.222.333.444 Reading symbols for shared libraries . done Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at 2006-03-05 23:12 EST Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0xc0000000 0x0004486d in ?? () (gdb) bt #0 0x0004486d in ?? () #1 0x00000000 in ?? () Previous frame inner to this frame (corrupt stack?)
I've been tracking this one for a while (see nmap archives) and it's when nmap calls pcre_compile during ServiceProbeMatch::InitMatch. It bombs on the first nmap-service-probe entry. This is where I've gotten so far....: (gdb) r -sV 192.168.1.1 Starting program: /Users/grutz/nmap/nmap-4.02Alpha1/nmap -sV 192.168.1.1 Reading symbols for shared libraries . done Starting Nmap 4.02Alpha1 ( http://www.insecure.org/nmap/ ) at 2006-03-06 20:25 PST Processing line: totalwaitms 6000 Processing line: match acap m|^\* ACAP \(IMPLEMENTATION \"CommuniGate Pro ACAP (\d[-.\w]+)\"\) | p/CommuniGate Pro ACAP server/ i/for mail client preference sharing/ v/$1/ InitMatch started for line: match acap m|^\* ACAP \(IMPLEMENTATION \"CommuniGate Pro ACAP (\d[-.\w]+)\"\) | p/CommuniGate Pro ACAP server/ i/for mail client preference sharing/ v/$1/ Calling regex_compiled with: matchstr ^\* ACAP \(IMPLEMENTATION \"CommuniGate Pro ACAP (\d[-.\w]+)\"\) pcre_compile_ops 0 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0xa006892f 0x00045384 in compile_regex (options=0, oldims=0, brackets=0xbfffb3d4, codeptr=0xbfffaee0, ptrptr=0xbfffaedc, errorcodeptr=0xbfffb3d0, lookbehind=0, skipbytes=0, firstbyteptr=0xbfffaed4, reqbyteptr=0xbfffaecc, bcptr=0xbfffaec4, cd=0xbfffb384) at ./pcre_compile.c:1925 1925 for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c +cbit_digit]; (gdb) bt #0 0x00045384 in compile_regex (options=0, oldims=0, brackets=0xbfffb3d4, codeptr=0xbfffaee0, ptrptr=0xbfffaedc, errorcodeptr=0xbfffb3d0, lookbehind=0, skipbytes=0, firstbyteptr=0xbfffaed4, reqbyteptr=0xbfffaecc, bcptr=0xbfffaec4, cd=0xbfffb384) at ./pcre_compile.c:1925 #1 0x00044feb in compile_regex (options=0, oldims=0, brackets=0xbfffb3d4, codeptr=0xbfffb3cc, ptrptr=0xbfffb3c8, errorcodeptr=0xbfffb3d0, lookbehind=0, skipbytes=0, firstbyteptr=0xbfffb3dc, reqbyteptr=0xbfffb3d8, bcptr=0x0, cd=0xbfffb384) at ./pcre_compile.c:3129 #2 0x00048793 in pcre_compile2 (pattern=0x5005d0 "^\\* ACAP \\ (IMPLEMENTATION \\\"CommuniGate Pro ACAP (\\d[-.\\w]+)\\\"\\) ", options=0, errorcodeptr=0x0, errorptr=0xbfffb4ac, erroroffset=0xbfffb4a8, tables=0x66a80 "") at ./pcre_compile.c:4930 #3 0x00048e9c in pcre_compile (pattern=0x5005d0 "^\\* ACAP \\ (IMPLEMENTATION \\\"CommuniGate Pro ACAP (\\d[-.\\w]+)\\\"\\) ", options=0, errorptr=0xbfffb4ac, erroroffset=0xbfffb4a8, tables=0x0) at ./pcre_compile.c:3855 #4 0x00034e97 in ServiceProbeMatch::InitMatch (this=0x5008c0, matchtext=0xbfffb572 "acap m|^\\* ACAP \\(IMPLEMENTATION \\ \"CommuniGate Pro ACAP (\\d[-.\\w]+)\\\"\\) | p/CommuniGate Pro ACAP server/ i/for mail client preference sharing/ v/$1/\n", lineno=43) at service_scan.cc:381 #5 0x00037976 in ServiceProbe::addMatch (this=0x500a30, match=0xbfffb56c "match acap m|^\\* ACAP \\(IMPLEMENTATION \\ \"CommuniGate Pro ACAP (\\d[-.\\w]+)\\\"\\) | p/CommuniGate Pro ACAP server/ i/for mail client preference sharing/ v/$1/\n", lineno=43) at service_scan.cc:1042 #6 0x0003a51e in parse_nmap_service_probe_file (AP=0x500770, filename=0xbfffbda0 "./nmap-service-probes") at service_scan.cc:1112 #7 0x0003a73c in parse_nmap_service_probes (AP=0x500770) at service_scan.cc:1141 #8 0x0003ab58 in service_scan (Targets=@0xbfffd474) at service_scan.cc:2333 #9 0x00008362 in nmap_main (argc=3, argv=0xbffffaf0) at nmap.cc:1274 #10 0x000027f2 in main (argc=3, argv=0xbffffaf0, envp=0xbffffb00) at main.cc:245 Current language: auto; currently c Easy fix is to compile libpcre outside of nmap with utf8 support and then build nmap against that library instead. Not entirely sure why utf8 is required, just that it's the only way to get pcre to function. I used darwinport's pcre and it works great. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (Darwin) iD8DBQFEDQuH7JUqA4yz7LQRAqjCAJ4/wR/J4xt0OMe5K+eWjRYd9dkeRwCfRuVW r+d/yjsTQp9XHb5rsPpvyDE= =u2br -----END PGP SIGNATURE----- _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev
Current thread:
- SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kelly M (Mar 05)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) David Warde-Farley (Mar 05)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kelly M (Mar 05)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) David Warde-Farley (Mar 05)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kurt Grutzmacher (Mar 06)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Fyodor (Mar 07)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kelly M (Mar 08)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kurt Grutzmacher (Mar 09)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kurt Grutzmacher (Mar 10)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Fyodor (Mar 10)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kurt Grutzmacher (Mar 10)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Fyodor (Mar 10)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) Kelly M (Mar 05)
- Re: SIGSEGV signal on Darwin OS X (Intel) when using version matching (nmap 4.01) David Warde-Farley (Mar 05)