[C++] Ochrona plików powiązanych z danym programem

Pisze sobie program, ktory odczytuje rozne wiadomosci z plików i do nich duzo zapisuje. Jeżeli choćby jeden z tych plików “przepadł” - program nie mógł by pracować poprawnie. Chcialbym się was zapytać w jaki sposób można “zamrozic” dane pliki tekstowe i zezwolic aby tylko okreslone programy .exe mogły je usuwać lub zmieniać ? Tzn. nie chcę aby ktoś, nawet administrator mógł od tak usunąć dany plik lub zmienić jego treść. OK - odczytac moze, ale tych dwóch rzeczy zrobić nie może. Może to tylko zrobić dany program. Istnieje taka możliwość ?

Moj system operacyjny to Vista…

Teoretycznie tak, ale napracujesz się z tym o wiele więcej niż przerobienia zapisu (oraz odczytu) na tryb binarny do jednego pliku.

Może baza danych byłaby wyjściem?

Możnaby też po prostu zmodyfikować program tak żeby się nie wysypywał…

Na bazach nie znam się niestety… Mam nieduży program, który wymaga podania jakby identyfikatora, dzięki któremu możemy zobaczyć wszystkie opcje w MENU programu. Program zapisuje każde “logowanie” do pliku, który wygląda np. tak:

Thu Jun 11 18:48:38 2009	-DOSTĘP ZABLOKOWANY

Thu Jun 11 18:48:52 2009	-DOSTĘP ZABLOKOWANY

Fri Jun 12 13:59:03 2009	-LOGOWANIE

Fri Jun 12 14:00:33 2009	-DOSTĘP ZABLOKOWANY

Fri Jun 12 14:00:38 2009	-LOGOWANIE

Fri Jun 12 14:06:14 2009	-LOGOWANIE

Fri Jun 12 14:07:31 2009	-DOSTĘP ZABLOKOWANY

Fri Jun 12 14:20:51 2009	-LOGOWANIE

Chciałbym aby nikt np. nie mógł sobie usunąć tych linijek z “Dostępem zabronionym” itp… :frowning:

Pierwszy i chyba najprostszy sposób jaki mi przyszedł do głowy to uruchomienie programu w tle który by otwierał pliki z założoną blokadą. Po wykryciu uruchomienia programu zwalniałby blokadę, a po wyłączeniu programu zakładałby ją na nowo.

Ja bym zrobił jakieś szyfrowanie. Np : base64. Ewentualnie zapisać plik w jakimś innym kodowaniu (np Arabskim xD) a potem tylko napisać program do odczytywania tych plików :wink:

Base64 nie nadaje się do szyfrowania :wink: Już lepiej jakiś prosty algorytm z kluczem prywatnym.

Jeśli będzie zapisane w ANSII albo Unicode i nie będzie się używać znaków z danego jezyka to i tak to nic nie da. dla utrudnienia można jakieś przesunięcie zastosować(albo zwykłą negację chara).

Przesunięcie ? Coś w rodzaju szyfru Cezara ?

Coś w rodzaju szyfru Cezara(choć ja bym preferował negację wartości znaku(c -> -c)) :wink:

Eeee, mogę zastosować tą całą negację dla każdego znaku w pliku, ale co z tego - każdy i tak będzie mógł go w każdej chwili usunąć…

Masz tyle sposobów podanych…

Nie da się zabezpieczyć pliku w taki sposób jak chcesz, bo administrator zawsze będzie mógł go usunąć.

Może sumy CRC32 i jakiś szyfr tak jak mówił Fiołek?