A new mmap finger printer
Ulrich Spoerlein
uspoerlein at gmail.com
Sat Jan 20 18:32:39 UTC 2007
Jung-uk Kim wrote:
> http://people.freebsd.org/~jkim/mmap_test.c
% uname -a
Linux PC03 2.6.17-gentoo-r4 #1 SMP PREEMPT Mon Aug 14 17:19:40 CEST 2006 i686 Intel(R) Celeron(R) CPU 3.06GHz GNU/Linux
% ./mmap_test
#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: OK, read: 0x41, write: SIGSEGV, exec: OK
#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: OK, read: 0x41, write: SIGSEGV, exec: OK
#07: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_RDONLY: mmap: Permission denied (13)
#08: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_RDONLY: mmap: Permission denied (13)
#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: OK, read: 0x41, write: SIGSEGV, exec: OK
#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: OK, read: 0x41, write: SIGSEGV, exec: OK
#15: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_RDONLY: mmap: OK, read: 0x41, write: OK, exec: OK
#16: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_RDONLY: mmap: OK, read: 0x41, write: OK, exec: OK
#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: Permission denied (13)
#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: Permission denied (13)
#23: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_WRONLY: mmap: Permission denied (13)
#24: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_WRONLY: mmap: Permission denied (13)
#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: Permission denied (13)
#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: Permission denied (13)
#31: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_WRONLY: mmap: Permission denied (13)
#32: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_WRONLY: mmap: Permission denied (13)
#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: OK, read: 0x42, write: SIGSEGV, exec: OK
#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: OK, read: 0x42, write: SIGSEGV, exec: OK
#39: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_RDWR: mmap: OK, read: 0x42, write: OK, exec: OK
#40: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_SHARED, ...)
for filemode O_RDWR: mmap: OK, read: 0x42, write: OK, exec: OK
#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: OK, read: 0x42, write: SIGSEGV, exec: OK
#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: OK, read: 0x42, write: SIGSEGV, exec: OK
#47: mmap(0, 1024, PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_RDWR: mmap: OK, read: 0x42, write: OK, exec: OK
#48: mmap(0, 1024, PROTO_READ|PROTO_WRITE|PROTO_EXEC, MAP_PRIVATE, ...)
for filemode O_RDWR: mmap: OK, read: 0x42, write: OK, exec: OK
#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
Ulrich Spoerlein
--
A: Yes.
>Q: Are you sure?
> >A: Because it reverses the logical flow of conversation.
> >>Q: Why is top posting frowned upon?
More information about the freebsd-emulation
mailing list