Nylig, da jeg skrev programvare, kom jeg på en idé: Hvis jeg kjører et program .exe godt beskyttet, men hvis dll-filen ikke er beskyttet, vil applikasjonen min bruke dll-filen, vil andre feilsøke programmet mitt gjennom dll-filen?
I dag, la oss skrive et spesielt program for å teste det, la oss bruke applikasjonen til å kalle en metode i dll-en, som følger:
Koden er enkel:
DLL-kode:
Appkode:
Deretter lager jeg et nytt prosjekt, lager et nytt klassebibliotek, og kopierer samme type og cs-fil, som følger:
La oss erstatte den genererte dll-en med følgende figur:
Programmet kaller dll-metoden vi formade vellykket, hvordan kan vi forhindre at dll-en vi genererte blir forfalsket?
Jeg kom på en enkel idé: legg til en ressursfil i applikasjonen, fyll inn dll-filen som skal lastes, og md5-verdien til filen, startpunktet for programmet, og sjekk først md5-verdien til dll-filen som må lastes inn
Hvis MD5-verdien til DLL-filen er inkonsistent med MD5-verdien i ressurslisten, betyr det at DLL-filen er forfalsket eller med vilje tuklet med. Det har ikke blitt praktisert, det er logisk gjennomførbart!
|