Hiljuti, tarkvara kirjutades, tuli mul idee: kui käivitan programmi, .exe hästi kaitstud, aga kui dll pole kaitstud, kasutab mu rakendus dll-faili, kas teised siluvad mu programmi dll-faili kaudu?
Täna kirjutame spetsiaalse programmi selle testimiseks, kasutame rakendust, et kutsuda dll-is meetod järgmiselt:
Kood on lihtne:
DLL-kood:
Rakenduse kood:
Seejärel loon uue projekti, loon uue klassiteegi ja kopeerin sama tüübi ja cs-faili järgmiselt:
Asendame genereeritud dll-i järgmise joonisega:
Programm kutsub edukalt üles meie sepistatud dll meetodi, kuidas saame takistada meie loodud dll-i võltsimist?
Mõtlesin välja lihtsa idee: lisada rakendusse ressursifail, täita laaditav dll fail ja faili md5 väärtus, mis on programmi käivitamise sisenemispunkt, ning esmalt kontrollida laadimiseks vajaliku dll-i md5 väärtust
Kui DLL-faili MD5 väärtus on vastuolus faili MD5 väärtusega ressursiloendis, tähendab see, et DLL-fail on võltsitud või pahatahtlikult manipuleeritud. Seda pole praktiseeritud, see on loogiliselt teostatav!
|