Dongle (Hardlock) Donanımsal Kilit Ve Tersinir Mühendislik (Reverse Engineer)

HASPHL2007 32 Bit İşletim sisteminde İşlem Yapmaktadır. Programınız Bilgisayarda Kuruluyken Dongle Kiliti Bİlgisayara Takın.Daha Sonra HASPHL2007 Adlı Dosyayı çalıştırın Driver Bölümünden İnstal Driver Deyin.Sonra Emulator Kısmından Start Service Butonuna Tıklayın.Daha Sonra Dumper Kısmına Gelin Refresh e Tıklayın Hasp/HLDongles Yazan Yerde Dongle Id Niz Görünecek Eğer Görünmez İse Programınızı Çalıştırın Program açılırken Refresh e Tıklamaya Devam Edin… Dongle Idniz Görünecektir.Ardından Dump Butonuna Basın.. Bilgisayarınızın Hızına Göre 5-10 Dk Arasında Dongle Kilidinizin Kopyasını Bİlgisayara Kopyalayıp HASPHL2007 Programının Bulundugu Klasöre (.dmp Veya .BIN) Olarak Kaydedecektir… Daha Sonra HASPHL2007 Kapatın. Edgehasp Programını Çalıştırın Hasp Veya Hasp HL Bölümünden ( Bu Dongle Kilidinize Göre Değişir) Dump File Location Bölümünden BIN Veya Dmp Formatlı Dosyanızı Seçin Ardından Dng File Location Kısmından Dng Dosyasını Kayıt Edeceğiniz Yeri Ve İsmini Belirleyin… Ardından Solve Butonuna Tıklayın. Dng Dosyanız Muhtemelen Oluşturulmuştur… Dongle kiliti Bilgisayarınızdan Çıkartın… Bİlgisayarınızı Yeniden Başlatın… Bilgisayar Açıldıktan sonra HASPHL2007 Programını Çalıştırın Driver Kısmından İnstall a Tıklayın Ki Büyük İhtimal Driver Yüklü Olacaktır… Sonra Emulator Kısmından Start Service e Tıklayın…Daha Daha Sonra Dongleskısmından Load Dump Butonuna Tıklayın Ve En Son oluşturdugunuz Dng Dosyasını Seçin…. Emulator Kısmına Gelin Programın İd si Ve Şifreler Görünecektir…. HASPHL2007 Kapatın Programınızı Çalıştırın…. ( Program çalışacaktır. Yazılım 32 bit olan tüm windows işletim sistemlerinde çalışır bizzat denedim test ettim( en düşük win xp ve win vista-7-8 vs. gibi sistemlerde sentemul programını uygulama özelliklerinden yönetici olarak çalıştır ı işaretlemeniz gerekir ) 64 bitte çalışmaz ancak onuda çözdüm sanal dongle yaptım aygıt yöneticisinde dongle aygıt var gibi görmektedir. 64 bit sistemde driver tanıtabilmek için Sürücü imzası zorlamasını devre dışı bırakmalısınız.
Windows 8’de Sürücü İmzası Zorlamasını Devre Dışı Bırakma
Windows’da hatalı ve uyumsuz sürücüler işletim sisteminin çökmesine neden olduğundan imzasız sürücülerin yüklenmesi varsayılan olarak kapalıdır. Windows XP, Vista ve 7’de sürücü imzası zorlaması bilgisayar ayarlarından kapatılabiliyorken Windows 8’de daha farklı bir yol izlenmesi gerekmektedir.Eğer Windows 8 kullanıyorsanız aşağıdaki adımları takip ederek sürücü imzası zorlamasını devre dışı bırakarak imzasız sürücüleri bilgisayarınıza yükleyebilirsiniz.
Not: İmzasız sürücüler işletim sisteminizde sorunlara neden olabileceğinden başlamadan önce sistem geri yükleme noktası oluşturmanızı tavsiye ediyorum. Bir sorun olması durumunda bu geri yükleme noktasını kullanarak bilgisayarınızı çalışır hale getirebilirsiniz.

  1. Windows tuşu + R kısayolu ile çalıştır penceresini açın ve “shutdown /o /r -t 00” yazıp “Tamam” a tıklayın. Programlarınız kapatılacak ve gelişmiş başlangıç seçenekleri karşınıza gelecektir.
    Dongle Kopyalama
    Elinizde bir dongle ile calısan program var bunu baska pcde calıstırmak istiyonuz öncelikle kullandıgınız programın hangi marka model dongle kullanıyor ona bakmalısınız örnek vermek gerekirse sizin donglenız wibubox o zaman siz wibubox sitesinden driverını indirmeniz gerekli ve sitede hangi dosyaları windows altında kullanıyor ona bakın.
    İnternetten caglarin geliştirmeleri sitesinden o donglenın emülatörünü indirin ve bu adreste her marka dongle emülatörü mevcuttur. Wibunun dongle emülatörü dataton_v4_t dur ve bunu indirin.
    Pcnizde kurulu programınızn donglelını kopyalamaya başlayabilirsiniz.
    Yükleyeceğiniz pcde varsayım olarak elinizde setubı yok, ozaman elinizde kurulu olan programa hedef bul deyin ve kurulu dizini kopyalayın ve lisansı kopyalayın.
    Windowsun altında programın ve donglelın kullandıgı dosyaları kopyalayın bunlar windows sistem dosyasında kayıtlıdır ve kullandıgınız programın dongle sitesinde programın kullandığı dosya uzantıları mevcuttur. Bunları windowsa aratırıp bulup kopyalayın.
    lpf dongel tool indirip usb device view diyerek dongle kimline bakın ve bu kodu bir kenara yazıp daha sonra karşılaştıracağız.
    Open regedit diyerek kayıt defteri düzenleyicisine girin burada bulduğunuzu dizini ver diyerek regedit olarak kaydedin ve bu kayıt defteri girişi başka pcde lazım olacaktır.
    Emulatörü çalıştırın devcon exe’ye tıklayıp donglelınızı emdrin uninstall driver diyerek donglenızı kaldırın ve dongle çıkarın.
    Install driver diyerek driverı tekrar yükleyin burada sanal sürücü oluşacaktır.
    ıfp dongle toolu tekrar acın usb view diyerek dongleınız kopya dongle kimliği ile uyuşuyormu diye bir bakın. Bir yanlışlık yapmasanız uyuşur eğer uyuşmazsa uninstall driver diyerek tüm işlemleri tekrar bastan yapın.
    Pcnizden aldığınız kayıt defteri girdisini çalıştırın windows’tan aldığınız dosyaları yükleyeceğiniz pc’ye aynı yolu izleyerek aynı yere kopyalayın bu dosyalar mevcut yazısına tümüne evet deyin.
    Artık programı çalıştırabilirsiniz. Programın exesine tıklayın. Artık hata yapmazsanız uygulama çalışacaktır.
    Dongle Mimarisi
    Dongle kullanan programlar anakarta özgü çalışır, öncelikle anakartın biosunu güncellediğinde dongle yazılımı bilgisayarı başka bir makina gibi algılar. Bunun için dongle kullanan yazılımlarda bios güncellemesine dikkat etmek gerekir. Başka bir özellik de makina üzerindeki PC de bulunan programlardaki simulasyonların çalışabilmesi için dongle kurulmasına ihtiyaç var. Dongle ile olan haberleşmeyi rainbow driver isminde bir program ile yapılıyor. Siz dongle ı satın aldığınızda PC nizde bulunan bir program ile o PC’ye ait bir kod oluşturan programı çalıştırıp çıkan kodu üreticiye gönderiyorsunuz.. Onlarda size programın çalışması için gereken şifreyi. Daha sonra programın tüm özelliklerini kullanabiliyorsunuz. Donglelar, bilgisayarınızda USB noktasına , LPT bağlantı noktasına (veya bazen COM bağlantı noktasına) bağlı küçük kutulardır. Onlar programcılar için görünmez olmalıdır. (aslında% 99’dur).Bu bağlantı noktasına bağlı. Bilgisayarın içine dongle çeşitleri takılmıştır.Fakat benim için dongle’ın tam görünümü önemli değildir. Dongle’ın içinde bir EEPROM veya ASIC veya belki bir ölü bölge vardır. Benim için önemli olan budur. Dongle yalnızca bir kara kutu, uygulamanızdan veri gönderen / gönderen yazılım geliştiricilere dongle ile satılan bir yazılım (dongle API). Uygulama yazarları, API’yi çağırır ve iyi / kötü adam yapmak için geri verilen değerleri kontrol eder atlar.
    En popüler dongle’lar şunlardır:
    – Rainbow Technologies’den (ABD) Sentinel (büyük aile)
    – Aladin’den (İsrail’den) hasp (fena değil)
    – Fest (Almanya’da yapıldı.)
    – Actikey (Fransa) ve onlarca diğerleri …
    Gerekli araçlar her zamanki gibi: IDA, SoftICE, HIEW. Ve tabii ki üreticiye başvurumuz. Hiçbir mantık analizörü, osiloskop, belki de gerçekten istersen LED monitör.
  • 1 * Karşılaştığınız zekayı tanımlayın. Çoğu durumda o kadar da zor değil. Varsa, dongle’a bak. Erişim veya yazılım ile birlikte yüklediğiniz tüm dosyalara bakarsanız, tüm .DLL’lerin, .VXD’lerin vb. telif hakkı başvuru yazarları dışındaki metinler için arama yapın. Neredeyse her durumda çabucak bulursunuz.
  • 2 * Dongle satıcısının www sayfalarından tüm olası bilgileri toplayın. Bu çok önemli bir basamaktır! Tam API, çoğunlukla kaynak, demo yazılım,gelecekteki en büyük programınızla birlikte API nasıl kullanılacağı örnekleri vardır. Hepsi bir araya getirin ve dikkatlice çalışın.Unutmayın: TÜM bilgisayarın donanım / yazılım tedarikçileri Net’tedir ve onları bulun.Dongle güvenliği hakkındaki tüm bilgileri okuduyun. Onlar güvenlidir ve sizi bilgi sahibi yapar.RSA şifrelemesini okuyun, tek yönlü işlevler bakın. Dongle apisinde basit ve karma şekilde soru ve cevap işlemleri vardır. Durum bundan ibarettir. Ama şimdi kimse bu karmaşık karma soru cevap işlemlerini kullanmıyor. Dongle apisinde basit şekilde sadece Kontrol / Seri Numarası / Oku ve / veya bazen Yaz fonksiyonları kullanılmaktadır.
  • 3 * Ayrıca, dongle bayinizden bir değerlendirme dongle edinebilirsiniz. Bedavadır. Ücretsiz değilse, 14 günlük kiralamayı isteyin. İşe yarıyor! Bu dongle satmak istiyorlar. Bu 0-800 veya 0130 numaralarını arayın. Bir şey söylemediğin sürece sana yardım etmek isteyeceklerdir. Korumak istediğiniz yazılım sorulduğunda. Rainbow ve Aladin bayilerinde insanlar son derece yardımcı oluyorlar.
  • 4 * Artık, programı kırmasını ve sahip olduğunuz eklentiyi biliyorsunuz.
    call DONGLE
    or ax, ax
    jz goodguy
    Bazen biraz daha ileri giderler ancak çoğu halde şunu tekrar ederim:
    Ancak zincir, en zayıf halkası kadar güçlüdür. Ve tüm 4 farklı prog’da farklı dongle’larla korunan en zayıf bağlantı arayüzü oldu:
    Uygulama – Dongle API’si (çoğunlukla bir DLL’de bulunur)
    Dongle üreticileri akıllı kişilerdir, verileri nasıl şifreleyeceğini bilirler, kendi kendini değiştiren kod, hata ayıklama önlemeli hile vb. tavsiye ederim: Kodlarını olduğu haliyle bırakın. Uygulama tarafının kırılması çok daha kolaydır.
    Gerçekten kırmış olduğunuz ilk şey, aramayı call fonksiyonunu(nadiren birden fazla) bulmaktır. Dongle API’si, Use IDA veya WDASM kullanın ve Dongle API’sindeki .DLL’in adını hatırlayın ve birkaç dakika sonra (son 2 saat ve 40MB .IDB dosyası!) ona sahip olursun. DLL dosyasındaki cağrıları kırabilmek için çalıştırılabilir dosyaya statik olarak bağlı bir API parçası olmalıdır. Aladdin’deki çalısanlar burada kendi-mod kodunu üretir, bu yüzden hedefimizi biraz daha ilerletmeliyiz.
    QuickCheckIfDonglePresent()
    GetDongleSerialNumber()
    ReadDongleByte( addr ) – or word, or dword, or even full table
    WriteDongleByte( addr, value )
    Belki donglelar adına göre ihraç edilebilir. Belki adı dongle veya benzeri olabilir. IDA’nın verdiği referanslara dikkatle bakın. Kesinlikle onu buluyorsunuz. Yalnızca bir kez çağrılan procsleri bulmalısınız – uygulama veya api arasında bir arayüz olmalıdır. Bir fonksiyona veya işleve iki sarmalayıcı kim yazar?
    Çoğu durumda dongle API’sı çok iyi yapılandırılmıştır, işlev numarası açıkça verilmiştir, 0 – kontrol et, 1 – sayı al (numara), 2 – oku, 3 – yaz, vb … Parametrelerin veya sonuçların nerede olduğunu belirleyin. Ve bu şey yazılımı kırmamıza yardımcı olacaktır. Ayrıca API dokümanlarınada sahibiz! API üreticileri, API’yı maksimum düzeyde kullanıcı dostu yapmak istemektedir. Bu durum yazılımı daha kırılgan hale getirmektedir. API çağrılarını ve sonrasında ‘cmp ax’ ile inceleyerek uygulamanın beklediği şeyin ne olduğunu hızlı bir şekilde bulabiliriz.
  • 5 * Sonra etkin kısım gelir (kısa süreliğine dongle’a ihtiyacınız olabilir) ‘Uygulama –API Arabirimi’ alanlarına bir CC baytı yerleştiren kodu ekleyin.
    SoftICE ile BPINT 3’ü çalıştırın.
    INT 3’ü orijinal baytla değiştirin, sonra BPX’i bu adrese ayarlayın, izleyin …Dongle olup olmaması durumlarında ne olduğunu görebilirsin. Şansın varsa kötü / iyi geçişli bir kontrol noktasını çabucak bulabilirsin. Diğer yönden gitmeye çalışın ve ne olduğunu görün olur (belki uygulamanız çalışmaya başlar).QuickCheckIfDonglePresent işlevini taklit etmek için kodu düzeltin.Sadece proc çağrısını sağlayan bir değeri döndürmeniz yeterlidir.
    Sonra GetSerial # rutini öykünmeye emulate etmeye çalışın. Unutmayın ki dongle seri # numarası olabilir ve #da depolanır. Hakkında kutusuna # görüntülenmesi için kullanılır. IDA’nın size verdiği referansları görün. Tüm dongle’larda GetSerial # proc’u bulunmamaktadır. Bazen seri numarası normal gibi okunur. Dongle’dan gelen veriler sonra da okunmaya başlar. Birkaç bayt okunur, saklandıkları yer ve buradaki tüm referansları bulduğunuzu varsayıyorum. Dongle tarafından etkinleştirilen / devre dışı bırakılan seçeneklerle çeşitli kontroller gerçekleşebilir ve kesinlikle farklı programlarda gerçekleşir.
    Belki de öyledir (önde gelen SCADA programlarından birine gerçek örnek)
    cmp eax, some_value1
    je is_model_1
    cmp eax, some_value2
    je is_model_2
    vb.
    ya da belki öylesine (İsrail programı ile İsrail dongle’la gerçek örneği)
    test eax, mask_1
    jz lab1
    call enable_option_1
    lab1:
    vb.
    ya da belki de (Fransa’da dongle ile Fransa’da yapılmış elektrik mühendisliği araçları)

Dongle’den okunan 12 kelime [ebx] adresinden saklanır;
mov ecx, 12
lab1:
cmp word ptr [ebx], 1
jne lab2
call enable_option(cx)
lab2:
inc ebx
loop lab1
Çalışmakta olan bir dongle’ınız varsa tüm değerlerini okuyun ve sizde emulate de yani öykünmede ne yapacağınızı bilirsiniz. (API okuma işlevi işini tamamladıktan ve notu aldıktan sonra BPX’i ayarlayın). İşte gerçek örnek. Uygulama sizin için işe yaramaz, özgürce mevcut değildir,her yerde bulamazsınız. O halde sizin için hazırladığım disassemblyi inceleyelim.

  • 1 * Bizim dongle fransız Actikey ve DLL CCNMMNT.DLL
  • 2 * Hedefimizin disasseblysi (40 MB) yapar ve .idata bölümüne bakarız.
    Sonuç şaşırtıcı, ancak TÜM referanslar görüntülenene kadar bekliyorum.
  • 3 * Crtl-S ve .idata bölümüne gidin. CCNMMNT.DLL’den dıştan içe aktarılan öğeleri bulun ve o referansa gidin.
    00594510 ; Imports from CCNMMNT.dll
    00594510
    00594510 extrn CCNMM:dword ; DATA XREF: j_CCNMMr
    Sadece bir referans! J_CCNMM ismi IDA tarafından atanmıştır!
    sonra:
    00408770 ; S u b r o u t i n e
    00408770
    00408770 j_CCNMM proc near ; CODE XREF: key_io+6Fp
    00408770 jmp ds:CCNMM ; jump to Dongle DLL
    00408770 j_CCNMM endp
    Key_io ve diğer adlar benden atandı; ihraç edilmedi ?

Bir adım önde gidelim. Bakınız: Sadece bir referans. Yeşil ışık! Bizde
iyi bir yol.
sonra:
0040BA10 key_io proc near ; CODE XREF: main_key_check+8
0040BA10 ; main_key_check+18Cp
0040BA10 ; key_check2+45p
Kontrol ettikten sonra, key_check2’nin yalnızca main_key_check’den çağrıldığını fark ettim,
Dolayısıyla hala burada yalnızca bir referansımız var. Hala dongle API kodunun içindeyiz.
Hadi yukarı gidelim.
0040B840 ; S u b r o u t i n e
0040B840
0040B840 main_key_check proc near ; CODE XREF: key_fun_00+4Dp
0040B840 ; keyfn_18_sernum+68p
0040B840 ; keyfn_02_write+5Bp
0040B840 ; keyfn_03_read+56p
0040B840 ; key_fun_1b+50p
0040B840 ; key_fun_1c+54p
0040B840 ; key_fun_1d+5Cp
Tabii ki, bunun bir API olduğunu ve bizim bir uygulamamız olmadığını nasıl bilebilirim? Hızlı cevap: Funcs 1b, 1c ve 1d çağrılmadı!Hiç çağırılmayan sarıcıları mı yazdığınızı hayal ettiniz? Çünkü onlar dongle yapımcıları tarafından yazıldı ve uygulamayla bağlandı.Aslında keyfn_02_write da çağrılmaz. Bu iyi haber, anahtara daima aynı veriyle yanıt verin. Arayanların isimleri açıklayıcıdır. Onları nereden buldum? Procs’u inceleyerek, hepsi bu, örneğe bakın:
0040A250 keyfn_18_sernum proc near ; CODE XREF: (several)
0040A250
0040A250 arg_0 = dword ptr 8
0040A250
0040A250 push esi
0040A251 call key_fun_00
0040A256 cmp ax, 1
0040A25A jnz short skc110
0040A25C mov ax, 1 ; 1 – error?
0040A260 pop esi
0040A261 retn

0040A262 skc110:
0040A262 mov word ptr ds:key_fun, 18h ; function 18!!!
0040A26B xor eax, eax
0040A26D mov esi, [esp+4+arg_0]
0040A271 mov word ptr ds:key_result_1, magic1
0040A27A mov word ptr ds:key_par3, ax
0040A280 push offset key_par4
0040A285 mov word ptr ds:key_par4, ax
0040A28B push offset key_par3
0040A290 mov word ptr ds:key_par1, magic2
0040A299 mov word ptr ds:key_par2, magic3
0040A2A2 push offset key_par2
0040A2A7 mov [esi], eax
0040A2A9 push offset key_par1
0040A2AE push offset key_result_1
0040A2B3 push offset key_fun
0040A2B8 call main_key_check ; here our call
0040A2BD mov word ptr ds:main_result, ax
0040A2C3 add esp, 18h
….store results…
Sihirli değerler dongle’ı ve ürünü tanımlıyor, bu yüzden onları çıkardım. Onlar bizim crackimiz için önemsizdir.
Ve bu, dongle API’sinin en üstü. Şimdi ne zaman API’nin geri dönmesi beklendiğini tanımlamak gerekiyor. Birkaç ‘cmp ax, something’ ve benim taklit edebildiğim API işlevleri 00 (quick check) and 18 (get serial). Bu işlevleri taklit etmek için HIEW’yi kullanarak kısa bir yama uyguladım. Bundan sonra programın devre dışı bırakılmış tüm seçenekleri çalışmaya başladı.Diğer yandan “cmp ax, something” analizi neredeyse önemsiz oldu. Bu yüzden key_fn_02_read’in kısa bir emülatörünü yazdım ve şimdi proggy nin tüm seçenekleri açıldı.

Sanal Makine – USB Cihaz Kullanimi–Dongle
USB dongle ile lisanslanan yazilimlar veya USB dongle kullanan E-Imza uygulamalari nedeniyle uygulama sorumlulari tarafindan sanal makineye USB stick atama talebi ile karsilasabiliyoruz. Ancak bunun da cozumu cok basit. Birinci yontem, ESXI host ‘a takili olan USB cihazini VM ‘e passthrough özelligi ile atayabilirsiniz. vSphere ESXi 5.0 ile USB Controller’a tanittiginiz bu aygita bagli olan VM’i ayni cluster içerisindeki ESXI host’lar arasinda vMotion ozelligi ile tasiyabilirsiniz. Bu da cok onemli bir ozellik, ancak kapali VM’e USB Controller eklerken bu özelligi aktif etmeniz gerekiyor.

  1. Yöntem: 52/5000ESXi / ESX 4.1, ESXi 5.x ve ESXi 6.x’te USB desteği.
    Amaç;
    ESXi / ESX 4.1, ESXi 5.x ve ESXi 6.x, ESXi / ESX ana bilgisayarından sanal bir makineye USB aygıt passtrosunu desteklemesinin sağlanması. USB cihazı passthrough gereksinimleri ve sınırlamaları. USB denetleyicisi ve USB aygıtı ekleme
    USB cihazı passthrough gereksinimleri:
    Sanal donanım sürümü 7 veya üzeri
    Bir USB denetleyicisi
    USB aygıtı veya aygıt hub’ı
    USB, ext3 veya FAT32 formatında olmalıdır
    VSphere 5.0’ın piyasaya sürülmesiyle, şu anda iki tür USB geçidi var:
    Ana Bilgisayara Bağlı: Bu, vSphere 4.1’den beri mevcuttur ve doğrudan ESXi / ESX ana makinenize takılı bir USB aygıtının sanal bir makineden geçirilmesini sağlar.
    İstemci Bağlantılı: Bu özellik, vSphere 5.0’ın kullanıma sunulmasıyla birlikte sunuldu ve bir kullanıcının iş istasyonuna takılı bir USB aygıtının, vSphere İstemcisi aracılığıyla bir sanal makineden geçirilmesini sağladı.
    Ayrıca, sanal makineleri kullanmak için kullanılabilen iki tür USB denetleyicisi bulunmaktadır:
    EHCI + UHCI denetleyici: USB 2.0 ve USB 1.1 aygıtlarının kullanılmasına izin veren klasik USB denetleyicisidir.
    xHCI denetleyicisi: Bu, daha hızlı USB 3.0 aygıtlarının kullanılmasına izin veren yeni denetleyici türüdür. Bu denetleyiciyi kullanmak için sanal donanım sürümü 8 gereklidir.
    Genel sınırlamalar:
    USB Denetleyicisinin sınırlamaları şunlardır:
    Minimum sanal donanım sürüm 7 gereklidir.
    Her türün yalnızca bir USB denetleyicisi sanal makineye eklenebilir.
    USB arbitratör maksimum 15 USB denetleyicisini izleyebilir. Sisteminiz 15’den fazla denetleyiciyi içeriyorsa ve USB aygıtlarını bu denetleyicilere bağlarsanız, aygıtlar bir sanal makineden geçirilemez.
    USB aygıtı ekleyebilmeniz için sanal bir makineye bir USB denetleyicisi eklemeniz gerekir.
    Denetleyiciyi kaldırmadan önce tüm USB aygıtlarını bir sanal makineden çıkarmalısınız.
    USB aygıtlarının bu sınırlamaları vardır:
    Sanal bir makinede 20’ye kadar USB aygıtı takılı olabilir, ancak her bir benzersiz USB aygıtı aynı anda yalnızca bir sanal makinede takılabilir.
    Desteklenmeyen USB aygıtları, diğer ESXi / ESX özellikleri ile beklendiği gibi etkileşime girmeyebilir. Desteklenen USB aygıtlarının bir listesi için, bkz. ESX veya ESXi sunucusundan sanal bir makineye geçiş için desteklenen USB aygıtı modelleri.
    Bellek, CPU veya PCI aygıtlarını eklemeden önce herhangi bir USB aygıtını kaldırmanız gerekir. Bu kaynakların eklenmesi, USB aygıtlarının bağlantısını keser, bu da veri kaybına neden olabilir.
    Sanal bir makineyi askıya aldığınızda ve devam ettirdiğinizde, USB aygıtları bağlantı kesilmiş gibi davranıp tekrar bağlanır.
    Sanal makine bağlı USB aygıtından önyükleme yapamıyor sorunu;
    Ana Bilgisayara Bağlı USB Geçişi:

Sınırlamalar:
USB 2.0 ve USB 1.1 aygıtlarını destekleyen USB denetleyici donanımı ve modülleri fiziksel ana bilgisayarda bulunmalıdır.
ESXi 5.5 Patch 3’ten önce fiziksel ESXi ana makinelerine bağlı bir USB 3.0 aygıtından yararlanmak mümkün değildir; cihaz göz ardı edilir. (Bunun yerine, istemci tarafından bağlı USB geçidi kullanın.)

İstemciye Bağlı USB Geçişi:
VSphere Client 5.0+, ESXi 5.x / 6.x ana makinelerinde bu tür passthrough’u kullanmanıza izin verir.
Hem EHCI + UHCI hem de xHCI USB denetleyicisi, istemci tarafından bağlı USB geçişi ile uyumludur.
Sınırlamalar:
Bir xHCI denetleyicisi (sanal donanım sürüm 8 ile) kullanan bir USB 3.0 aygıtının geçişi, konuk işletim sisteminin çalışmakta olan bir xHCI sürücüsüne sahip olmasını gerektirir. Misafir işletim sistemine bir sürücü yüklenmemişse, USB 3.0 aygıtlarını kullanamazsınız. USB 3.0 desteği hakkında daha fazla bilgi için VMware vSphere 5.0 Sürüm Notları’na bakın.
Algılanmamış USB aygıtları için, BIOS bu seçenekleri sağlıyorsa xHCI seçeneğini Devre Dışı veya Otomatik olarak ayarlayın. Aksi halde, ayrıntılar için donanım satıcısına başvurun.
Bu çalışmayı yazdığım sırada şu anda Windows için bilinen bir xHCI sürücüsü yoktu.
İstemci tarafındaki USB bağlantısını başlatan vSphere İstemcisini kapatmak, USB aygıtını sanal makineden çıkarır.

Bu tablo, uyumlu yapılandırmaların bir özetini sunar:
Sürüm ESXi / ESX 4.1 ESXi 5.0 ESXi 5.1 ESXi 5.5 ESXi 6.0 ESXi 6.5
USB 2.0 / 1.1 Ana Bilgisayara Bağlı Var Var Var Var Var Var
USB 2.0 / 1.1 İstemci Bağlantılı Yok Var Var Var Var Var
USB 3.0 Ana Bilgisayara Bağlı Yok Yok Yok Var Var Var
USB 3.0 Client Bağlantılı Yok Var (xHCI sürücüsü ile) Var (xHCI sürücüsü ile) Var (xHCI sürücüsü ile) Var (xHCI sürücüsü ile) Var (xHCI sürücüsü ile)
ESXi 5.x / 6.x ana makinelerinde xHCI modülünü etkinleştirme
Bir SSH oturumu ile ana bilgisayara bağlanın. Daha fazla bilgi için bkz. Bir ESX ana bilgisayarında kök SSH oturum açmayı etkinleştirme (caglararli.com.tr).
XHCI modülünü etkinleştirmek için aşağıdaki komutları çalıştırın:

esxcfg-modülü -e xhci
echo “vmkload_mod xhci” >> /etc/rc.local.d/local.sh
USB denetleyicisi ve USB aygıtı ekleme
Windows çalıştıran sanal bir makineye bir USB denetleyicisi eklemek için:
Sanal makineyi sağ tıklatın ve Ayarları Düzenle’yi tıklatın.
Ekle’yi tıklayın.
USB Denetleyicisi’ni tıklatın ve İleri’yi tıklatın.
Tamam’ı tıklayın.
Ana Bilgisayar Bağlantılı USB aygıtı eklemek için:
Sanal makineyi sağ tıklatın ve Ayarları Düzenle’yi tıklatın.
Ekle’yi tıklayın.
İstediğiniz USB aygıtını tıklayın ve İleri’yi tıklayın.
Tamam’ı tıklayın.

Not: Ana Makineye Bağlı cihazlar için vMotion’u desteklemek için Cihaz bağlıyken Destek vMotion’u seçin. Daha fazla bilgi için http://www.caglararli.com.tr bakın.
İstemci Bağlantılı bir USB cihazı eklemek için:
Sanal makineyi vSphere Client’ı (5.0 veya daha yenisi) kullanarak tıklatın (veya konsolu açın).
VSphere Client araç çubuğunda, USB aygıtlarını sanal makineye bağlamak / bağlantısını kesmek için simgeyi (anahtarlı bir USB aygıtına benzer) tıklatın.
Bağlanmak istediğiniz USB cihazını seçin.
Tamam’ı tıklayın.
Not: vMotion, İstemci-Bağlı USB aygıtları için varsayılan olarak desteklenir.

  1. yöntem ise Anywhere USB kullanmak. Yaptigim bir projede birden fazla USB dongle kullanmam gerektigi için asagidaki cihaz ile sorunu cozmustum. Uzun sure oldu hala calisiyor. Bu cihazin yaptigi is ise; USB over IP.
    AnywhereUSB cihazini aldiktan sonra ethernet portundan network’e baglayip, cihazin web arayüzünden ayarlarini yapiyorsunuz. Cihaza USB aygitinizi takip, bu USB aygitini kullanacak sanal makineye (Windows) AnywhereUSB ile birlikte gelen driver’i yukluyorsunuz. Bu driver VM’in AnywhereUSB cihazini network’te bulmasini ve onun uzerindeki USB cihazina erismesini sagliyor. Yani VM bu USB cihazinin kendine takiliymis gibi goruyor. Halbuki o network’te bir yerde takili.
    Ben 5 USB cihazi baglayabildigim modelini yurtdisindan getirtmistim. Sitesinde de gorebileceginiz uzere daha buyuk modeli de var.
    Ortaminizda birden fazla USB dongle kullanilacaksa sanirim en iyi yontem Anywhere USB, ama bir yada iki USB dongle isinizi goruyorsa yukarida bahsettigim gibi cluster ortaminda bir ESXI host’a takip, USB controller ile VM’e assign edip, “Support vMotion while device is connected” secegini secip, kullanabilirsiniz. Bu secenek sayesinde VM’i cluster icerisinde diger ESXi hostlar arasindan vMotion ile tasiyabilirsiniz. Belli bir sure bu ozelligi de vSphere 5.1 ortaminda kullandim. Gayet iyi calisiyor.