03.06.2013 Views

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

56 4. L’implementazione<br />

4.3 Implementazione del sistema<br />

I punti chiave dell’implementazione non sono molti e di seguito verranno descritti.<br />

<strong>Un</strong>o di essi è lo script <strong>per</strong> la collezione dei dati, l’altro è l’implementazione della<br />

funzione NewArgs().<br />

4.3.1 Lo script di <strong>data</strong> collection<br />

In base a quanto specificato nello script verranno raccolti più o meno dati che ver-<br />

ranno processati dal <strong>modello</strong>. I dati raccolti sono in ogni caso lo stack del processo<br />

al momento della system call e <strong>il</strong> suo nome. Eventualmente vengono raccolti anche<br />

uno o più parametri e <strong>il</strong> valore di ritorno. Lo script inizia con:<br />

string pname;<br />

BEGIN<br />

{<br />

pname = "gpserver";<br />

}<br />

In questa parte viene inizializzata la variab<strong>il</strong>e pname che consente di specificare<br />

<strong>il</strong> nome del processo da monitorare. Successivamente vengono inizializzate alcune<br />

variab<strong>il</strong>i che conterranno i valori collezionati.<br />

syscall:::entry<br />

/execname == pname/<br />

{<br />

self->arg0 = 0;<br />

self->arg1 = 0;<br />

self->arg2 = 0;<br />

self->arg3 = 0;<br />

self->arg4 = 0;<br />

self->arg5 = 0;<br />

}<br />

Si noti l’uso di self, necessario a memorizzare <strong>il</strong> valore localmente rispetto al thread.<br />

Le variab<strong>il</strong>i inizializzate conterranno fino a 5 parametri delle system call. In questa<br />

definizione si può notare anche l’espressione /execname == pname/, che fa attivare<br />

la sonda solo se <strong>il</strong> nome del processo è quello specificato. Infine prendiamo in esame<br />

la parte che effettivamente raccoglie i dati.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!