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 ...
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.