Pliki konfiguracyjne komunikatora Tlen.pl
Komunikator tlen.pl, zależnie od ustawień, może przechowywać pliki konfiguracyjne wraz z danymi profili w katalogu instalacyjnym programu, domowym katalogu danych (C:\Documents and Settings\username\Dane aplikacji\Tlen.pl) lub dowolnym innym miejscu, wybranym przez użytkownika podczas instalacji.
Dwa ważniejsze pliki znajdujące się w katalogu z konfiguracją:
options.dat– podstawowe, globalne ustawienia komunikatoraprofiles.dat– profile obsługiwane przez komunikator (wraz z hasłami)
Pozostałe pliki konfiguracyjne maja zasięg lokalny, ograniczony dla danego profilu i znajdują się w katalogu tegoż profilu:
options.dat– wszelkie ustawienia naszego profilucontactsdata.dat– dodatkowe informacje jakie przypisaliśmy poszczególnym kontaktomroster.dat– roster z kontaktami tlenowymi w wersji offlinegg.dat– roster z kontaktami GGsmsbook.dat– książka telefonicznaoutbox.dat– lista smsów do wysłania – SMS Outboxlast– lista ostatnich wysyłanych obrazków (nie szyfrowane)Avatars/avatars.dat– informacje o avatarch (nie szyfrowane)PublicAvatars/avatars.dat– j/w
Wszystkie pliki, jeśli nie zaznaczono inaczej, są zaszyfrowanymi plikami XML lub pseudoXML, bo do prawdziwego, zgodnego z standardem i specyfikacją XML-a momentami troszkę im brakuje. Kodowanie ANSI, bo jakby inaczej do XML-a bez prologu w o2 :P
Metoda szyfrowania opiera się na prostym przekształcaniu za pomocą funkcji XOR każdego znaku danych.
Wartość wektora przesunięcia bitowego dla każdego kolejnego znaku jest inna i przyjmuje wartość:
v = (133 * v + 231) % 256
Początkowa wartość wektora równa jest:
v = size % 256
gdzie size określa rozmiar danych do de/kodowania.
Żeby było jeszcze ciekawiej, przed jakimikolwiek operacjami de/kodowania wartość początkowa podana jest odpowiedniej ilości przekształceń za pomocą prostej operacji matematycznej:
v = (133 * v + 231) % 256
Ilość iteracji tych przekształceń zapisana jest w zaszyfrowanymm pliku w 2 pierwszych bajtach jako liczba typu short bez znaku.
Implementacja funkcji do de/kodowania w języku C:
void code(unsigned char* buf, int size, unsigned short iterate) {
int i;
int v = size % 256;
for (i = 0; i < iterate; i++) {
v = (133 * v + 231) % 256;
}
for (i = 0; i < size; i++) {
v = (133 * v + 231) % 256;
buf[i] = buf[i] ^ v;
}
}
Dla tych, którzy szybko chcieliby przeprowadzić operacje de/kodowania pliku powstał programik (skrypt) w perlu – o2cfg.pl. Sposób użycia znajdziecie po wydaniu polecenia o2cfg.pl –-help.
Przykładowy programik w C i Pascalu można znaleźć w tym temacie na forum ekipy tlenowej.
I zbliżamy się do końca tej krótkiej publikacji na temat plików tlenowych.