2015-01-28 22 views
5

Paket filtrelemeyi kaydetmek için soket süzgeci için tutamaç anahtarını almaya çalışıyorum. Ben zaten TCP paketleri için kaydettim şimdi UDP paketi için kaydetmek istiyorum. Bu tanıtıcı anahtarın başka bir uygulamadan benzersiz olması gerekir.Paket filtrelemeyi kaydetmek için elma sitesinden soket süzgeç tutamacı (sflt_filter.sf_handle) değeri nasıl elde edilir

sflt_filter.sf_handle = 0xAACAF333; 

Ben yaklaşık 2 yıl önce link (http://developer.apple.com/datatype/) kullanılarak fakat değişik bağlantı yönlendirilmiş olsun önce almış.

link'u okudum, İçerik Kodlarının 10.6 ve üstü tarafından yok sayıldığını söylüyor. Ancak paket filtreleme için kext uygulamak için bu kodun benzersiz olması gerekiyor.

Benzersiz anahtarı nasıl elde edeceğini bilen var mı? VEYA Benzersiz anahtarı elde etmek gerekli değil mi? VEYA onların tanıtımı şimdi kullanmak için farklı bir yol mu?

Şimdiden teşekkürler.

cevap

1

Ben soru çok eski olduğunu biliyorum ama ben de aynı sorunla karşı karşıya ve sadece bir sonrakinde kim de olacak:

şimdi kayıt ve filtre sys/kern_event gelen kev_vendor_code_find işlevini çağırarak için benzersiz tanıtıcı elde edebilirsiniz. h, paket kimliği ve imleci uint32 değişkenine geçirme.

Bundan sonra, kullanıcı alanında SICHGKEVVENDOR ioctl ile bu tanıtıcıyı, vendor_string alanında aynı paket kimliğiyle kev_vendor_code yapısına geçirerek işaretçiyi alabilirsiniz.

Bu tanıtıcıyı "unregister" yapmak için hiçbir şey yapmamalısınız (ancak bu tutamaç ile sürücüyü sürücüde kaydetmemelisiniz :: stop())