Program ma sprawdzać sam siebie... CRC32

0

Witajcie,
mam problem, otóż tworzę program w Delphi i ma on być zabezpieczony przed próbą jego modyfikacji przez np. program Resource Hacker. Korzystam z sum CRC32 aby porównać zawartość pliku programu podczas jego uruchamiania z sumą CRC32 wkompilowaną w stałą (porównawczo). Ale wg. mnie moje działania są bezsensowne, gdyż jak mam sprawdzić sumę CRC32 podzczas kompilacji, aby ją dodać do stałej [sciana] ?? Gdy zmienię zawartość stałej suma będzie już inna i wtedy nigdy nie wyjdzie poprawny wynik, zawsze wyjdzie mi komunikat o próbie crackingu... Korzystam z funkcji opisanej na: http://www.scalabium.com/faq/dct0048.htm.
Pomocy!! ;( Jak rozwiązać powyższy problem??

Z góry dzięki, pozdro
alfanickD2005

0

ustal sobie identyfikator jakis, np. jakis specyficzny ciag bajtow-identyfikator (4 do 6 powinno wystarczyc)... i po tym identyfikatorze zapisujesz sume crc stworzona jeszcze przed dopisaniem identyfikatora ... A przy obliczaniu (dla porownania) obliczasz tylko do pozycji identyfikatora(przeciez i tak musisz ja znalezc aby wyciagnac zapisana sume).
Przyklad odczytu/zapisu do execa masz tutaj: http://community.borland.com/article/0,1410,27979,00.html

0

migajek <<<EOD
Pomysł dobry, lecz nazbyt skomplikowany. Znalazłem prostszy:

  1. Umieszczam sumę CRC32 w stałej.
  2. Podczas uruchomienia programu, program uruchamia siebie samego (przez ShellExec) podając w parametrze aktualną sumę CRC32 programu i zamyka się.
  3. Kopia programu (a właściwie jest już tylko jeden program) porównuje CRC32 z parametru i ze stałej. W razie niezgodności wyświetla komunikat i zamyka program. Gdy sumy są równe sobie następuje dalsza część programu...

Co o tym sądzisz??
EOD;

0

Sorry, jednak zapomniałem, że mój pomysł wymaga wkomilowania stałej...

0

wlasnie dlatego uwazam ze moj pomysl jest najlepszy ;P A serio: IMO to co przedstawilem to nic trudnego, wystarczy odrobine zmodyfikowac ten kod na obliczanie sumy... Mozna by dla ulatwienia ladowac zawartosc execa (ale nie calego, tylko do znaku ;) ) do array of byte i z tego crc obliczac :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1