Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Propun să discut tema protecției programului cu ajutorul cheilor electronice cu codul descărcabil. În prezent, aceasta este versiunea cea mai modernă și nu ruptă a protecției software-ului. Deoarece codul protejat este transferat în interiorul cheii, unde este executat de către microprocesor și numai rezultatele calculelor sunt transmise în exterior. Pentru a construi un emulator, în cazul implementării strategiei corecte de apărare, este aproape imposibilă. Este mai ușor să scrieți o nouă aplicație.







Deci, demo-kit-ul cu tasta Guardant Code Time mi-a costat 580 de ruble. Kitul include cheia în sine, un CD cu SDK-ul dezvoltatorului și o bucată de hârtie cu taste demo.
Pare un kit ca acesta

Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Iată o fotografie a cheii. Puteți vedea acumulatorul, acesta este folosit pentru alimentarea ceasului în timp real. Durata de viață a bateriei nu este mai mică de 3 ani

Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Microcontroler - arhitectură pe 32 de biți, Cortex-M3 (1,25 DMIPS @ 96 MHz)

Memorie pentru programe de utilizator - 4 KB

Algoritmi hardware suportați - AES-128, ECC160, SHA-256

Pentru a compila programele încărcate în cheie, se folosește compilatorul GCC.
Acum vreau să înșurubesc această cheie pentru aplicațiile pe VB6. Odată cu transferul unei părți din funcțiile din interiorul cheii, acestea vor trebui să fie traduse în C și să interacționeze cu aplicația principală. Voi publica rezultatele și exemplele de cod în acest thread.

Primele vesti proaste. În Guardant SDK, există exemple despre VB6 și VB.NET. Dar nu funcționează. În exemplul VB6, jumătate din fișiere lipsesc deloc.
Codul VB.NET se blochează la pornire. Cu toate acestea, există un exemplu pentru Access, scoate codul de acolo și îl transferă către VB. În acest caz,

1) În fișierul "test32.bas" trebuie să ștergeți următorul cod:

Form_MainFrm.Form1.SetFocus
Form_MainFrm.Form1 = Form_MainForm.Form1 + Chr $ (13) + Chr $ (10) + Date

Imprimare sub (ByVal Data As String)

Form_MainFrm.Form1.SetFocus
Form_MainFrm.Form1 = Form_MainForm.Form1 + "" + Date
Form_MainFrm.Form1.SelLength = 0

În loc de codul la distanță, copiați acest lucru:

Cod: Selectați toate sub printf (ByVal Data As String)

Form1.MainFrm.SetFocus
Form1.MainFrm.Text = Form1.MainFrm.Text + Chr $ (13) + Chr $ (10) + Date

Imprimare sub (ByVal Data As String)

Form1.MainFrm.SetFocus
Form1.MainFrm.Text = Form1.MainFrm.Text + "" + Date
Form1.MainFrm.SelLength = 0

În funcția Cod: Selectați toate ErrorHandling pentru a comenta linia: Cod: Selectați toate TerminateProcess GetCurrentProcess, lRes

Acest lucru este necesar pentru ca IDE să nu cadă în cazul invocării unui algoritm neacceptat din cheie. Acum trebuie să executați codul și să comentați acei algoritmi care nu funcționează în versiunea dvs. a cheii. Când codul începe să funcționeze fără erori, îl compilam în EXE. Acum puteți încerca să îl testați pe altă mașină. Pentru a permite cheii să funcționeze fără a instala driverele, trebuie să activați modul HID.







Pentru a traduce o cheie într-un HID? mod:
1. Descărcați firmware-ul din lista de firmware (sau creați unul nou
fișier imagine) și executați comanda de meniu Key | Activați HID -
modul de operare cheie.
2. Înregistrați masca în cheie: executați comanda Key | Write in
cheie. În acest caz, în meniul opus comenzii va fi setat un steag,
iar butonul [HID] din bara de instrumente merge la "clicked"?
Propozitia.
3. Reconectați cheia și testați funcționarea acesteia în HID?
Mod.

Este timpul să testați funcționarea cheii pe o altă mașină, am folosit subnotele Asus 900 în acest scop.
Pentru aceasta, copiați-o:

1. Compilați fișierul EXE
2. GrdAPI32.DLL

Introducem cheia în portul USB și pornim fișierul. Programul afișează un jurnal al activității sale. Cheia funcționează și oferă date. Acum puteți începe să vă proiectați apărarea.

Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Acum, un exemplu de organizare a calculului algoritmilor hardware folosind o cheie de microprocesor.
Codul Guardant folosește chipul Cortex-M3. Acesta poate fi folosit ca procesor suplimentar pentru calcule criptografice. În același timp, CPU-ul calculatorului nu va porni, ceea ce reprezintă principalul avantaj al acestei metode de criptare. În primul rând, trebuie să creați un descriptor al algoritmului AES și să salvați imaginea într-o cheie. Nu este nimic complicat și totul este descris în ajutor

Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Trebuie doar să vă amintiți numărul algoritmului hardware. În acest caz este 0.

Conferința vbstreets - vizionarea temei - protejarea programelor de protecția hackerilor de chei electronice

Algoritmul de criptare este numit de un șir:

Cod: Selectați toate nRet = GrdCrypt (hGrd, 0, DataStrLength, szDataStr, GrdAM_Encrypt + GrdAM_CBC + GrdSC_All, szInitVectorAES, szDataPsw, VarPtr (abyGrdAES_Context (0)))

unde 0, acesta este numărul algoritmului nostru. Codul exemplului în sine este în Anexă.

Atașamente cript.zip Criptare hardware AES-128 (3.58 KB) Descărcări: 96

jangle a scris: (a): Deci, demo-kit-ul cu tastatura Guardant Time Time mi-a costat 580 de ruble.

Și cât de mult costă un kit complet și cum diferă de kitul demo?

jangle a scris: Prima veste proasta. În Guardant SDK, există exemple despre VB6 și VB.NET. Dar nu funcționează.

Dezvoltatorul are un serviciu de asistență pentru astfel de cazuri? Poate că au versiuni corectate de pe site pentru a le descărca.

Luptați și căutați, găsiți și ascundeți

ger_kar a scris: Și cât de mult va costa un set complet și cum diferă de kitul demo?

Dezvoltatorul are un serviciu de asistență pentru astfel de cazuri? Poate că au versiuni corectate de pe site pentru a le descărca.

Încă nu am primit un răspuns în serviciul de asistență, când am fost întrebat despre exemplul VB


Hmm. Și pentru ce înseamnă atunci banii?

Ura! O nouă versiune a Unreal Commander a fost lansată!

Mulțumesc. În plus, site-ul a fost în limba rusă, este minunat.
Prețurile sunt, de asemenea, destul de acceptabile - acest lucru este de asemenea bun.
Dar termenii de livrare sunt de așa natură încât în ​​timp ce ajunge în satul nostru va crește prețul cu altul, nu este foarte bun. Am fi vândut astfel de bucăți cu noi - ar fi, de asemenea, luate pentru experimente

Luptați și căutați, găsiți și ascundeți

ger_kar a scris: Спасибо. În plus, site-ul a fost în limba rusă, este minunat.
Prețurile sunt, de asemenea, destul de acceptabile - acest lucru este de asemenea bun.
Dar termenii de livrare sunt de așa natură încât în ​​timp ce ajunge în satul nostru va crește prețul cu altul, nu este foarte bun. Am fi vândut astfel de bucăți cu noi - ar fi, de asemenea, luate pentru experimente







Articole similare

Trimiteți-le prietenilor: