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


(Jooooooozek) #1

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...


([alex]) #2

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


(matiit) #3

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

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


(Jooooooozek) #4

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:


(Fiołek) #5

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.


(Kalin 93) #6

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:


(Fiołek) #7

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).


(Kalin 93) #8

Przesunięcie ? Coś w rodzaju szyfru Cezara ?


(Fiołek) #9

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


(Jooooooozek) #10

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ąć...


(Fiołek) #11

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ąć.


(Kalin 93) #12

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