2015-01-28 12 views
5

Sto cercando di ottenere la chiave handle per il filtro socket per la registrazione della filtrazione dei pacchetti. L'ho già registrato per i pacchetti TCP ora voglio registrarlo per il pacchetto UDP. Questa chiave di gestione deve essere unica da un'altra applicazione.Come ottenere il valore dell'handle del filtro socket (sflt_filter.sf_handle) dal sito Apple per la registrazione della filtrazione dei pacchetti

sflt_filter.sf_handle = 0xAACAF333; 

ho ottenuto prima di circa 2 anni fa con il link (http://developer.apple.com/datatype/), ma reindirizzati collegamento diverso.

Ho letto il link e dice che i codici dei creativi sono ignorati dal 10.6 in poi. Ma per implementare kext per filtrazione dei pacchetti abbiamo bisogno che quel codice sia unico.

Qualcuno sa come ottenere la chiave univoca? O non è richiesto per ottenere la chiave univoca? O il loro è un modo diverso di usare l'handle adesso?

Grazie in anticipo.

risposta

1

So che la questione è molto vecchio, ma ho affrontato lo stesso problema, e solo per il prossimo colui che troppo:

ora è possibile registrarsi e ottenere manico unico per filtro chiamando la funzione kev_vendor_code_find da sys/kern_event. h, passando l'id del bundle e il puntatore alla variabile uint32.

Dopo di che, nello spazio utente è possibile ottenere questo maniglia SIOCGKEVVENDOR ioctl, passando il puntatore alla struttura kev_vendor_code con lo stesso fascio id nel VENDOR_STRING campo.

Non si dovrebbe fare nulla per "annullare la registrazione" di questo handle (ma è necessario annullare la registrazione del filtro con questo handle in driver :: stop())