Nemrég, szoftverírás közben eszembe jutott egy ötlet: ha futtatok egy programot jól .exe védett, de ha a dll nem védett, az alkalmazásom a dll fájlt fogja használni, akkor mások hibáztatnak a programomat a dll fájlon keresztül?
Ma írjunk egy speciális programot a teszteléshez, használjuk az alkalmazást egy metódus meghívására a dll-ben, a következők szerint:
A kód egyszerű:
DLL kód:
App Code:
Ezután létrehozok egy új projektet, új osztálykönyvtárat, és másolom ugyanazt a típust és cs fájlt, a következők szerint:
Cseréljük le a generált dll-t a következő ábrára:
A program sikeresen hívja a kovácsolt dll módszert, hogyan akadályozhatjuk meg, hogy a generált dll hamisítsák?
Eszembe jutott egy egyszerű ötlet: hozzáadok egy erőforrás fájlt az alkalmazáshoz, kitöltöm a betöltendő dll fájlt, és a fájl md5 értékét, ami a program bemeneti pontja, és először ellenőrizem a betöltésre szükséges dll md5 értékét
Ha a DLL fájl MD5 értéke nem egyezik meg az erőforrás listáján szereplő MD5 értékével, az azt jelenti, hogy a DLL fájlt hamisították vagy rosszindulatúan manipulálták. Ezt nem gyakorolták, logikusan megvalósítható!
|