For nylig, da jeg skrev software, fik jeg en idé: Hvis jeg kører et program, .exe godt beskyttet, men hvis dll'en ikke er beskyttet, vil min applikation bruge dll-filen, vil andre så fejlfinde mit program gennem dll-filen?
I dag skal vi skrive et specielt program til at teste det, lad os bruge applikationen til at kalde en metode i dll'en, som følger:
Koden er enkel:
DLL-kode:
App-kode:
Derefter opretter jeg et nyt projekt, opretter et nyt klassebibliotek og kopierer samme type og cs-fil, som følger:
Lad os erstatte den genererede dll med følgende figur:
Programmet kalder med succes den dll-metode, vi har formedet, hvordan kan vi forhindre, at den dll, vi har genereret, bliver smedet?
Jeg fik en simpel idé: tilføj en ressourcefil til applikationen, udfyld den dll-fil, der skal indlæses, og md5-værdien for filen, indgangspunktet for programmets kørsel, og først tjekker md5-værdien af den dll, der skal indlæses.
Hvis MD5-værdien af DLL-filen er inkonsistent med MD5-værdien i filen i ressourcelisten, betyder det, at DLL-filen er blevet forfalsket eller ondsindet manipuleret. Det er ikke blevet praktiseret, det er logisk muligt!
|