A new mmap finger printer

Tijl Coosemans tijl at ulyssis.org
Sat Jan 20 10:46:11 UTC 2007


On Saturday 20 January 2007 08:05, Jung-uk Kim wrote:
> On Friday 19 January 2007 06:51 pm, Jung-uk Kim wrote:
> > I added PROT_EXEC test and cleaned up Marcin Cieslak's mmap finger
> > printer.  Can any one try this on a real Linux/i386 box and send me
> > the output?

Linux 2.6.8-3-686

#01: mmap(0, 1024, PROTO_NONE, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#02: mmap(0, 1024, PROTO_READ, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: OK, read: 0x41, write: SIGSEGV, exec: OK
#03: mmap(0, 1024, PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Permission denied (13)
#04: mmap(0, 1024, PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#05: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Permission denied (13)
#06: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#07: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#08: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#09: mmap(0, 1024, PROTO_NONE, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#10: mmap(0, 1024, PROTO_READ, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: OK, read: 0x41, write: SIGSEGV, exec: OK
#11: mmap(0, 1024, PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: OK, read: SIGSEGV, write: OK, exec: OK
#12: mmap(0, 1024, PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#13: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: OK, read: 0x41, write: OK, exec: OK
#14: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#15: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#16: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDONLY: mmap: Operation not permitted (1)
#17: mmap(0, 1024, PROTO_NONE, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#18: mmap(0, 1024, PROTO_READ, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#19: mmap(0, 1024, PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#20: mmap(0, 1024, PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#21: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#22: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#23: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#24: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#25: mmap(0, 1024, PROTO_NONE, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#26: mmap(0, 1024, PROTO_READ, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#27: mmap(0, 1024, PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#28: mmap(0, 1024, PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#29: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Permission denied (13)
#30: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#31: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#32: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_WRONLY: mmap: Operation not permitted (1)
#33: mmap(0, 1024, PROTO_NONE, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#34: mmap(0, 1024, PROTO_READ, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: OK, read: 0x41, write: SIGSEGV, exec: OK
#35: mmap(0, 1024, PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: OK, read: SIGSEGV, write: OK, exec: OK
#36: mmap(0, 1024, PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#37: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: OK, read: 0x42, write: OK, exec: OK
#38: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#39: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#40: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#41: mmap(0, 1024, PROTO_NONE, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#42: mmap(0, 1024, PROTO_READ, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: OK, read: 0x42, write: SIGSEGV, exec: OK
#43: mmap(0, 1024, PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: OK, read: SIGSEGV, write: OK, exec: OK
#44: mmap(0, 1024, PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#45: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: OK, read: 0x42, write: OK, exec: OK
#46: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#47: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#48: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
 for filemode O_RDWR:   mmap: Operation not permitted (1)
#49: mmap(0, 1024, PROTO_NONE, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#50: mmap(0, 1024, PROTO_READ, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#51: mmap(0, 1024, PROTO_WRITE, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: SIGSEGV, write: OK, exec: OK
#52: mmap(0, 1024, PROTO_EXEC, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#53: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK
#54: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#55: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK
#56: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_ANON|MAP_SHARED, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK
#57: mmap(0, 1024, PROTO_NONE, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: SIGSEGV, write: SIGSEGV, exec: SIGSEGV
#58: mmap(0, 1024, PROTO_READ, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#59: mmap(0, 1024, PROTO_WRITE, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: SIGSEGV, write: OK, exec: OK
#60: mmap(0, 1024, PROTO_EXEC, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#61: mmap(0, 1024, PROTO_READ|PROTO_WRITE, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK
#62: mmap(0, 1024, PROTO_READ|PROTO_EXEC, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: SIGSEGV, exec: SIGSEGV
#63: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK
#64: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_ANON|MAP_PRIVATE, ...)
 for filemode N/A:      mmap: OK, read: 0x00, write: OK, exec: OK


More information about the freebsd-emulation mailing list