Äskettäin, kun kirjoitin ohjelmistoa, keksin idean: jos ajan ohjelmaa, .exe hyvin suojattu, mutta jos dll ei ole suojattu, sovellukseni käyttää dll-tiedostoa, debuggaavatko muut ohjelmani dll-tiedoston kautta?
Tänään kirjoitetaan erityinen ohjelma testaamaan sitä, käytetään sovellusta kutsumaan metodi dll:ssä seuraavasti:
Koodi on yksinkertainen:
DLL-koodi:
Sovelluskoodi:
Sitten luon uuden projektin, luon uuden luokkakirjaston ja kopioin saman tyyppi- ja cs-tiedoston seuraavasti:
Korvataan generoitu dll seuraavalla kuvalla:
Ohjelma kutsuu onnistuneesti dll-menetelmän, jonka takoimme, miten voimme estää tuottamamme dll:n takomisen?
Keksin yksinkertaisen idean: lisää resurssitiedosto sovellukseen, täytä ladattava dll-tiedosto ja tiedoston md5-arvo, joka on ohjelman käynnistyksen aloituspiste, ja tarkistaa ensin ladattavan dll:n md5-arvo, joka täytyy ladata
Jos DLL-tiedoston MD5-arvo on ristiriidassa tiedoston MD5-arvon kanssa resurssilistassa, se tarkoittaa, että DLL-tiedostoa on väärennetty tai siihen on pahantahtoisesti manipuloitu. Sitä ei ole harjoiteltu, se on loogisesti mahdollista!
|