Jeśli zapomniałeś/zapomniałaś hasła administratora w Programie Płatnika możesz je łatwo odzyskać (dotyczy to także hasła ostatniej użytej bazy danych).
Uwaga: Misie z firmy Koala (ja nie mam z nimi nic wspolnego!) na podstawie ponizszych informacji napisaly program, ktory odzyskuje hasla Platnika. Programik jest darmowy i mozna go znalezc tutaj: Koala Ratownik
Uwaga: Innym darmowym programem, który potrafi odplątać problemy z Płanikiem jest od-Plątnik autorstwa JBW: od-Plątnik
Hasła trzymane są w rejestrze systemu Windows, hasło administratora w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\PROKOM Software SA\Płatnik\5.01.001\Admin w kolejnych wartościach AdmXX (każda zmiana hasła dodaje 1 wpis, aktualne hasło znajduje się w polu AdmXX o największej wartości XX). Przy instalacji wypełnianych jest kilka wartości początkowych, do Adm1 wpisywana jest aktaulna data, do Adm2 i 3 - imię i nazwisko administratora, do Adm4 początkowe hasło. Przy zmianie hasła do starego dopisywany jest znak '1'. Hasło może mieć maksymalnie 24 znaki.
Hasło bazy danych (ostatniej użytej) znajduje się w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\PROKOM Software SA\Płatnik\5.01.001\Baza, pole Jet OLEDB:Database Password.
Hasla są "zaszyfrowane", to znaczy zakodowane w prosty do odkodowania sposób. Aby odtworzyć hasło możesz skorzystać z formularza albo użyć zamieszczonego niżej skryptu.
Przykładowe hasło wygląda tak: lzpovzyswnvw (w postaci odkodowanej - "haslo2")
Tip 1: informacja otrzymana od EMPI'ego: można zwalczyć wymuszanie zmiany hasła co miesiąc ustawiając w kluczu HKLM\SOFTWARE\PROKOM Software SA\Płatnik\6.01.001\Parametry\LimitHasła większa liczbę dni ważności hasła (domyślnie jest 30).
Tip 2: usuwanie haseł baz MS Access (czyli to właśnie Cię interesuje jeśli np. przeinstalowałeś system a teraz nie pamiętasz haseł do bazy płatnika)
Tip 3: jeśli wydaje ci się, że znasz hasło do bazy, a mimo to Płatnik nie chce otworzyć bazy danych - sprawdź czy plik .mdb nie ma ustwionego atrybutu "tylko do odczytu"
Tip 4: Skrypty przerobione na C++: http://www.manobit.com/platnik-haslo/
dekodowanie hasła: | |
kodowanie hasła: |
#!/usr/bin/perl -w # mg@fork.pl # https://platnik.fork.pl/ # https://github.com/marcin-gryszkalis/platnik/ use warnings; use strict; use Data::Dumper; my $enc = shift; sub swap($$) { $_ = shift; my $n = shift; s/(.{$n})(.{$n})/$2$1/g; return $_; } my $k = "lmnopqrstuvwxyz{"; my @pkey = ( swap($k, 8), swap(swap($k, 4), 1), swap(swap($k, 8), 1), swap($k, 1), swap($k, 4), swap($k, 2), swap(swap($k, 2), 1), swap(swap(swap($k, 4), 2), 1), ); my @order = ( 0,1,2,3,4,0,3,5, 2,1,5,4,3,6,6,2, 4,2,2,4,3,2,7,7, ); my $i = 0; sub dec($$) { my $a = index $pkey[$order[$i % 24]], shift; my $b = index $pkey[$order[$i % 24]], shift; $i++; return chr hex sprintf "%x%x",$b,$a; } $enc =~ s/[^$k]//g; $enc =~ s/(.)(.)/dec($1,$2)/ge; print "$enc\n";
#!/usr/bin/perl -w # mg@fork.pl # https://platnik.fork.pl/ # https://github.com/marcin-gryszkalis/platnik/ use strict; use warnings; my $enc = shift; sub swap($$) { $_ = shift; my $n = shift; s/(.{$n})(.{$n})/$2$1/g; return $_; } my $k = "lmnopqrstuvwxyz{"; my @pkey = ( swap($k, 8), swap(swap($k, 4), 1), swap(swap($k, 8), 1), swap($k, 1), swap($k, 4), swap($k, 2), swap(swap($k, 2), 1), swap(swap(swap($k, 4), 2), 1), ); my @order = ( 0,1,2,3,4,0,3,5, 2,1,5,4,3,6,6,2, 4,2,2,4,3,2,7,7); my $i = 0; sub enc($) { my $c = ord shift; my $a = $c & 0xf; my $b = $c >> 4; $a = substr($pkey[$order[$i % 24]], $a, 1); $b = substr($pkey[$order[$i % 24]], $b, 1); $i++; return "$a$b"; } $enc =~ s/(.)/enc($1)/ge; print "$enc\n";