Recent, când scriu software, mi-a venit o idee: dacă rulez un program .exe bine protejat, dar dacă dll nu este protejat, aplicația mea va folosi fișierul dll, vor depana alții programul meu prin fișierul dll?
Astăzi, să scriem un program special pentru a-l testa, să folosim aplicația pentru a chema o metodă în dll, după cum urmează:
Codul este simplu:
Cod DLL:
Cod aplicație:
Apoi, creez un proiect nou, creez o nouă bibliotecă de clase și copiez același tip și același fișier CS, după cum urmează:
Să înlocuim dll generat cu următoarea figură:
Programul apelează cu succes metoda dll pe care am creat-o, cum putem preveni falsificarea dll generată?
Mi-a venit o idee simplă: să adaug un fișier de resurse aplicației, să completez fișierul dll ce urmează să fie încărcat și valoarea md5 a fișierului, punctul de intrare al rulării programului, și mai întâi să verific valoarea md5 a dll care trebuie încărcată
Dacă valoarea MD5 a fișierului DLL este inconsistentă cu valoarea MD5 a fișierului din lista de resurse, înseamnă că fișierul DLL a fost falsificat sau modificat cu rău intenție. Nu a fost practicat, este logic fezabil!
|