Dongle İleri Teknolojisi Ve Tersinir Mühendislik Mimarisi

SafeNET Microdog

Genel Bakış

SafeNET Microdog (orijinal olarak RainbowChina’ya aittir), düşük maliyeti ve çok çeşitli platformlar arası uyumluluğu nedeniyle tarihsel olarak popüler olan USB / Paralel tabanlı bir donanım güvenlik modülüdür.

Özellikleri

  • Flash bellek 200 bayt oku / yaz
  • Parola korumasıyla Erişim Kontrolü
  • Temel gizleme ve hata ayıklama önleme özelliklerini içeren istemci kitaplığı
  • Benzersiz üretici seri numarası
  • Bir yazılım paketini belirli bir dongle çalıştırma ile bağlamak için Satıcı Kimliği
  • Gömülü kripto işlemci
  • Sırayla birden fazla dongle kullanımı desteği (kademeli)

Bileşenler

  1. Dongle’ın kendisi, sürücü / daemon’dan HID aracılığıyla özel bir protokol aracılığıyla erişilen bir şifreleme işlemcisi içerir.
  2. Sürücü / arka plan programı, herhangi bir istemci kitaplığı çağrıları ile donanım arayüzü arasında bir aracıdır. Belirli bir platform verilen tüm revizyonlar için bu katman değişmez.
  3. İstemci kitaplığı, belirli bir kullanıcı alanı sürecinin bir kripto talebini gerçekleştirmek için etkileşime girdiği en uzak soyut katmandır. Microdog, bu istemci kitaplığının iki ana revizyonundan yararlandı.a. 3.4 revizyonu, işlemleri gerçekleştirmek için ioctl / DeviceIoControl aracılığıyla doğrudan sürücü erişimi gerektirir. Linux için bu, çekirdek modülüyle iletişim anlamına geliyordu – benzer şekilde Windows bir sürücü kullanıyor.b. Revizyon 4.0, platform uyumluluğu amacıyla, bu çekirdek modülünü kaldırdı ve yalnızca bir kullanıcı alanı arka plan programı ve soketler üzerinden IPC aracılığıyla açığa çıkan doğrudan HID çağrılarında çalışır. Bununla birlikte, Windows’un bu revizyon için hala bir sürücü kullandığına dikkat edilmelidir.

Sürücüye giden paketlerin protokolünün aynı olduğuna dikkat edilmelidir; revizyondan bağımsız olarak.

İstemci Kitaplığını hacklemek

Arka fon

İstemci kitaplığı, bir geliştirici için birincil etkileşim noktasıdır.

SafeNET, bir başlık dosyası (gsmh.h) ve bir statik kitaplık (örn. Mhwin.lib / mhlinux.o) sağlar. Kitaplık, dongle’ın geliştirici şifresini değiştirmek, dongle’ın flash alanına yazmak, üretici seri numarasını almak, dongle’ın Satıcı Kimliğini almak veya herhangi bir bayt akışını 4 bayt yanıtına dönüştürmek için bazı yönetimsel ve kullanıcı tabanlı işlevleri ortaya çıkarır (DogConvert ) bazı yonga üzerinde kara kutu algoritması ve geliştirici tarafından tanımlanan tohum üretiminden yararlanan güvenli bir karma işlem yoluyla.

Sonuç olarak, DogConvert, gizleme için veya genişletilmiş bir şifreleme işlevine ilkel olarak kullanılan birincil işlevdir. Elbette kendi başına 32 bitlik bir değer oldukça zayıftır. Sonuç olarak, bu işlev kendi başına kullanılmak üzere tasarlanmamıştır.

Sürüm 4.0

Normal çalışma sayesinde, istemci kitaplığının her kopyası belirli bir satıcı kimliği ve dongle satırına bağlanır. Sonuç olarak, bir istemci kitaplığı, aynı satıcı hattına ait bir donanım kilidi olmadan tam olarak çalışmayacaktır.

Sonuç olarak, yapılacak ilk şey, belirli bir istemci kitaplığının diğerinden ne kadar farklı olduğunu belirlemek olacaktır. İkisini karşılaştırmak, tek fark olarak aşağıdaki bloğu verir:

Şeritlenmemiş varyantlarda buna Veri Havuzu denir – dongle (Satıcı Kimliği, dahili kimlikler, vb.) Hakkında şifrelenmiş meta veriler içerir. Bu verileri doğru konumdaki bir program üzerine kopyalayarak (bu bloğu belirli bir ikili dosyada bulmak oldukça kolaydır), hedef alternatif dongle ile iletişim kurmalıdır. Bununla birlikte, DogConvert’ın, yapılandırılabilir bir baytın hangi tohumun kullanılacağına karar verdiği bir değerler tablosundan alınan hash ile aynı yanıtı vermeyeceği unutulmamalıdır.

Bazı durumlarda, bir uygulama yalnızca bir API çağrısı aracılığıyla dongle’ın varlığını kontrol edebilir. Bu durumda, DataPool’u değiştirmek, bir kişinin belirli bir donanım kilidini kullanmasına ve belirli bir yazılım parçası için gerçek bir donanım kilidinin varlığını yanıltmasına izin verebilir.

Bunu kopyalamak ilginç değil, ancak … aslında bloğun şifresini çözelim ve ne olduğunu görelim:

Not olarak, mhlinux.o (linux statik kitaplıkları) genellikle bu bloğun anahtarını 0xB500’e koyar.

Tüm blok 112 baytlık bir dizidir: 000-> 016 (iv) 016-> 096 (şifreli metin) 096-> 112 (anahtar)

Şifreli metin Rijndael bloğu şifrelenmiştir (128 bit blok boyutu) – şifresini çözmek birkaç alan verir, ancak en çok ilgilendiğimiz şey satıcı kimliği (DogID olarak da bilinir):

Bu DogID değerinin (örnekte 0xF9BDE), yeni bir dongle desteğiyle bir kitaplığı hızlı bir şekilde yeniden paketlemek için kullanılabilecek cihaz tanımlayıcısı aracılığıyla alınabileceği de not edilmelidir.

Sürüm 3.4

Eski istemci kitaplığı, AES veya herhangi bir karma kullanmayan Dongle Serisini ve kimliğini gizlemek için farklı bir yöntem kullandı.

Bu durumda “DataPool”, “NEIWAIJM” ile başlar. Bundan çok sonra, “PickupDogID” ve “PickupSerialNo” fonksiyonları tarafından referans verilen iki bloğumuz var. Bloklar sırasıyla 48 bayt ve 96 bayttır.

Bu gizlemenin arkasındaki … algoritma nispeten basittir.

Temelde, bloklar 12 baytlık dizilere ayrılır. Her sıra okundukça, ya mevcut değerden çıkarılır, eklenir ya da bir döngüde XORlanır.

Get_serial için:

  • bayt 0,3,6,9 eklenir
  • bayt 1,4,7,10 çıkarılır
  • bayt 2,5,8,11 XORed

Get_dog_id için:

  • bayt 0,3,6,9 eklenir
  • bayt 1,4,7,10 XOR’dur
  • bayt 2,5,8,11 çıkarılır

def get_serial(indata):
out = bytearray(4)
v3 = 0
for i in range(0,4):
out[i] = 0
for j in range(0,12):
v2 = j % 3
if(j % 3 == 1):
out[i] = (out[i] – indata[v3]) & 0xFF
v3 +=1
elif(v2 > 1):
if(v2 == 2):
out[i] ^= indata[v3]
v3 +=1
elif(v2 == 0):
out[i] = ( out[i] + indata[v3]) & 0xFF
v3 +=1
return out

def get_dog_id(indata):
out = bytearray(8)
v3 = 0
for i in range(0,8):
out[i] = 0
for j in range(0,12):
v2 = j % 3
if(j % 3 == 1):
out[i] ^= indata[v3]
v3 +=1
elif(v2 > 1):
if(v2 == 2):
out[i] = (out[i] – indata[v3]) & 0xFF
v3 +=1
elif(v2 == 0):
out[i] = ( out[i] + indata[v3]) & 0xFF
v3 +=1
return out

Nasıl yeniden paketleriz?

Bu algoritmayı tersine çevirebiliriz, ancak algoritmanın kendisi doğası gereği zayıftır …

Şunu bir düşünün: Toplama, Çıkarma veya XOR 0 yaptığınızda ne olur? Bu doğru, hiçbir şey !!!

Teknik olarak, 8 baytlık bir DogID ve 4 baytlık bir seri alabilir, baytları bölebilir ve her 12 bayt satırın başına bir tane yapıştırabilirdik ve işe yarardı! Bunun gibi bir şey:

def enc_vals(indata):
out = bytearray(len(indata) * 12)
for i in range(0,len(indata)):
out[i*12] = indata[i]
return out

3.4 İstemci Kitaplığını taklit etme

Bir şeyi bir dereceye kadar doğrulukla taklit etmek için önce ne olduğunu ve ne yaptığını anlamalıyız. Bu durumda:

  • Hata ayıklamadan önce kütüphane hakkında elimizden gelen her şeyi öğrenmek istiyoruz.
  • İsteğe bağlı olarak gerçek bir dongle ile değiştirilmiş bir istemci kitaplığı çalıştırmak istiyoruz (eğer varsa) ve bazı işlem sonucu veri örnekleri dahil olmak üzere gerçekte nasıl çalışması gerektiğine dair bazı veriler toplamak istiyoruz.
  • Tersine çevrilmiş işlevselliğimizi daha iyi anlamamıza yardımcı olacak her türlü dokümantasyonu bulmak istiyoruz.
  • Sürücünün kendisini taklit etmek istiyoruz – istemci lib’nin tüm işlemleri gerçekleştirdiği uç nokta.
  • Ayrıca, sürücüdeki sözde dongle işlevselliğini, muhtemelen en karmaşık kısım olacak gerçek donanımla konuşuyormuş gibi davranacak şekilde yeniden oluşturmak istiyoruz.

Genel tasarım

Çoğu durumda, istemci kitaplığı şeritlenmemiş ve karıştırılmamış. Sonuç olarak, işlevler ve bazı statik değerler orijinal adlarını koruyacaktır.

Şimdi, buna saldırmanın birkaç yolu var, biz de şunları yapabiliriz:

A. Dışa aktarım tablosuna bakın, arayüzlerin haritasını çıkarın ve kendimiz bir başlık bulun.

B. Tamamen çevrimiçi olan geliştirici belgelerini araştırın.

Sorunu kurtarmak için, aradığımız şey budur (süper sözcüklerle ifade edilmiştir):

[Globals]

1.unsigned short DogAddr

200 baytlık dahili flash belleğin adresi bir okuma / yazma işlemi başlamalıdır.

2.unsigned short DogBytes

DogData’daki bayt sayısı – okuyor / yazıyorsa, 200-DogAddr’yi geçemez. Normalde 0-200 arasındadır, ancak DogConvert () işlemleri yalnızca 1-63’e izin verir.

3.unsigned long DogPassword

Yeni bir parola ayarlama, flash bellek okuma veya yazma gibi bazı işlevlerin çalışması için bir parola gerekir. Parola fabrikadan 0x00000000’dür.

4.unsigned long NewPassword

Yalnızca SetPassword () ile yeni bir parola ayarlamak için kullanılan bir arabellek

5.unsigned long DogResult

DogConvert () sonuçlarının depolandığı bir arabellek.

6.unsigned char DogCascade

LPT Mikro Günlükleri için, maksimum 16 ile zincirleme bağlanabilirler. Bu değer (0-15) bir dizin numarası tutar, böylece kitaplık hangisinden bahsettiğinizi bilir. Bu her zaman USB için 0x00 olarak ayarlanmıştır.

7.void *DogData

Verileri dönüştürmek veya flash belleğe / bellekten veri okumak / yazmak için kullanılabilen bir arabellek.

[Dışa Aktarılan İşlevler]

1.DogCheck()

1. Köpek Kontrolü () Okur: DogCascade Yazıyor: Yok Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Tanım: Kısacası, bu sürücüye dongle ile konuşup konuşamayacağını sorar. Çok güvenli olmasa da basit bir isDonglePresent () denetimi için kullanışlıdır.

2.ReadDog()

2. ReadDog () Okur: DogCascade, DogAddr, DogBytes, DogData, DogPassword Yazıyor: DogData Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: n’nin DogBytes ve y’nin DogAddr olduğu y’den başlayarak 200 bayt flash bellek alanından n bayt okur. Düzgün çalışması için Dongle şifresi gereklidir.

3.WriteDog()

3.WriteDog () Okur: DogCascade, DogAddr, DogBytes, DogData, DogPassword Yazıyor: Yok Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: n’nin DogBytes ve y’nin DogAddr olduğu y’den başlayarak 200 bayt flash bellek alanına n bayt yazar. Dongle şifresinin düzgün çalışması için gereklidir.

4.DogConvert()

4. DogConvert () Okur: DogCascade, DogBytes, DogData Yazıyor: DogResult Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: DogData’da 1-63 baytlık tamponu alın ve seçilen mevcut algoritmaya bağlı olarak 4 baytlık bir veri hashini döndürdüğü dongle’a gönderin. 200 baytlık dahili flaş belleğin son 4 baytı algoritmayı belirler; Bayt 196, algoritmaya karar verir ve baytlar 197, 198 ve 199, algoritma tanımlayıcısına karar verir. Sonuç olarak, 16.777.216 olası algoritma mevcuttur.

5.DisableShare()

5. Paylaşımı Devre Dışı Bırak () Okur: DogCascade Yazıyor: Yok Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: Bir dongle’ın paralel bağlantı noktası paylaşım çözümleri arasında paylaşılma özelliğini devre dışı bırakır … yalnızca paralel bağlantı noktası donanım kilitleri için kullanılır.

6.GetCurrentNo()

6.GetCurrentNo () Okur: DogCascade, DogData Yazıyor: DogData Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: Donanım kilidinden benzersiz bir üretici seri numarasını okuyun. Satıcı kimliğinden farklı olarak, bu her zaman TEK bir özel dongle’a özgüdür. Müşterileri vb. Tanımlamak için kullanışlıdır ve normalde 4 bayt.

7.SetPassword()

7. SetPassword () Okur: DogCascade, DogPassword, NewPassword Yazıyor: Yok Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: Yeni bir dongle şifresi belirler.

8.SetDogCascade()

8. SetDogCascade () Okur: DogCascade, DogPassword, DogData Yazıyor: Yok Başarı durumunda 0 döndürür, aksi takdirde hata kodu döner. Açıklama: Dongle kademesini, DogData’daki bayta göre belirlenen 0-15’e ayarlar.

[İstemci Kitaplığı için Dahili İşlevler]

Aşağıdaki işlevler kitaplıkta mevcuttur, ancak yalnızca dahili olarak kullanılır.

  1. EnableShare () Takılan donanım kilidinin kullanılmamasını ve programımızla paylaşılabilmesini sağlamak için herhangi bir DogConvert işleminden önce çağrılır.
  2. ProcessInput () Bu, sürücünün ihtiyaç duyduğu işlem kodunu belirleyen şeydir, böylece dongle’ın kendisi ne yapacağını bilir, ayrıca dongle’a 200 bayttan fazla göndermeye çalışmadığımızdan emin olmak için kontroller yapar (istemci tarafı giriş doğrulaması) ve temel olarak, küresel değişkenlerin akıl sağlığı kontrol edildiğini ve devam etmeden önce mantıklı olduğu.
  3. ProcessOutput () 0 döndüren bir saplama – amaç yok.
  4. ProtectEntry () Küresellerimizi bir paket yürütmek üzere gizlemenin her adımında hangi sırayı belirler. Ayrıca, dongle’ın doğru şekilde mi yoksa hiç yanıt verdiğini ve ardından globalleri geçerli verilere göre doldurduğunu belirlemek için yanıtımıza yönelik tüm denetim kodunu içerir. Buna daha sonra bakmak çok önemli olacak.
  5. PickupDogID () Önceki blog gönderisinden bu, istemci kütüphanesinden gelen 8 baytlık kimliğin şifresini çözer ve onu bellekte tutar, nedenini daha sonra göreceksiniz.
  6. PickupSerialNo () Önceki blog gönderisinden bu, istemci kütüphanesinden 4 baytlık DogSerial’ın şifresini çözer ve sürücüye göndermek için saklar. Buradaki fikir, serinin, sürücümüzün USB aygıt tanımlayıcısını aradığında ve onu istediğinde bulduğu seri ile eşleşmesi gerektiğidir, ancak ben kendimin önüne geçiyorum.
  7. PlatformEntry0-9 () Cehennemin on adımı (işlevleri) – esasen insanlarla sevişmek için bir labirent. Sonunda, tersine çevrilmemiş HİÇBİR ŞEY değiştirilmez. Bunu insanları kızdırmak için yaptılar. Platform girişi 9 en ilginç olanıdır, çünkü aslında verilerin şifrelenmesini ve dongle sürücüsüne bir paket biçiminde gönderilmesini çağıran noktadır … Bu seride GERÇEKTEN her şeyi yapan tek işlev budur.
  8. ResetDriverData () Dongle sürücüsünden bir yanıt geldiğinde, şifresinin çözülmesi gerekir … Bunu yapan şey budur.
  9. InitializeDriverInData () Tersine mühendislerin canını sıkmak için tüm küresel değişkenlerimizi bir kod tasarımı labirenti boyunca ilerleten bir olaylar zinciri başlatır. Ayrıca rasgele bir sayı oluşturur, bu sayıya 0x646C6F47 ekler ve ilk 8 bayttan sonra paketteki tüm verileri bir kayan anahtar olarak XOR’tur.

10. GetMaskKey () Çekirdek maske anahtarını alın ve ona 0x646C6F47 (veya ‘dloG) ekleyin.

11.GenerateRand () Günün saatini alın ve bunu bir tohum maskesi anahtarı olarak döndürün.

12.LinuxDriverEntry () / dev / mhdog’a bir dosya tanımlayıcı açın, 8 baytlık bir argümanla bir 0x6B00 ioctl çağrısı yapın (bellek, bir istek paket arabelleğine ve bir yanıt paketi arabelleğine kaydırmalar).

13.LinuxUSBDriverEntry () / dev / usbdog için bir dosya tanımlayıcı açın, ardından LinuxDriverEntry () ile aynı akışı izleyin.

30.000 fitten, içinde bir yerde aşağıdaki verileri içeren bir cihazımız var:

  • 200 bayt flash bellek
  • 4 bayt Satıcı Kimliği Vendor ID (DogSerial)
  • 8 bayt DogID
  • 4 bayt Üretici Kimliği Manufacturer ID
  • 4 bayt DogPassword
  • 1 bayt DogCascade
  • 1 baytlık DogShare

Sadece bu bilgilerle, dongle’ın dahili bellek gereksinimlerini soyutlayarak emülatörümüzü oluşturmaya başlayabiliriz.

//Even though the last two values are byte, I’m super lazy and don’t want to deal //with alignment issues later.

struct MicroDog_Memory{
unsigned int vendor_id;
unsigned char dog_id[8];
unsigned int mfg_serial;
unsigned int dog_password;
unsigned int dog_cascade;
unsigned int dog_share;
};

//We also know that every DogConvert request is going to deal with a 4 byte response and 1-63 bytes of data based on DogBytes.

struct MicroDog_Convert_Tx{
unsigned int DogResponse;
unsigned int DogBytes;
//yes, this should be a short. unsigned char DogRequest[64];
};

İstemci kitaplığı elimizdeyken, hedefimiz artık istemci kitaplığını kendi kodumuzla konuşturmaya kayıyor. Dışa aktarılan her işlemle başlayalım, dongle istemci kitaplığının bunu nasıl işlediğine ve ardından sürücüye neyin gönderildiğine bakalım.

DogCheck

Buradan başlamak için iyi bir yer, örnek bir program oluşturmak ve onu istemci kütüphanemizle bağlamaktır.

include

include “gsmh.h”

int main(){
int errcode = DogCheck();
if(errcode){
printf(“Fail! Errcode :%d \n”, errcode);
return -1;
}
printf(“Success!\n”);
return 0;

Tamam, oldukça basit – dongle’a bir çağrı yapıyoruz ve varsa sıfır, yoksa 1 döndürüyor. İstemci kitaplığında ne yapar?

return ProtectEntry(1, (int)ProcessInput, (int)ProcessOutput);

Yani ProtectEntry 3 parametre alır: 1. İşlem kodu ile ilişkili bir sayı (1 DogCheck) 2. ProcessInput’un sonucu (bir hata kodu) 3. ProcessOutput’un sonucu her zaman 0’dır çünkü hepsi bu kadar.

Yukarıdaki notları okumak size her bir işlevin ne yaptığını söyleyecektir, ancak yığın izleme DogCheck’in yolunun şu şekilde göründüğünü gösterecektir:

DogCheck->ProcessInput()->ProcessOutput()->ProtectEntry()-> PlatformEntry0-8 (in calculated pseudorandom order) -> PlatformEntry9->InitializeDriverInData()->LinuxDriverEntry/LinuxUsbDriverEntry()->PlatformEntry9->P rotectEntry()->ResetDriverData()

Tüm platformEntry0-8 zırvalarını atlayarak ve baytları değiştirerek, sürücüye göndermek için globallerden istek paketimizi oluşturan PlatformEntry9’a geliyoruz.

InitializeDriverInData, sürücüye gönderilen istek paketini oluşturmaktan sorumludur. İşte bir şekilde yeniden yapılandırılmış gibi görünüyor:

Kısacası bu, paketimizi ProcessInput () ile oluşturulan başka bir veri yapısından oluşturmaktır. İşleri biraz daha okunaklı hale getirmek için IDA’da yapıyı oluşturdum:

struct_request_buffer {
_WORD magic; // 0x484D
_WORD opcode; // Depends on what we’re doing – for DogCheck, this would be 0x01
_DWORD VendorID; // Our vendor ID from the library.
_DWORD MaskKey; // Pseudo-random number used as an IV to encrypt the packet.
_WORD DogAddr; // Our dog address (used for read/write) _WORD DogBytes; // Number of bytes to read/write
_BYTE DogData[256]; // Our payload… why 256? Why anything.
_DWORD DogPassword; // Because this is where we put that. _BYTE DogCascade; // The cascade value.
};

Sürücü açısından en çok ilgilendiğimiz kısım:

Bu adam sihrin gerçekleştiği yer. Kernel modülümüze ioctl aracılığıyla iki işaretçi gönderiyoruz.

İlk işaretçi 277 (280’e hizalı) bayta ‘paket’ isteğimiz olarak gider. İkinci işaretçi, programın sürücünün yanıt ‘paketini’ yazmasını beklediği yerde 268 baytlık bir bloğa gider.

Paketleri boşaltmak ve incelemek için Linux’ta basit bir ioctl kancası oluşturacağız – programın verilerin kullanıcı alanından çıkmasına izin vermesini önleyeceğiz.

/* The Hook */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dlfcn.h>#define MICRODOG_XACT 0x6B00 //Globalsstatic void *io;static void (*realIOCTL)(int fd, int request, unsigned long data); typedef struct request_packet{ unsigned short magic; unsigned short opcode; unsigned int dog_serial; unsigned int mask_key; unsigned short dog_addr; unsigned short dog_bytes; unsigned char payload[256]; unsigned int dog_password; unsigned char dog_cascade;}; //Setting our real ioctl function.void __attribute__((constructor)) initialize(void) { io = dlopen(“libc.so.6”, RTLD_NOW); realIOCTL = dlsym(io, “ioctl”); } int ioctl(int fd, int request, unsigned long* data){ if(request == MICRODOG_XACT){ /* DO SOMETHING ALREADY */ return 0; } //Any other ioctl we don’t care about. realIOCTL(fd,request,data); }

/* The Hook */

include

include

include

include

define MICRODOG_XACT 0x6B00

//Globals
static void io; static void (realIOCTL)(int fd, int request, unsigned long data);

typedef struct request_packet{
unsigned short magic;
unsigned short opcode;
unsigned int dog_serial;
unsigned int mask_key;
unsigned short dog_addr;
unsigned short dog_bytes;
unsigned char payload[256];
unsigned int dog_password;
unsigned char dog_cascade;
};

//Setting our real ioctl function.
void attribute((constructor)) initialize(void) {
io = dlopen(“libc.so.6”, RTLD_NOW);
realIOCTL = dlsym(io, “ioctl”);
}

int ioctl(int fd, int request, unsigned long* data){
if(request == MICRODOG_XACT){ /* DO SOMETHING ALREADY */ return 0;
}
//Any other ioctl we don’t care about. realIOCTL(fd,request,data);
}

Hedef uygulamamızı çalıştırmak bu kütüphaneye bağlı ve:

RetCode is 20019
DogResult is 0000

Oooooook … bu belirli hata kodu hiçbir yerde belgelenmemiştir, ancak bunun özel ioctl setine sahip bir çekirdek modülünü sonlandırmayı beklediğini hatırlarsanız anlamak nispeten kolaydır. Çekirdek geri gelir ve ‘gerçekten, / dev / usbdog sadece bir dosyadır, bir chardev dosyası değildir ve sizinle konuşacak bir modül yüklü değildir’ derse, bu hata atılır.

Hızlı bir çekirdek modülü yapmak, RetCode’un başka bir belgelenmemiş kod olan 43210’a değişmesine neden olacaktır, ancak şu anda çok fazla şeyin olmasını bekleyemeyiz. Sonuçta, biz bile değildir yapıyor bir şey.

Bir sonraki adım, bir istek paketini boşaltmak ve ne olduğunu görmek. Bir DogCheck () paketini boşaltmak bize şunu sağlar:

Bir şeyler henüz doğru değil … Oh evet! Hala InitializeDriverInData’yı tersine çevirmemiz gerekiyor.

Temelde, DogAddr’den başlayarak paketin sonuna kadar her bir değeri alırız ve her bir değeri anahtarımıza karşı XOR (mask_key + 0x646C6F47) bu bize şunu verir:

Tüm değerler karışmış durumda, işlem kodu 0x14’tür ki … kütüphanemizde bile yok … bu nasıl olabilir !? ne s … k .. M şey oluyo burda? Şoföre bakana kadar bunu beklemeye alalım.

Hafif Sapma – Sürücünün Şifre Çözme İsteği

Chardev kullanan herhangi bir kmod gibi, ioctl kullanırsak dosya işlemlerinden başka genişletilmiş işlemlere sahip olabiliriz.

Sürücü için izimiz (2.4 redhat için olduğu gibi çalıştırabilirsek) şöyle görünecektir:

ioctl_usbdog0->DecodeInParam()->UsbDendOutputData->UsbRecvInputData->USBAKernelEntry()-> EncodeOutParam()

İstek tamponumuzu çeker, şifresini çözer, verileri doğrular, başlangıçta dongle’a giriş yapmak için bazı kısımlarını kullanır ve bazı şeyler yapar, bazı şeyler ayarlar, şeyleri dönüştürür, her neyse.

Ardından, dongle’dan yanıt alıyoruz, bir yanıt paketi oluşturuyoruz, bunu anahtarımızla (istek paketiyle aynı) kodluyoruz ve ardından yanıtı programımızın belleğindeki bir tampona kopyalıyoruz … bitti!

Paketi incelemeden önce şifresinin çözülmesi gerekir. Paketin nasıl şifrelendiğini zaten bilmemize rağmen (InitializeDriverInData), emin olmak için sürücümüze (usbdog.o) da bakabiliriz.

Kod çözme, zaman tohumlamalı bir mask_key’den yararlanır, statik bir değer ekler, ardından girdi paketini ona karşı xorlar.

Artık paketin doğru bir şekilde çözüldüğünü doğrulayabiliriz … o zaman opcode 0x14 nedir? Ne istiyor 0x43210 hata kodu ne anlama geliyor?

İstemci Kitaplığına Geri Dön

İstemci kitaplığında hata kodunu aramak aşağıdaki sonucu verir:

Eh, bu ilginç! Yukarıdaki mantık, paket alındıktan ve şifresi çözüldükten sonra yürütülür; bu, sorunun, talep yükümüzle ilgili bir şey olduğu anlamına gelir.

8 baytlık bir döngüdeki bir şey, IdBuffer_0 genel adıyla 8 baytlık başka bir tamponla eşleşmezse, bu bir hata durumuna benziyor. bu değerin ardından, mantığın satıcı kimliğine başvurduğu ortaya çıkar.

Bu işlem kodu (0x14) o zaman bir tür “oturum açma” işlevidir – bir oturum açma talep eder, dongle 8 baytlık satıcı kimliğini geri gönderir ve sonra istemci kitaplığında eşleşirse kontrol edilir … eşleşme yok, gitme yok.

Bu dahili bir işlev olduğundan, hata kodunu belgelemekle uğraşmadıkları mantıklıdır. Bu komutu sürücüde işlediği yeri daha sonra ele alacağız. Şimdilik, bir hata ayıklayıcı ile epeyce geçiş yaptıktan sonra, GERÇEKTEN olan şeyin bu olduğunu kabul edin.

Bu, dongle satıcı kimliğini yük olarak geri göndermek için öykünücümüzde opcode 0x14 için ek bir işleyiciye ihtiyacımız olduğu anlamına gelir. gözden geçirmek için şu ana kadar desteklememiz gereken tüm işlem kodları şunlardır:

0x01 – DogCheck()

0x02 – ReadDog()

0x03 – WriteDog()

0x04 – DogConvert()

0x0B – GetCurrentNo()

0x14 – Login NEW

0x15 – SetDogCascade

0x64 – DisableShare()

0x65 – EnableShare()

Tamam, şimdi yanıt paketini bulmalıyız … Yanıt paketi şu şekilde başlatılır:

typedef struct response_packet{
unsigned int dog_serial;
unsigned int return_code;
unsigned char payload[256];
};

Aslında, istek paketi bellek adresinin her zaman SAĞ üzerinde olması nedeniyle başka bir şeye sahip olamaz.

Return_code değeri her zaman sıfır olmalıdır … Aksi takdirde, istemci kitaplığı, içerisindeki sayıyı döndürür … Bu, istemci kütüphanesinin kendisiyle aynı hata işlemesidir, ancak sürücüde tek tiptir.

Yanıtta 8 bayt vendor_id değerimiz ile bir paket oluşturduktan, yükü (DogData) şifreledikten, return_code’u 0’a ayarladıktan, dog_serial’imizi ayarladıktan ve belleğe yazdıktan sonra programımız bize başka bir paket verir.

Tamam – şimdi bir yere varıyoruz! Bu, DogCheck olan 0x1 opcode’dur … şimdi açıklamamız, dog_check’in dönüş değeri olarak dongle varsa, verileri veya herhangi bir şeyi kullanmaması durumunda 0 döndürdüğünü söylüyor … değer ve istemci lib bunu kabul edecektir. Test etmek için buna benzer bir şey yapacağız:

Bir test çalıştırmak, işlemi şimdi tamamlayabileceğimizi gösteriyor:

Artık köpek kontrolümüz var, gerisini halledelim!

  • X 0x01 – DogCheck()
  • 0x02 – ReadDog()
  • 0x03 – WriteDog()
  • 0x04 – DogConvert()
  • 0x0B – GetCurrentNo()
  • 0x14 – Login NEW
  • 0x15 – SetDogCascade
  • 0x64 – DisableShare()
  • 0x65 – EnableShare()

ReadDog / WriteDog()

Şimdilik, ioctl sarmalayıcımızda 200 baytlık bir tampon oluşturalım ve DogAddr’den başlayarak DogBytes’i alıp yük olarak geri gönderelim:

Tamam, okumak işe yarıyor – elbette, statik bir tamponla yazmak işe yaramayacak, bunu daha sonra düzelteceğiz.

Şimdi, bir şekilde tamamlanmak için çekim yaptığımız için … şifremizi bir değere karşı kontrol etmeye ne dersiniz …

Şifre yanlışsa dongle’dan geri atılan hata kodu 10053 olur – sonuç olarak bu dongle için şifremizi şu şekilde ayarlayalım:

unsigned int dog_pass = 0xBADF00D;

ve sonra arabelleği kopyalamak yerine eşleşmezse 10053 döndürür.

Yazma benzerdir, ancak aynı kontroller ve bölgeye yazı yazma da aynıdır.

DogConvert()

Paketi atıyoruz ve alıyoruz.

Bir dakika bekle!? Opcode 0x08?!? Bu olmamalı … wtf bu mu ?!

Belgelenmemiş başka bir işlem kodumuz var gibi görünüyor. Sürücüde paylaşım bitini etkinleştiren veya devre dışı bırakan bir global vardır. Bizim sürümümüz MD_SETSHARE olarak adlandırılacak ve durumu 1 baytlık bir değer olarak istediğiniz şekilde ayarlamanıza izin verecek.

Bunu hallettikten sonra şunu elde ederiz:

Şimdi yemek yapıyoruz!

Bunu simüle etmek için, aldığımız herhangi bir girdi verisini CRC32 ile 4 baytlık bir yanıt oluşturabiliriz. Algoritmalar ve çekirdek değerleri, analiz etmediğimiz donanımda bulunduğundan, belirli bir dongle için doğru olmayacaktır. Ancak işlevsel olarak yeterince yakın olacaktır.

Ayrıca, simülasyonu belirli durumlarda doğru yapmak için gerçek bir dongle ile konuşmak, yanıtları kaydetmek ve daha sonra bunları tekrar çalmak isteyebiliriz.

Bunu yapmak için bir gökkuşağı masa tasarımı hazırlayabiliriz:

Özünde, bu, istek / yanıt çiftlerini kaydetmek ve varsa uygun bir yanıt için önbelleğe alınmış bir tabloda arama yapmak için ikili bir biçimi açıklar.

Örneğin, gökkuşağı tablomda 0x10101010 yanıtına ayarladığım 0xBB 0xBB 0xBB 0xCD’den oluşan 4 baytlık bir isteğimiz var, sonuç:

İlk yöntem için (kendi hashinginiz), sadece verilere hashing uygulayın ve bir int’i yüke geri atın, bu komik çünkü bir sonraki yöntem:

GetCurrentNo()

Basit – DogConvert () gibi düşünün, ancak her zaman statik 4 baytlık bir tamsayı geçirerek.

unsigned static int DogMfg = 0xBADDEAD;

Recap

Nasıl olduğumuzu görelim:

X 0x01 – DogCheck()

X 0x02 – ReadDog()

X 0x03 – WriteDog()

X 0x04 – DogConvert()

X 0x0B – GetCurrentNo()

X 0x14 – Login NEW

X 0x15 – SetDogCascade()

X 0x64 – DisableShare()

X 0x65 – EnableShare()

Login()

Önceden gizli işlev – kullanım oldukça basittir. Aygıt tanımlayıcısından veya istemci kitaplığında döküldüğü yerden 8 bayt vendor_id’i kopyalayın, return’i 0’a ayarlayın.

SetDogCascade()

MD_SETSHARE ile aynı şey – istek yükündeki tek baytı alıyoruz ve dongle’ın dahili kademeli durumunu buna değiştiriyoruz … sadece 0-16 olabilir. Hata işlemeyi bile yapmamıza gerek yok çünkü kütüphane bunu bizim için yapacak.

SetPassword()

Bu işlem kodu 4.0 kitaplığına kadar görünmedi. Windows için son 3.4 kitaplıktan birkaçı bu komutu ve 0x07 opcode’u destekler.

Buradaki uygulama oldukça basittir:

ÇOK GÜVENLİK – ÇOK MİKRODOG – BÖYLE HACK WOW

Gerçek bir dongle ile iletişim kurmadan önce, paketleri daha iyi test etmek için muhtemelen ilk olarak bir yanıtlayıcı oluşturmak en iyisidir.

Durumla ilgili olmayan diskte saklamak istediğimiz birkaç öğe var:

  • Dongle Seri
  • Üretici Seri
  • Satıcı kimliği
  • Dongle Şifresi
  • 200 bayt flash bellek (bunun son 4 baytı algoritmadır)

Ek olarak, gerçek yanıtları kaydedeceksek, gökkuşağı tablo formatı bulmamız gerekecek – bunun gibi bir şey:

API’yi genişletme

Orijinal API’nin kapsamının ötesine geçebilir ve vendor_id, mfg_serial, dog_serial’ı yazmanın yanı sıra gökkuşağı tablosu girişlerini anında eklemeyi destekleyebilir ve belki de görmemiz için bu güzel verileri yazdırabiliriz.

[MD_RTADD] işlem kodu: 0x539 unsigned long RTAdd () Okur: DogData, DogBytes, DogPassword Yazıyor: Yok Dönüş Değeri – başarılıysa 0, değilse 13371337. Açıklama: Bu, DogConvert’e benziyor, ancak köpeğin yanıtının DogPassword olmasını istediğimiz şeyi geçeceğiz. Sürücüde, algoritmayı belirlemek için flash belleğin son 4 baytını okuyacağız, yeni bir gökkuşağı tablosu girişi oluşturacağız ve bunu dog.key dosyamızda saklayacağız.

[MD_SETDOGSERIAL] opcode: 0x53A unsigned long SetDogSerial () Okur: DogData Yazıyor: Yok Dönüş Değeri: başarılıysa 0, değilse 13381338. Açıklama: Dog_Serial değerini DogData’da depolanan int değerine ayarlar.

[MD_SETMFGSERIAL] unsigned long SetMgfSerial () Okur: DogData Yazıyor: Yok Dönüş Değeri: Başarılıysa 0, değilse 13391339. Açıklama: Mfg_Serial değerini DogData’da depolanan int değerine ayarlar.

[MD_SETVID] unsigned long SetVendorID () Okur: DogData Yazıyor: Yok Dönüş Değeri: Başarılıysa 0, değilse 13401340. Açıklama: Dongle VendorID değerini DogData’da depolanan 8 bayt arabelleğe ayarlar.

[MD_RLRT] unsigned long ReloadRainbowTable () Okur: Yok Yazıyor: Yok Dönüş Değeri: Başarılıysa 0, yoksa 13411341. Açıklama: Rainbow tablosunu diskten yeniden yüklemek için emu’ya bir sinyal gönderir.

Elbette bu, şuna benzeyen kendi istek paketimizi de oluşturmamız gerektiği anlamına gelir:

https://github.com/batteryshark/microdoge/blob/068c137524865ce803f9c785944af6ad5801a938/3.4/usbdog.c

Biraz daha karmaşık olsa da, hala kanca metodolojisini kullanıyoruz.

Kontrol akışı oldukça basittir – dongle aramamızı bağlarız, paketin şifresini çözeriz, ne istediğini bulur ve aynı şekilde bir yanıt oluşturur, şifreler ve programa geri yazarız.

Fonksiyondaki switch deyimi, hayali sürücüye yapılan her çağrıyı kontrol eder. Basit bir dönüştürmeyle bir test programı çalıştırmak, eklediğimiz anahtarların gerçekten yeni sürümde çalıştığını gösterir:

Test uygulamasının kendisi, dongle’ın işlevselliğini test ettiğimiz orijinal bir C programından başka bir şey değildir (tabii ki genişletilmiş API’mize göre derlenmiştir)

Sonunda, başlangıçtaki bir dongle’ı tohumlayabilen ve sizin için uygun gökkuşağı tablosu değerlerini oluşturabilen bir python programı yapmak muhtemelen daha kolaydır (bkz. ‘Makedoge.py’).

Bir Kancanın Ötesinde

Elbette, önceki örneğimizde olduğu gibi önceden yüklenmiş bir paylaşılan kitaplık pek de optimal bir çözüm değildir. Bu çözüm, ioctl işlev çağrılarının ele geçirilmesini içerir ve ayrıca yürütme ortamını değiştirmemizi gerektirir.

Haydi, bunu daha çok gerçek sürücünün yaptığı gibi yapalım … iyi … bir sürücü!

Sürücü işlemlerinin gerçekte nasıl çalıştığının ayrıntılarını korumak (tekrarları caydırmak için başka bir paket protokolü) çünkü gerçek dongle ile arayüz oluşturmamıza gerek yok.

Bunun yerine, bir uç nokta görevi gören ve işlemi tamamlamak için paketi soketler aracılığıyla başka bir programa ileten bir çekirdek modülü oluşturabiliriz.

Amaçlarımız için, soketler aracılığıyla bir programla konuşan ve işlem analizi ve gökkuşağı tablosu araması yapan bir analiz kancası yazabiliriz.

Daha sonra, sonuçlar bir çekirdek modülünü paket iletici olarak kullanıcı alanına geri yazmak için kullanılabilir ki bu da MD4.0’ın yaptığı şeydir:

https://github.com/batteryshark/microdoge/blob/068c137524865ce803f9c785944af6ad5801a938/3.4/usbdog_kmod.c

–===>Device Information<===—
English product name: “Copylock-USB2 “

ConnectionStatus:
Current Config Value: 0x01 -> Device Bus Speed: Low
Device Address: 0x01
Open Pipes: 2

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x01 -> Direction: OUT – EndpointID: 1
bmAttributes: 0x03 -> Interrupt Transfer Type
wMaxPacketSize: 0x0008 = Invalid bus speed for USB Video Class
bInterval: 0x0A

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x82 -> Direction: IN – EndpointID: 2
bmAttributes: 0x03 -> Interrupt Transfer Type
wMaxPacketSize: 0x0008 = Invalid bus speed for USB Video Class
bInterval: 0x0A

===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0200
bDeviceClass: 0x00 -> This is an Interface Class Defined Device
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x08 = (8) Bytes
idVendor: 0x0925idProduct: 0x23E0
bcdDevice: 0x0100
iManufacturer: 0x01
English (United States) “Intec Systems”
iProduct: 0x02
English (United States) “Copylock-USB2 “
iSerialNumber: 0x00
bNumConfigurations: 0x01

===>Configuration Descriptor<===
bLength: 0x09
bDescriptorType: 0x02
wTotalLength: 0x0029 -> Validated
bNumInterfaces: 0x01
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80 -> Bus Powered
MaxPower: 0x32 = 100 mA

===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x03 -> HID Interface Class
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
CAUTION: This may be an invalid bInterfaceProtocol
iInterface: 0x00

===>HID Descriptor<===
bLength: 0x09
bDescriptorType: 0x21
bcdHID: 0x0111
bCountryCode: 0x00
bNumDescriptors: 0x01
bDescriptorType: 0x22
wDescriptorLength: 0x0035

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x01 -> Direction: OUT – EndpointID: 1
bmAttributes: 0x03 -> Interrupt Transfer Type
wMaxPacketSize: 0x0008 = Invalid bus speed for USB Video Class
bInterval: 0x0A

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x82 -> Direction: IN – EndpointID: 2
bmAttributes: 0x03 -> Interrupt Transfer Type
wMaxPacketSize: 0x0008 = Invalid bus speed for USB Video Class
bInterval: 0x0A

Sadece sentinel pro dongle’ınızı USB’ye takın, aktif hale gelene kadar birkaç saniye bekleyin, şimdi sağlanan .exe dosyasını çıkarın ve çalıştırın.
ekli dongle’ınız için bir .dmp dosyası veya dökümü oluşturur.
Yeni oluşturulan .dmp dosyasını .dng olarak yeniden adlandırın,
şimdi bunu çözmek için edgepro11.exe’yi kullanın.
sadece edgepro11.exe sentinel bölümüne yükleyin, örneğin “speba4_0.dmp” gibi döküm dosyanızın adının bir parçası olan geliştirici kimliğini girin.
burada EBA4 geliştirici kimliğidir.
şimdi boşalt ve çöz düğmesine basın.
dongle’ınız için bir .dng dosyası alacaksınız.
bu .dng sentemul’da öykünme için kullanılabilir.
öykünme için SENTEMUL2007.exe
kurulum sürücüsünü, hizmeti başlatın, dökümü yükleyin (yeni oluşturduğunuz .dng dosyası) ve çalışır durumda kullanın.
emülatörü otomatik başlatma moduna kaydedin ve her şey yolunda giderse, artık dongle’ınıza ihtiyacınız olmayacak.
Daha fazla yardım için bana PM atın.

MicroDogu Klonlamak

Basit bir prosedür:
1. PCB almak için dongle’ınızı sökün.
2. Selvi ve I2C çiplerini lehimsiz hale getirin.
3. Cypress çipinin şifresini çözün ve içeriği programcı tarafından okuyun.
4. Yeni IC satın alın ve okunan içerikle programlayın.
5. I2C yongası için aynı prosedür ancak şifresinin çözülmesine gerek yoktur.
6. Yeni dongle oluşturun, tamam!

Dongle (Hardlock) 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.
2. 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.

Ağ Üzerinden Bir USB Dongle Nasıl Paylaşılır?

Cihaz uygun lisansla gelirse, ağ üzerinden bir USB güvenlik donanım kilidini paylaşabileceğiniz gerçeğinin farkında olabilirsiniz. Bu lisans, birden fazla bilgisayarın LAN üzerinden aynı USB donanım kilidine erişmesini sağlar. Ancak, tüm donanım anahtarları bu tür bir lisanslama sunmaz. Bazı USB güvenlik donanım kilitleri yalnızca tek bir bilgisayarda kullanılmak üzere tasarlanmıştır. Bu türden USB anahtar donanımlarına uzaktan erişim elde etmek için, bazı özel üçüncü taraf yazılımları kullanmanız gerekir.

Karşılaşabileceğiniz başka bir durum, sanal bir makineden fiziksel bir ana bilgisayara bağlı bir USB güvenlik anahtarına erişmeye çalışmaktır. Bu durumda, özel bir dongle ayırıcı uygulaması, güvenlik dongle’ınızı ağ üzerinden paylaşmanıza ve konuk işletim sisteminize yönlendirmenize yardımcı olabilir.

USB dongle’ı ağ üzerinden paylaşın

Donglify

Donglify , bir dongle USB anahtarını birden fazla uzak bilgisayarla paylaşma zorluğuyla karşı karşıya kaldığınızda son derece yararlı olan bir yazılım uygulamasıdır.

Bu yazılım aracı, USB bağlantı noktalarını sanallaştırmak ve bunlara bağlı USB güvenlik donanım kilitlerine uzaktan erişim sağlamak için tasarlanmıştır. Program, Windows işletim sistemi ile tamamen uyumludur.

Dongle anahtar paylaşım kılavuzu

Bir HASP anahtarını uzak bilgisayarlarla paylaşmak
için şu adımları izleyin:

  1. Öncelikle, Donglify hesabına kaydolun. Ardından uygulamayı indirin ve USB dongle’ınıza uzaktan erişmesi gereken tüm bilgisayarlara kurun. Ayrıca, fiziksel dongle’ınızın doğrudan bağlı olduğu PC’ye programı yüklediğinizden emin olun (buna cihaz sunucusu diyeceğiz).
  2. Ardından, sunucu bilgisayarda Donglify’yi başlatın ve hesabınızda oturum açın.
  3. Tamamlandığında, açılan pencerede “Artı” simgesine tıklayın ve paylaşıma açık yerel USB dongle’ların listesini göreceksiniz.

Unutmayın, paylaşacağınız USB dongle’ın yanında “Multi-connect” veya “Single-connect” simgesi olmalıdır. İlki, bir USB anahtar donanımını paylaşabileceğiniz ve aynı anda birkaç uzak makineye erişilebileceği anlamına gelir. “Tekli bağlantı” simgesi, paylaşılan bir dongle anahtarının aynı anda yalnızca bir makinede kullanılabileceğini gösterir.

  1. Önündeki radyo düğmesini işaretleyerek gerekli USB donanım kilidini seçin ve “Paylaş” a tıklayın.
  2. Bir istemci bilgisayarda programı başlatın ve aynı Donglify hesabında oturum açın.
  3. Uygulamanın penceresinde, bağlantı için mevcut cihazların listesini göreceksiniz.
  4. İhtiyacınız olanı bulun ve “Bağlan” ı tıklayın.

Budur! Şimdi, paylaşılan USB anahtarı uzak sistemde sanki o bilgisayara fiziksel olarak bağlıymış gibi görünecektir.

Donglify’nin yardımıyla ağınızdaki herhangi bir yerden USB güvenlik donanımlarına erişmek gerçekten bu kadar basit .

USB güvenlik kilidi nedir?

Bir USB donanım kilidi veya güvenlik anahtarı, bir bilgisayara USB bağlantı noktası üzerinden bağlanan küçük bir elektronik cihazdır.

Bir USB dongle nasıl çalışır?

Bir USB güvenlik anahtarı, bir mikro denetleyici, bellek ve ek bileşenler içeren bir devre kartı içerir. Bu öğeler sert plastik bir kutuya yerleştirilmiştir. Mantık, korumalı bir yazılım parçasına iletilebilen veri blokları oluşturarak tam işlevselliğini etkinleştirmesini veya elde etmesini sağlayan dongle’a programlanmıştır. Anahtarın hafızası, dongle’ın özelliklerine ilişkin kullanıcı verilerini ve bilgilerini tutar.

Donglify aşağıdaki dongle’ları destekler:

ASP HL Pro 3.25, Sentinel HL 4.34 (3 variations), Sentinel UltraPro, Sentinel HL 4.27, Sentinel HL 4.31, Feitian Technologies ROCKEY Dongle, Sentinel HL 4.54, SafeNet eToken 5110, Sentinel HL (rev 601) and CodeMeter CmStick security keys. Diğer USB donglerı.

USB dongle’ları yalnızca birkaç tıklama ile istediğiniz yerde kolayca paylaşın

Donglify, bir ağ bağlantısı üzerinden bir USB güvenlik donanım kilidini paylaşma sorununa yönelik bir yazılım çözümüdür. Kullanılmak üzere fiziksel olarak USB dongle bulunması ihtiyacını ortadan kaldıran profesyonel düzeyde bir uygulamadır. Program, USB güvenlik anahtarlarının İnternet üzerinden yeniden yönlendirilmesini sağlar. Donglify, lisanslı USB dongle’larınızı herhangi bir yerden uzaktan yönetebilmeniz için paylaşmanıza olanak tanır.

Windows XP / Vista / 7/8/10, Server 2003/2008/2012/2016/2019

Token kullanarak kolay ve güvenli bir şekilde Donglify’de oturum açın!Artık e-posta adresinizi ve şifrenizi vermeden hesabınızı başkalarıyla paylaşabilirsiniz. Basitçe oturum açma jetonları oluşturun ve bunları diğer Donglify kullanıcılarına gönderin.

Dongle Mimarisi Ve Teknolojisi

Donanım lock yani dongle, paralel ya da usb portuna takılan bir donanımdır. Donanımla haberleşmeyi sağlayan aygıt sürücüleri vardır. Dongle firmasının sunduğu api servisleriyle kullanılır. Bu api servislerini kullanıcı ister kaynak koduna ekler ya da dongle firmasının sunduğu envelope korumasını kullanır. Envelope ile kullanıcı kaynak koduna dokunmadan programını koruyabilir. Envelope programı paketler ve program çalıştırılmak istendiğinde dongü dongle varsa ancak program hafızaya açılır ve çalışır. Diğerinde kayank koduna ekleme yapmanız gerekir.

  • Sentinel,
    Sentinel Pro,
    Sentinel SuperPro,
    Sentinel UltraPro,
    Sentinel Scribe,
    Sentinel Scout,
    Sentinel C,
    Sentinel C Plus (A or B),
    NetSentinel
    HASP3
    HASP4
    HASP HL
    (HASP5) dongles, manufactured by Aladdin Knowledge Systems company:
    Dongles: Basic/Standard HASP
    MemoHASP
    TimeHASP
    NetHASP
    HHL Basic
    HHL Pro
    HHL Max
    HHL Net
    HHL Time
    MacHASP
    Hardlock
    If your hardlock with Remote Update Service (RUS) licenses, we can:
    • change RUS serial number
    • enable/disable slots
    • increase licenses for each slot
    • remove time limit

    ( Rus ) lisanlari ve tarih limitleri degistirilebilir.

    SSI Activator [Removing AEGIS – Activator Envelope],
    WIBU (WIBU-KEY, WIBU-BOX, SecuriKey, CM-Stick) (WIBU Systems),
    DESkey (DK2) (DK3) (Data Encryption Systems),
    KEY-LOK II (MAI Digital Security),
    CRYPTO-BOX, CrypToken (MARX Software Security),
    SmartKey (SmartKey3) (Eutron InfoSecurity),
    Matrix (TechnoData Interware),
    eToken (Aladdin Knowledge Systems),
    iKey (Rainbow Technologies / SafeNet),
    iButton (Touch Memory) (Dallas Semiconductor / Maxim Integrated Products),
    FLEX-ID (Globetrotter / MacroVision),
    Microphar,
    Brain Key,
    Dinkey (1S, 2, Net) (Microcosm Ltd),
    ROCKEY (ePass, ROCKEY4 Standard, ROCKEY4 Plus, NetROCKEY4, ROCKEY5, ROCKEY6) (Feitian Technologies),
    SparKey (SparKey, Spark Keypro, Net-SparKey) (Beijing Spark Technologies),
    iLok (PACE Anti-Piracy)
Bir USB Anahtarı Nasıl Klonlanır Ve Bir Dongle Nasıl Yedeklenir?

Bir Dongle veya güvenlik anahtarı, şirketinizin, işinizin veya herhangi bir özel programınızın kritik dosyalarını korumak istiyorsanız çok önemli bir cihazdır . Bu nedenle, bazı durumlarda işçilere veya tamamen güvene sahip kişilere farklı kopyalar vermek gerekir. Bu nedenle bunun bir kopyasının nasıl doğru bir şekilde yapılacağını bilmek gerekir.

Farklı kullanıcıların söz konusu belgeye veya programa erişimlerinin olduğunu doğrulamasına, yani orada depolanan bilgileri gözlemleyememeleri veya herhangi bir değişiklik yapabilmeleri için bir izin vermelerine izin verecektir. Dongle’lerin farklı kopyalarını yapmanın büyük bir avantaj olduğunu unutmayın, çünkü eğer kaybolursa veya hasar görürse, kaybı değiştirmek ve kendinizi endişelerden kurtarmak için farklı yanıtlara sahip olursunuz.

Bu eğitimde , Dongle veya USB güvenlik anahtarı nedir? Bunlar ne içindir ve nasıl tamamen işlevsel bir kopya oluşturabilirsiniz. Son olarak, bir USB anahtarını kopyalarken bunu doğru bir şekilde yapmanız gereken bir uyarı , aksi takdirde cihaz zarar görebilir.

Dizin:

ongle veya anahtar cihaz nedir ve ne içindir?

Tipos de Dongle USB HDMI

Güvenlik anahtarı olarak kullanılan bir cihazdır, aynı şey, ek işlevsellik uygulayan başka bir cihaza bağlanan küçük bir adaptörün işlevini yerine getirir ve bu durumda bir kullanıcıya doğrulama sağlar.

Bunlar şu şekilde çalışır: Güvenlik anahtarını bir bilgisayara yerleştirerek, çalışmasını sağlamak için bir programın veya yazılımın bir parçasını doğrulayabilir. Bazı durumlarda programlar yalnızca kısıtlı modda hizmet verir veya kullanıcı bir Dongle aracılığıyla doğrulanmazsa yürütülemez .

Bunlar ayrıca parolaları entegre etmek, kullanıcıların bu parolalara sahip olmadan dosyalara ve / veya klasörlere girmesini engellemek için kullanılabilir. Adaptörler veya güvenlik anahtarları USB veya HDMI tipi olabilir.

USB anahtarını veya pendrive’ı klonlamak ve bir programın korumasını atlamak için adımlar

Bir Dongle’ı kopyalamak veya klonlamak için farklı yöntemler vardır, bunlardan biri yalnızca Windows işletim sistemli bilgisayarlar için mevcuttur, Windows XP’den Windows 10’a. Bu yöntemin bir benzetimi olduğunu unutmayın. Bir hata USB cihazlarına zarar verebileceğinden, adımların her birini tam olarak belirtildiği gibi yapın.

 Bir USB anahtarını klonlama gereksinimleri

Bir Dongle’ı kopyalama işlemine başlamadan önce , işin doğru şekilde yapılması için kesinlikle gerekli olan bir dizi gereksinimi karşılamanız gerekir, bunu yapmak için aşağıdaki noktaları dikkate alın:

  • Program için geçerli bir işletim sistemine sahip bir bilgisayara (Windows XP / Vista) sahip olun.
  • Kopyasını yapacağınız Dongle’ın markasını veya modelini bilin : Bunlar aşağıdakiler olabilir; HASP veya Sentinel.
  • Dongle cihazının modelini öğrendikten sonra, aşağıdaki bağlantılardan emülatörü indirmeye devam edersiniz:
    • Bağlantı 1
    • Bağlantı 2
  • Dongle’ın döküm programlarını kullanın , bu durumda Neobit 11’i kullanabilirsiniz .
  • Aygıta karşılık gelen sürücüleri , yani ” Sentinel” ise aynı sürücüler veya ” HASP ” ise aynı durumda indirin.
Descargar dongle emülatörü

 Oluşturma süreci

Oluşturma işlemleri bir sıradadır, Dongle’ı önce ilgili programla birlikte atmanız ve ardından kopya öykünmesini gerçekleştirmeniz gerekir. Daima her üretici için doğru programları kullanın.

 Dongle dökümü

Bu süreç en karmaşık olanlardan biridir ve tehlikeli bir şey olabilir. Ne sen işlemine başlamadan önce dikkate almak gerekir dongle işaretidir bir yedeğini olacak hangi.

Bu durumda işlem bir Sentinel cihazı ile gerçekleştirilmiş ve Sentinel sürücüleri kurulmuştur. Bunlar kurulu değilse, program bir hata bildirecektir.

volcado de un dongle usando neobit

Programda seçebileceğiniz farklı sekmeler veya seçenekler var , çünkü şimdilik Sentinel seçilmiştir , çünkü eğitim için bizi ilgilendiren odur. Ancak cihazınızın markası farklıysa diğer seçeneklerden herhangi birini seçebilirsiniz. Keygen seçeneği seçilmemelidir, çünkü şu anda yapmanız gereken şeyde herhangi bir işlevi yerine getirmez.

Çevirmek için farklı seçenekler görüyorsunuz, şu anda daha deneyimli kullanıcılar için olduklarından hiçbirini seçmeyeceksiniz. Yalnızca “Dump and Solve” kelimesinin altındaki boş alanda değişiklik yapacaksınız.

Daha sonra, yeni cihaz için bir isim belirleyeceksiniz. Bu herhangi biri olabilir, ancak sonunda aşağıdaki “.dng” ifadesini eklemeniz gerekir Adı ekledikten ve ilgili sürücüleri yükledikten sonra , işleme devam etmek için “Dump & Solve” düğmesine tıklayacaksınız .

Bir dizüstü bilgisayar kullanıyorsanız, şarj cihazına bağlı olduğundan ve pili dolu olduğundan emin olun, çünkü başladığında işlemin farklı aşamaları vardır ve tamamlanması uzun zaman alabilir.

 İlk etap

Dongle’ı bulmanız gerekir, eğer cihaz bir USB portuna doğru bir şekilde bağlanmışsa onu görüntüleyebilirsiniz. Bir hata varsa , bağlantı noktası aygıtını değiştirin ve bileşeni yeniden bulmak için programı yeniden başlatın.

 İkinci aşama

Şimdi programın algoritmaları algılaması ve şifresini çözmesi gerekecek. Prosedür en uzun zamandır çünkü bu Dongle’a bağlıdır, yani saatler bile yapabilirsiniz.

 Üçüncü aşama

“.Dng” olacak döküm dosyasını oluşturmanız gerekir Bu dosya, işlem bittikten sonra emülatörde kullanacağımız dosya olacaktır.

Her aşama tamamlandığında , görüntüde kırmızı bir kutuyla tanımlanan ilerleme çubuğu kademeli olarak artacaktır.

progreso del vocado en neobit

 İşlem sırasındaki arızalar

Her aşamanın farklı hataları olabilir ve bu da belirli hatalara neden olabilir. Bunlar, programın hata çubuğunda gösterilir. Türüne bağlı olarak, bunu çözmenin bir yolu olabilir. Daha sonra en yaygın hataları adlandıracağız.

neobit'teki hatalar
  • Program Dongle cihazını bulamadığında “Dongle bulunamıyor ” (Dongle bulunamıyor) hatası üretilir.
  • Ayrıca “Sentinel API’si başlatılamıyor” (Sentinel API hatası başlatılıyor) , bu, sürücülerle ilgili bir arıza olduğunda meydana gelir. Kurulum sırasında, bunların başlatıldığında Windows’u çalıştıran bir hizmet olarak etkinleştirilmesi önerilir.
  • İşlem bittiğinde, dongle’ın yedeği olacak dosyayı zaten oluşturmuş olursunuz ve gerektiğinde taklit etmeye tamamen hazır olursunuz .

 .Dng dosyasının öykünmesi

Şimdi, daha önce belirttiğimiz emülatörlerden bazılarını kullanmanız gerekecek, çünkü bu eğitimde Sentinel programı kullanılıyor, biz bu emülatörü kullanacağız. Cihazınızın modeline uygun olanı kullanmayı unutmayın.

sürücüler de sentinel

Bu program, dng dosyası için bir emülatör görevi görecektir. Sunulan küçük bir dezavantaj , öykünücü kullanıldığında aynı anda çalıştırılırlarsa bazı programlarla uyumsuzluk için mavi ekranlar oluşturabilmesidir . Örneğin, bluetooth etkinleştirilirse başarısız olabilir . Böyle bir durumda, kullanmadan önce yalnızca hata oluşturan uygulamaları devre dışı bırakmalısınız.

Her birinin belirli bir işlevi olan 3 sekme görebilirsiniz:

  • Öykünücü: Bu, dongle’ın kullanılacağı ve öyküneceği yerdir.
  • Dongles: Bu bölüm, daha önce açıklanan döküm dosyasını yüklemekten sorumludur.
  • Sürücü: Programın düzgün çalışması için sürücüyü kuracağınız yer burasıdır.

Seçeceğiniz ilk işlem , programın bu şekilde çalışması için “Sürücü” sekmesidir . Doğru yükleme yolu aşağıdaki gibidir:

  • “Sürücüyü Yükle” ye tıklayacaksınız .
  • Otomatik yürütme ve manuel yürütme seçenekleri (otomatik yıldız / manuel yıldız).
  • “Manuel yürütmeyi” seçeceksiniz .
  • Kaydetmesi için “Durumu kaydet” e tıklayacaksınız .

Bu adımları başarıyla tamamladıktan sonra, kendinizi “Emülatör” sekmesine yerleştireceksiniz. Doğunun taklit edileceği yer burasıdır. Bu yapıldıktan sonra farklı seçenekler göreceksiniz.

  • Lisans: Programın lisansıdır.
  • Lisanslı Donanım Kilidi : Taklit etmek istediğiniz lisansın olacağı yer burasıdır.
  • Bilgisayar Kimliği : Kullanılan bilgisayarın kimliğidir .
Licencias y id del computador desde sentinel

Sen tıklar accoun Başlat Servicie” dolayısıyla işlemine başlamadan, düğme. Hangi program durumunun değiştiğini göreceksiniz. Şimdi size “Hizmet zaten çalışıyor ve çalışıyor” diyecek. Bunu “Sentinel durumu” nda görebilirsiniz.

 .Dng dosyasını yükleyin

Şimdi, “Dongles” sekmesine tıklamanız yeterlidir , böylece döküm dosyasını, bu durumda daha önce oluşturduğunuz “Dng dosyasını” yükleyebilirsiniz . Bunu yapmak için aşağıdakileri yapmanız gerekir:

  • Sen seçecektir “Yük atma” seçeneğini ve dosya yüklenecek seçecektir. Oluşturduğunuz ada sahip dosyayı bulun.
  • Yükleme tamamlandıktan sonra, “Emülatör” sekmesine döneceksiniz. Bu bölümde doğru şekilde yüklendiğini ve çalıştığını doğrulayacaksınız.
  • Orijinal verilerle ilgili olarak «Lisans» ve «Lisans donanım kilitleri» verilerine uymanız gerekecektir .
  • Bu doğrulandıktan sonra , klonlanmış cihazı sorunsuz bir şekilde kullanabilirsiniz.

Bir donanım kilidi LAN veya İnternet üzerinden nasıl paylaşılır?

Bir Dongle cihazını kopyalamaya gerek kalmadan paylaşmanız için başka bir yöntem daha var. Bu seçeneğin en büyük avantajı, mevcut işletim sistemleri için çalışmasıdır: Windows, MacOS, Linux, Android.

Bunun için FlexiHub adında bir program var .

flexihub

Bu, 14 gün boyunca deneyebileceğiniz ücretsiz ve ücretli bir sürüme sahiptir. Ücretli sürüm abonelik gereğidir. Bununla birlikte, USB Ağ Kapısı adı verilen kalıcı bir lisans vizyonuna da sahiptir .

USB Ağ Kapısı

Herhangi bir cihaz için FlexiHub’ı indirin

Device Monitoring Studio (DMS) ile Dongle Günlüğü

USB cihazlarını ve bunlarla çalışan uygulamaları izlemek ve analiz etmek için profesyonel bir araçtır. Windows 10 x64 desteklenir!

Aşama 1

USB Monitörü indirin ve yükleyin . Dongle’ı USB bağlantı noktasından çıkarın, ardından Device Monitoring Studio’yu çalıştırın, “USB -> Sonraki bağlanan cihaz -> İzlemeyi Başlat…” seçeneğine basın.

Ardından işleme listesine “URB Görünümü” ekleyin ve usb günlük yakalamayı başlatın.

Adım 2

Şimdi dongle’ınızı tekrar USB bağlantı noktasına takın ve korumalı uygulamayı çalıştırın. Korumalı bir uygulamada olabildiğince tam olarak çalışmayı deneyin, maksimum işlevselliği kullanın. Bu çok önemli. Korumalı uygulamayı birkaç kez çalıştırabilirsiniz.

Aşama 3

Ardından günlüğü kaydetmeniz gerekir. “Araçlar -> Günlüğe Kaydet” seçeneğine basın.

Günlük dosyası konumunu seçin ve yakalanan günlüğünüzü kaydetmek için “Tamam” a basın.

4. adım

Yakalanan günlüğü metin biçiminde dışa aktarın. “Tamamla” sekmesine, ardından “Düzenle -> Dışa Aktar” a basın.

Ve dışa aktarılan günlüğü metin biçiminde kaydedin.

BusTrace ile Dongle Günlüğü

Tam özellikli bir cihaz ve yazılım veri yolu analiz aracı. G / Ç etkinliğini hem yerel hem de uzaktan yakalar ve oluşturur, cihaz hatalarını simüle eder ve benzer sistem yardımcı araçlarında bulunmayan ek araçlara ve özelliklere sahiptir.

Aşama 1

BusTRACE Capture Client’ı indirin ve kurun . İlk başlatma sırasında yalnızca aşağıdaki seçenekleri işaretleyin. Ardından Tamam’a basın ve sisteminizi yeniden başlatın.

Adım 2

Dongle’ınızı USB bağlantı noktasına takın. BusTRACE’i çalıştırın ve cihazlar listesinde YALNIZCA dongle cihazınızı bulun ve işaretleyin . “İleri” ye basın ve sonraki adımda maksimum “Yakalama arabellek boyutu” ve “G / Ç başına yakalanacak maksimum bayt sayısını” ayarlayın.

Aşama 3

“Yakalama tamponunu başlat” a basın ve korumalı yazılımı çalıştırdığınızda, paket sayısının artacağını görmelisiniz. Korunan yazılımınızda yakın çalışmayı deneyin, maksimum sayıda işlevi arayın. Günlük kaydını bitirmek için “Yakalamayı Bitir” düğmesine tıklayın.

4. adım

Yakalanan günlüğünüzü * .zip dosyasına kaydedin.

BusTRACE Capture Client’ı caglararlidan bulabilirsiniz

Dongle Dumperlarını Ve Araçlarını indirin

Dongle dumperlarını indirin

Usb anahtarları tanımlama Aracıİndir
Sentinel HL (HASP SRM) Damper 1.7İndir
Sentinel HL (HASP SRM) / HASP 4 / HASP HL ​​/ Hardlock Damper 2.0İndir
Eutron Damperİndir
Eutron Okuyucuİndir
Sentinel SuperPro Damperİndir
Hardlock Damperİndir
WibuBox Damper 1.2İndir
Sentinel SHK Damperİndir
Unikey Damperİndir
Dinkey Damperİndir
Sürücü imzalama kontrolünü ve UAC komut dosyasını [ talimat ] devre dışı bırakınİndir

Dongle sürücülerini indirin

Dongle sürücüsüBağlantıAçıklama
Sentinel HL sürücüsü [GUI]İndirSentinel HL (Hasp SRM), Hardlock, Hasp 4, Hasp HL dongle driver with User Interface – version 7.41
Sentinel HL sürücüsü [Konsol]İndirSentinel HL (Hasp SRM), Hardlock, Hasp 4, Hasp HL dongle driver with Command line use – version 7.41
Sentinel Sistem SürücüsüİndirSentinel Super Pro, Sentinel Ultra Pro, Sentinel Hardware Key (SHK) dongle sürücüsü – 7.6.0
Wibu CodeMeter sürücüsüİndirWibu CodeMeter çalışma zamanı sürümü 7.00
Wibu Anahtar sürücüsüİndirWibu-Box çalışma zamanı sürüm 6.51
Marx CryptoBox sürücüsüİndirMarx CRYPTO-BOX SC, XS, Versa sürücü kurulum paketi 4/2018
Dinkey sürücüsüİndirDinkey 1 ve Dinkey 2 dongle sürücüsü. Dinkey Pro ve Dinkey FD dongle’ları sürücü gerektirmez (HID cihazları olarak çalışır)
TDI Matrix sürücüsüİndirTDI Matrix dongle sürücüsü
SafeNet Microdog Dongle

SafeNet Microdog Dongle Emülatörü – Klon – Yedekleme

Safenet Microdog nedir?

SafeNet Microdog Dongle Emülatörü, yapılandırılmamış verileri bir merkez sunucusuna ekleyerek, Microdog Protect File, masaüstü, dizüstü bilgisayar ve medya dosyaları dahil uç noktalarda depolanan klasörleri ve dosyaları korumak için kullanılabilir.

SafeNet Microdog cihazı ile Workr, yazılım, şifreleme ve erişim kontrol politikalarını güvenlik kelime işlem belgesi, elektronik tablolar, resimler, tasarım vb. İle birleştirir.

SafeNet Microdog Dongle Emülatör İşlevleri:

  • Donanım kopyalanabilir.
  • LPT ve USB sanallaştırma test edildi.
  • Dijital olarak imzalanmış.
  • Tüm Windows işletim sistemleriyle uyumludur.
  • Sanallaştırılmış Windows işletim sistemlerinde çalışır.
  • Her yazılım için farklı bir okuyucu kullanılmaktadır.
  • Zaman kısıtlaması kaldırıldı.
  • Modül eklenebilir.

SafeNet Microdog VID-PID Ayrıntıları:

  • USB \ VID_08E2 ve PID_0002

Dongle öykünmesi nedir?

Dongle emülatörü, donanım dongle’ınızın sürücü düzeyinde veya bir dll kitaplığında veya başka bir şekilde yazılmış bir yazılım kopyasıdır.
Çoğu zaman sürücüdür. Emülatörü bir işletim sistemine kurarken, korumalı program bunun gerçek dongle ile çalıştığını düşünür.

Dongle nedir ve neden taklit eder?

Donanım kilidi, LPT veya USB anahtarı biçimindeki yazılım korumasının bir parçasıdır.
Basit bir prensipte çalışır, bilgisayar korumalı bir programa takılı dongle çalışır, dongle bağlantısı kesilmiş korumalı program çalışmaz.

Hangi işletim sistemleri emülatör ile çalışır?

Windows W2K, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 – x32 ve x64 bit sistemler. Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 – x32 ve x64 bit.

Maden programı için emülatör yapıyorsunuz ve her şey yolunda gidiyor, ancak emülatör korumalı yazılımın yeni sürümüyle çalışmıyor, neden?

Bu, aşağıdaki nedenlerden dolayı olur:

  • Korumalı program, emülatörün işletim sistemindeki varlığını belirler (tanımlar).
  • Yazılım üreticisi, koruma programının ilkesini büyük ölçüde değiştirdi.
  • Bazen evrensel bir öykünücü yaratmak için böyle bir fırsatımız olmaz.

Öykünücülerin korumalı programın belirli bir sürümünde yazılıp test edildiğini ve yeni sürümlerde öykünücünün çalışmasını garanti etmediğini unutmayın.

Dongle Idendification Tools

Dongle Type Monitor
USB Dongle Search v1.2.1 by souz
USB Keys Idenditfication Tool V1.1.1
USBDeview V1.7
PROTECTiON iD v6.3.5

VBScript Programları

Dosyaları açma – MS Excel, metin dosyaları ve Word belgesi:
Yeni bir excel elektronik tablosu açın ve iki sayı girin ve ekleyin:   openNewExcel.vbs
Mevcut bir excel elektronik tablosunu açın:   openOldExcel.vbs
Mevcut bir excel elektronik tablosunu açın ve hücreler arasında döngü yapın:   loopCells.vbs
Mevcut bir metin dosyasını açın ve satırlar arasında döngü yapın:   openText.vbs
Belirli bir dize için mevcut bir Word belgesi aramasını açın:   searchWord.vbs
Mevcut bir Powerpoint belgesini açın ve her slaydın metnini görüntüleyin:   openPpt.vbs
Mevcut bir Powerpoint belgesini açın ve her slaydın metnini bir word belgesine yerleştirin:   pptToWord.vbs

Active Directory Active Directory
Active Directory ve Active Directory nesnelerini yönetmek için örnek komut dosyaları.

Başvurular Applications
Sunucularda ve istemci bilgisayarlarda yazılım ve uygulamaları yönetmek için örnek komut dosyaları.

Veri Data
Verilerle çalışmak için örnek komut dosyaları.

Masaüstü Yönetimi Desktop Management
Masaüstü ayarları, bilgisayarı başlatma ve kapatma ve Sistem Geri Yükleme gibi şeyleri yönetmek için örnek komut dosyaları.

Grup ilkesi Group Policy
Bir kullanıcı veya bilgisayar hesabına uygulanan Grup İlkesi Nesneleri ile ilgili bilgileri almak için örnek komut dosyaları.

Bilgisayar donanımı Computer Hardware
Bilgisayar donanımını yönetmek ve izlemek için örnek komut dosyaları.

Görüntüler Images
Resimleri program aracılığıyla oluşturmak ve değiştirmek için örnek komut dosyaları.

İnternet Bilgi Sunucusu (IIS) Internet Information Server (IIS)
İnternet Bilgi Sunucusunu yönetmek için örnek komut dosyaları.

Kütükler Logs
Olay günlüklerini ve düz metin günlük dosyalarını yönetmek için örnek komut dosyaları.

Matematik Mathematics
Matematik için örnek betikler.

Mesajlaşma ve İletişim Messaging and Communication
Microsoft Exchange Server 2003 dahil, mesajlaşma ve iletişim uygulamalarını yönetmek için örnek komut dosyaları.

Microsoft Office Microsoft Office
Microsoft Office uygulamalarını yönetmek için örnek komut dosyaları.

Ağ oluşturma Networking
Ağ yapılandırmalarını ve ağ uygulamalarını yönetmek ve izlemek için örnek komut dosyaları.

İşletim sistemi Operating System
Windows işletim sistemini yönetmek ve izlemek için örnek komut dosyaları.

Diğer Dizin Hizmetleri Other Directory Services
Active Directory dışındaki dizin hizmetlerini yönetmek için örnek komut dosyaları.

Baskı Printing
Yazıcıları, yazdırma işlerini, yazdırma sunucularını ve Windows yazdırma altyapısının diğer parçalarını yönetmek için örnek komut dosyaları.

Komut Dosyası Teknikleri Scripting Techniques
Komut dosyası yazarları için yararlı olan çok çeşitli komut dosyası oluşturma ipuçları, püf noktaları ve teknikleri gösteren örnek komut dosyaları.

Güvenlik Security
Windows işletim sistemindeki güvenliği ve güvenliği sağlanabilir nesneleri yönetmek için örnek komut dosyaları.

Hizmet Paketleri ve Düzeltmeler Service Packs and Hot Fixes
Bir bilgisayarda yüklü hizmet paketleri ve düzeltmelerle ilgili bilgileri almak için örnek komut dosyaları.

Unix Hizmetleri Services for Unix
Unix için Microsoft Hizmetlerini yönetmek için örnek komut dosyaları.

Gölge Kopyası Shadow Copy
Windows Server 2003’te Gölge Kopya hizmetini yönetmek için örnek komut dosyaları.

SMS 2003 SMS 2003
Microsoft Systems Management Server (SMS) 2003’ü yönetmek için örnek komut dosyaları.

Yazılım Güncelleme Hizmetleri Software Update Services
İstemci bilgisayarlarda Windows Update’i yönetmek için örnek komut dosyaları.

SQL Server SQL Server
Microsoft SQL Server ve SQL Server veritabanlarını yönetmek için örnek komut dosyaları.

Depolama Storage
Dosyaları, klasörleri, dosya sistemlerini ve depolama aygıtlarını yönetmek için örnek komut dosyaları.

Vbsedit Araç Seti Vbsedit Toolkit
Vbsedit’in araç setini kullanarak örnek komut dosyaları.

Video Video
Video dosyalarını yönetmek için örnek komut dosyaları.

Terminal sunucusu Terminal Server
Windows Terminal Sunucusunu yönetmek için örnek komut dosyaları.

Sanal sunucu Virtual Server
Microsoft Virtual Server’ı yönetmek için örnek betikler.

SecureCRT SecureCRT
Windows için SecureCRT’nin komut dosyası yürütme yeteneklerini kullanarak belirli görevlerin nasıl gerçekleştirileceğine dair örnekler.

ASCII Tablosu
DecHexAscii CharacterDecHexAscii CharacterDecHexAscii CharacterDecHexAscii Character
00x00NUL (Null)320x20[Space]640x40@960x60`
10x01SOH330x21!650x41A970x61a
20x02STX340x22660x42B980x62b
30x03ETX350x23#670x43C990x63c
40x04EOT360x24$680x44D1000x64d
50x05ENQ370x25%690x45E1010x65e
60x06ACK380x26&700x46F1020x66f
70x07BEL390x27710x47G1030x67g
80x08BS Backspace400x28(720x48H1040x68h
90x09TAB \t410x29)730x49I1050x69i
100x0ALF Line Feed \n420x2A*740x4AJ1060x6Aj
110x0BVT430x2B+750x4BK1070x6Bk
120x0CFF Form Feed440x2C,760x4CL1080x6Cl
130x0DCR Carriage Return \r450x2D770x4DM1090x6Dm
140x0ESO460x2E.780x4EN1100x6En
150x0FSI470x2F/790x4FO1110x6Fo
160x10DLE480x300800x50P1120x70p
170x11DC1490x311810x51Q1130x71q
180x12DC2500x322820x52R1140x72r
190x13DC3510x333830x53S1150x73s
200x14DC4520x344840x54T1160x74t
210x15NAK530x355850x55U1170x75u
220x16SYN540x366860x56V1180x76v
230x17ETB550x377870x57W1190x77w
240x18CAN560x388880x58X1200x78x
250x19EM570x399890x59Y1210x79y
260x1ASUB (EOF)580x3A:900x5AZ1220x7Az
270x1BESC (Escape)590x3B;910x5B[1230x7B{
280x1CFS600x3C<920x5C\1240x7C|
290x1DGS610x3D=930x5D]1250x7D}
300x1ERS620x3E>940x5E^1260x7E~
310x1FUS630x3F?950x5F_1270x7FDEL