system call table

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Benutzeravatar
Weissbrot
Beiträge: 186
Registriert: 02.07.2004 01:03:44

system call table

Beitrag von Weissbrot » 07.02.2010 13:44:00

wie kann ich alle bisherigen system calls einer Sitzung anzeigen lassen?
If Bill Gates had a penny for every time Windows crashed… ..oh wait, he does. ...

Benutzeravatar
Weissbrot
Beiträge: 186
Registriert: 02.07.2004 01:03:44

Re: system call table

Beitrag von Weissbrot » 07.02.2010 14:24:59

OK,
wahrscheinlich geht es mit strace, ich krieg's aber nicht hin!
Beispiel:

Code: Alles auswählen

:~$ strace -c >/dev/null ls
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
   nan    0.000000           0        12           read
   nan    0.000000           0         1           write
   nan    0.000000           0        40        13 open
   nan    0.000000           0        29           close
ich suche aber eine Ausgabe, die mir den Speicherbereich zeigt, z.B:

Code: Alles auswählen

sys_read  = 0xc0156ebb
sys_write = 0xc0156fc7
Hat jemand eine Idee?
If Bill Gates had a penny for every time Windows crashed… ..oh wait, he does. ...

Benutzeravatar
bmario
Beiträge: 1256
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: system call table

Beitrag von bmario » 10.02.2010 11:00:22

Hi,

soweit ich weiß, sind die syscalls im Linux Kernel alle Interrupt basiert,
d.h. es werden die Parameter in die Register geladen und dann ein bestimmter Interrupt ausgelöst.
Dadurch wird in den Kernelspace (Ring 0) gesprungen und der Kernel bearbeitet dann diese "Anfrage".
(Zumindest ist das auf x86 / x86-64 so).

Mit anderen Worten, die Syscalls haben keinen Speicherbereich in dem Sinne, dass du ihn anspringen könntest.

Mario
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

Antworten