kubek3898 Temat założony przez niniejszego użytkownika |
Ochrona pliku przed edycją, lub zakodowanie binarnie » 2013-03-02 16:26:49 Chcę sobie zrobić plik licencyjny, do którego zapiszę czas w formacie unixowym. Później w programie sprawdzać będę czy czas zapisany w pliku jest mniejszy lub równy od aktualnego. Jeśli tak - wtedy program przestaje działać :D. Problem w tym, że sam plik każdy może edytować, przez co sam pomysł jest bezużyteczny... Jak zatem dostatecznie zablokować plik tak, by nie można go było zedytować? Napisałem taki kod:
void make_license() { char sciezka[] = "license.txt"; time_t czas = time( & czas ); DWORD size_time_t = sizeof( time_t ); DWORD tmp;( sciezka, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 ); if( hFile == INVALID_HANDLE_VALUE ) { cout << "sdffdssdf"; } WriteFile( hFile,( LPVOID ) & czas, size_time_t, & tmp, 0 ); CloseHandle( hFile ); ReadFile( CreateFile( sciezka, GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ),( LPVOID ) & czas, size_time_t, & tmp, 0 ); }
Zapisuje ok, a przynajmniej tak mi się wydaje, bo są krzaczki :D. Jednak jak to sprawdzić? Mam tą funkcję read file, ale jak ją wyświetlić na ekranie konsoli np. by sprawdzić co jest w pliku? A jeśli tak się nie da, to jak zabezpieczyć plik przed edycją?
Pozdrawiam. |
|
m4tx |
» 2013-03-02 16:44:58 Jak zatem dostatecznie zablokować plik tak, by nie można go było zedytować? |
Nie da się. |
|
kubek3898 Temat założony przez niniejszego użytkownika |
» 2013-03-02 16:46:58 A chociaż zakodować? |
|
pekfos |
» 2013-03-02 16:57:17 Można, ale i tak da się zmodyfikować. |
|
kubek3898 Temat założony przez niniejszego użytkownika |
» 2013-03-02 17:20:07 A czy w takim razie mój kod w 1 poście jest prawidłowy? Jeśli tak, to jak zapisać w postaci binarnej, a wyświetlić niezmodyfikowaną.
@edit
Teraz wpadlem na inny pomysl. Dane zapisac w pliku .php i wyslac je na serwer, pozniej pobrac. Da sie tak zrobic? |
|
Wasilek |
» 2013-03-02 22:11:00 No tak :P Tylko musisz mieć serwer :)
Edit. Znaczy się nie znam rozszerzenia .php, ale ogólnie pobranie tej daty z serwera jest chyba najbezpieczniejszą formą :P Bo też najtrudniej takie coś edytować :) |
|
xevuel |
» 2013-03-03 07:14:56 Raz: banalnie jest podejrzeć takie żądanie (nawet HTTPS), a następnie zmienić datę w swoim komputerze na taką sprzed tej wysłanej przez serwer. Dwa: odpowiedź serwera nigdy nie jest w 100% pewna, bo można ją zmodyfikować, chociażby za pomocą DLL Injection i hookowania funkcji. Trzy: wg tego co napisałeś, ominięcie tego całego mechanizmu będzie zapewne polegać na wyedytowaniu tylko jednego bajta w pliku wykonywalnym, bez takich zabaw jak wyżej. |
|
kubek3898 Temat założony przez niniejszego użytkownika |
» 2013-03-03 08:16:47 Być może, ale mnie nie potrzebny jest plik, który nie wiadomo kto nie będzie mógł zmienić. Wiem, że Ci którzy będą go używać są laikami... To w takim razie mogę wysłać na serwer WWW? Jeśli tak to jest jakiś poradnik do czegoś takiego? |
|
« 1 » 2 |