#art

wszystkie notatki oznaczone etykietą "art"

Autoryzacja w Gadu Radio

Udało mi się wreszcie opisać sposób i algorytm autoryzacji w usłudze Gadu Radio. Wykorzystałem materiały udostępnione przez AQQKillera oraz własne analizy i spostrzeżenia wynikłe w czasie prac nad wtyczką “Gadu Radio” dla komunikatora Tlen.pl. Wprowadzenie Gadu Radio to najpopularniejsze polskie radio internetowe. Po raz pierwszy zaczęło nadawać we wrześniu 2006 roku. Obecnie słucha je już 250 tys. osób dziennie i ponad 1,2 mln osób miesięcznie. Jest to typowa usługa internetowej rozgłośni radiowej nadająca swoje audycje przez Internet za pomocą przesyłania strumieniowego, wykorzystując odpowiednie oprogramowanie serwera mediów strumieniowych, w tym przypadku oprogramowania fundacji Xiph.

Czytaj dalej

Dostęp do konsoli z aplikacji GUI

Popełniłem sobie małego arta na temat dostępu do konsoli spod aplikacji GUI, opisującego jak najprościej rozróżnić czy aplikacja okienkowa została uruchomiona spod konsoli i jak do niej się dorwać, choćby po to by wyświetlić dostępne opcje linii poleceń naszej aplikacji. Główna inspiracja do wgłębienia się w ten temat była obsługą linii poleceń w aplikacjach napisanych z wykorzystaniem toolkita wxWidgets. Tam właśnie dostępne opcje linii poleceń aplikacji GUI wyświetlane są w MessageBoxie, nawet, jeśli uruchamiamy ja spod konsoli.

Czytaj dalej

Pliki konfiguracyjne komunikatora Tlen.pl

Nowa publikacja z cyklu “Tlen.pl bez tajemnic”, na temat plików konfiguracyjnych komunikatora Tlen.pl oraz metody ich szyfrowania. 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 komunikatora `profiles.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:

Czytaj dalej

Struktura archiwum komunikatora Tlen.pl

Znów o tlenie, nowa publikacji z serii “Tlen.pl bez tajemnic”, tym razem na temat struktury archiwum komunikatora Tlen.pl. Tlen.pl tworzy dla każdego profilu folder DataBase, umiejscowiony w katalogu danego profilu. W folderze tym są przechowywane pliki archiwum, a w nich zależnie od ustawień - wiadomości, rozmowy i smsy. Pliki archiwum można podzielić na dwa rodzaje - pliki indeksowe i pliki danych. Pliki indeksowe, o rozszerzeniu .idx, jak sama nazwa wskazuje, składają się z indeksów przechowujących zapisane informacje o wiadomościach, rozmowach, i smsach, których treść znajduje się w plikach danych, identyfikowanych rozszerzeniem .

Czytaj dalej

Autoryzacja pluginów w komunikatorze Tlen.pl

Kolejna publikacja z serii “Tlen.pl bez tajemnic” prezentująca tajemnice systemu autoryzacji pluginów. Oczywiście, tak jak w przypadku połączeń szyfrowanych, i tym razem udało się w to wmieszać andka, który nieco prędzej opublikował swoje wnioski na temat autoryzacji pluginów. System pluginów w komunikatorze tlen.pl opiera się na łączonych dynamicznie bibliotekach - DLL (Dynamic Link Library) ze zmienionym rozszerzeniem na .tpl, co ułatwia identyfikacje i odróżnienie pluginu od innych bibliotek. Oficjalne pluginy wydane przez twórców tlen.

Czytaj dalej

Połączenia szyfrowane protokołu Tlen.pl

Udało mi się wreszcie poświęcić chwilkę na napisanie publikacji na temat połączeń szyfrowanych w tlenie. Kilka dni temu wraz z andkiem analizowaliśmy szczegóły techniczne działania tej funkcjonalności. Jest to pierwsza publikacja z cyklu “Tlen.pl bez tajemnic”, planuje jeszcze kilka publikacji, których tematem będzie autoryzacja pluginów, kodowanie plików konfiguracyjnych komunikatora, format archiwum itd… Do tej pory żadna dostępna biblioteka, bądź klasa do obsługi protokołu komunikatora tlen.pl nie umożliwiała wykorzystywania szyfrowanych połączeń miedzy klientem a serwerem.

Czytaj dalej

Dynamiczna alokacja pamięci

W języku C do dynamicznego przydzielania pamięci wykorzystuje się funkcje (biblioteki standardowej) malloc(), calloc() i realloc(), a zwalniania pamięci - free(). Funkcje te są popularne i praktyczne w użyciu, ale jak wspomniał Bruce Eckel, w swojej książce “Thinking In C++”, są również prymitywne, bo wymagają one zarówno zrozumienia, jak i uwagi ze strony programisty. Niby wszystko jasne, ale nie tak do końca jest to takie kolorowe. Typowe przydzielenie pamięci wygląda tak:

Czytaj dalej