Ochrona pliku przed edycją, lub zakodowanie binarnie
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Ochrona pliku przed edycją, lub zakodowanie binarnie

AutorWiadomość
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:

C/C++
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.
P-77487
» 2013-03-02 16:44:58
Jak zatem dostatecznie zablokować plik tak, by nie można go było zedytować?
Nie da się.
P-77490
Temat założony przez niniejszego użytkownika
» 2013-03-02 16:46:58
A chociaż zakodować?
P-77491
» 2013-03-02 16:57:17
Można, ale i tak da się zmodyfikować.
P-77492
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?
P-77493
» 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ć :)
P-77511
» 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.
P-77520
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?
P-77521
« 1 » 2
 Strona 1 z 2Następna strona