Przejmowanie wiadomości Gadu-Gadu
|
|
- Ryszard Piotrowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 ATAK MACIEJ PAKULSKI Przejmowanie wiadomości Gadu-Gadu Stopień trudności Komunikatory internetowe są jednym z coraz częściej wykorzystywanych sposobów komunikacji międzyludzkiej. Za ich pomocą prowadzimy luźne pogawędki ze znajomymi, załatwiamy sprawy zawodowe, a nawet wyznajemy uczucia drugiej osobie. Czy jednak możemy być pewni tego, że nikt nas nie podsłuchuje? Z ARTYKUŁU DOWIESZ SIĘ jak protokół Gadu-Gadu obsługuje wysyłanie/odbieranie wiadomości, jak działają surowe gniazda (ang. raw sockets). CO POWINIENEŚ WIEDZIEĆ znać podstawy projektowania zorientowanego obiektowo, znać podstawy działania sieci komputerowych. Jedną z metod przechwycenia wiadomości jest zastosowanie keyloggera. W numerze styczniowym w artykule C#.NET. Podsłuchiwanie klawiatury przedstawiony został projekt podstawowego keyloggera dla systemu Windows. Takie rozwiązanie daje nam jednak możliwość odczytania wyłącznie danych wysyłanych przez klienta komunikatora do serwera. Aby mieć dostęp do danych zarówno wysyłanych, jak i odbieranych z serwera, musimy spróbować przechwycić je z sieci. Komunikacja sieciowa oparta jest na gniazdach. Gniazdo (ang. socket) jest abstrakcyjnym dwukierunkowym punktem końcowym procesu komunikacji. Dwukierunkowość oznacza możliwość i odbioru, i wysyłania danych. Pojęcie gniazda wywodzi się od twórców systemu Berkeley UNIX. Istnieje możliwość utworzenia tzw. surowych gniazd (ang. raw sockets), dzięki którym mamy dostęp do całości pakietu danych, tzn. wraz z nagłówkiem IP, TCP itd. Uzyskujemy w ten sposób możliwość monitorowania przepływu danych w sieci. Surowe gniazda są w pełni obsługiwane przez system Windows XP SP2. Nowy produkt Microsoftu Windows Vista w obecnej wersji ogranicza ich działanie. Można zadać sobie pytanie, czy ograniczenia wprowadzone w Windows Vista są próbą walki z hakerami czy tylko błędem, który zostanie w przyszłości poprawiony. Zwłaszcza, iż według nieoficjalnych zapowiedzi developerów z Redmond, surowe gniazda mają być w pełni dostępne wraz z nadejściem service packa dla systemu Windows Vista. Projekt aplikacji przechwytującej wiadomości komunikatora internetowego zrealizujemy korzystając z platformy.net, która dostarcza wygodnego zbioru typów pozwalającego w prosty sposób na wykonanie tego zadania. Jako komunikator wykorzystamy klienta sieci Gadu-Gadu. Gadu-Gadu wysyłanie i odbieranie wiadomości Jednym z najpopularniejszych polskich komunikatorów internetowych jest Gadu-Gadu. Jest on dostępny na polskim rynku od 2000 roku. Przez ten czas zyskał sobie wielką popularność i obecnie posiada liczbę użytkowników szacowaną na kilka milionów. Wiele innych komunikatorów umożliwia swoim użytkownikom komunikację nie tylko z własnymi dedykowanymi serwerami, ale również z serwerami sieci Gadu-Gadu. Klient Gadu-Gadu bazuje na protokole TCP/IP. Połączenie jest realizowane z wykorzystaniem portu 8074 bądź 443. Dane wysyłane są w postaci pakietów, rozpoczynających się od nagłówka, którego postać przedstawia Listing 1. Pole type określa typ wysyłanego pakietu, pole length długość pakietu bez nagłówka, wyrażoną w bajtach. Po nagłówku znajdują się właściwe dane pakietu. Gdy klient otrzymuje wiadomość, wówczas pole type przyjmuje wartość 0x0a. Po nagłówku pakietu wysyłana jest struktura przedstawiona na Listingu HAKIN9 4/2008
2 C#.NET. PRZECHWYTYWANIE WIADOMOŚCI GADU-GADU Pole sender to numer nadawcy wiadomości, seq jest numerem sekwencyjnym, time czasem nadania wiadomości, class klasą wiadomości, a msg jest wysyłaną wiadomością. Aby określić długość wiadomości, musimy od pola length nagłówka odjąć ilość bajtów zajmowaną przez dane pakietu bez wiadomości (tj. 16 bajtów). Wiadomości są kodowane przy użyciu strony kodowej Windows Gdy klient chce wysłać wiadomość, wówczas pole type nagłówka przyjmuje wartość 0x0b. Oprócz nagłówka wysyłana jest struktura zdefiniowana na Listingu 3. Pole recipient określa numer odbiorcy, seq jest numerem sekwencyjnym, class klasą wiadomości, a msg wysyłaną wiadomością. Protokół IP Protokół IP wykorzystuje się do sortowania oraz dostarczania pakietów. Pakiety zwane są datagramami. Każdy taki datagram składa się z nagłówka Listing 1. Nagłówek pakietu Gadu- Gadu struct GGHeader int type; int length; ; oraz ładunku, zawierającego przeważnie pakiet innego protokołu. Obecnie używa się protokołu IP w wersji 4. W nagłówku datagramu IPv4 możemy wyróżnić następujące pola: Version wersja protokołu, IHL (Internet Header Length) długość nagłówka, wyrażona jako ilość 32- bitowych słów, TOS (Type of Service) typ obsługi określający sposób, w jaki powinien być obsłużony pakiet, Total Length całkowita długość datagramu IP w bajtach, Identification identyfikuje określony datagram IP, Flags pole to zawiera 3 bity, jednak wykorzystuje się tylko dwa spośród nich. Jedna z flag określa, czy pakiet może być fragmentowany, druga zaś czy jest to już końcowy fragment w datagramie, czy może jest jednak więcej fragmentów, Fragment Offset określa pozycję fragmentu w stosunku do oryginalnego ładunku IP, TTL (Time to Live) określa czas (w sekundach), przez jaki datagram pozostanie w sieci, zanim zostanie odrzucony, Protocol określa typ protokołu będącego ładunkiem datagramu IP, Header Checksum suma kontrolna nagłówka, wykorzystywana w celu sprawdzenia jego poprawności, Source IP Address źródłowy adres IP, Destination IP Address docelowy adres IP. Protokół TCP Protokół TCP jest jednym z najczęściej używanych protokołów komunikacyjnych w sieciach komputerowych. Jest to protokół połączeniowy, w którym to przed rozpoczęciem komunikacji wymagane jest zainicjowanie połączenia przez jedną ze stron. Dane przesyłane są w postaci segmentów składających się każdorazowo z nagłówka oraz danych. Nagłówek TCP możemy podzielić na następujące pola: Source Port port źródłowy, Destination Port port docelowy, Sequence Number służy do identyfikacji pierwszego bajtu danych w danym segmencie, Acknowledgment Number określa numer sekwencyjny bajtu oczekiwanego przez nadawcę, Data Offset długość nagłówka mierzona jako ilość 32-bitowych słów, Reserved pole zarezerwowane do przyszłego wykorzystania, Listing 2. Struktura reprezentująca wiadomość odbieraną przez klienta Gadu-Gadu struct RecvMsg int sender; int seq; int time; int class; string msg; ; Listing 3. Struktura reprezentująca wiadomość wysyłaną przez klienta Gadu-Gadu struct SendMsg int recipient; int seq; int class; string msg; ; Version IHL TOS Total Length Identification Flags Fragment Offset TTL Protocol Header Checksum Source IP Address Destination IP Address Options and Padding Rysunek 1. Nagłówek IPv4 4/2008 HAKIN9 37
3 ATAK Flags flagi zawierające informację o przeznaczeniu segmentu, Window określa ilość danych, jaką nadawca jest gotów przyjąć, Listing 4. Pola klasy IPHeader private byte versionandheaderlength; private byte typeofservice; private ushort totallenth; private ushort identification; private ushort flagsandoffset; private byte ttl; private byte protocoltype; private short checksum; private uint sourceaddress; private uint destinationaddress; private byte headerlength; private byte[] ipdata = new byte[4096]; Listing 5. Konstruktor klasy IPHeader Checksum suma kontrolna wykorzystywana do sprawdzenia poprawności transmisji, Urgent Pointer pole public IPHeader(byte[] datareceived, int received) MemoryStream sm = new MemoryStream(dataReceived, 0, received); BinaryReader br = new BinaryReader(sm); versionandheaderlength = br.readbyte(); typeofservice = br.readbyte(); totallenth = (ushort)ipaddress.networktohostorder(br.readint16()); identification = (ushort)ipaddress.networktohostorder(br.readint16()); flagsandoffset = (ushort)ipaddress.networktohostorder(br.readint16()); ttl = br.readbyte(); protocoltype = br.readbyte(); checksum = IPAddress.NetworkToHostOrder(br.ReadInt16()); sourceaddress = (uint)(ipaddress.networktohostorder(br.readint32())); destinationaddress = (uint)ipaddress.networktohostorder(br.readint32()); headerlength = versionandheaderlength; headerlength = (byte)((headerlength & 0x0f) * 4); Array.Copy(dataReceived, headerlength, ipdata, 0, totallenth - headerlength); catch (Exception exc) Listing 6. Właściwości klasy IPHeader public byte[] Data return ipdata; public EProtocolType TypeOfProtocol if (protocoltype == 6) return EProtocolType.TCP; return EProtocolType.OTHER; public int MessageLength return totallenth - headerlength; wykorzystywane do wyróżnienia szczególnie ważnych wiadomości. Tworzymy klasę przechwytującą pakiety GG Projekt aplikacji umożliwiającej przechwytywanie pakietów Gadu-Gadu stworzymy używając języka C# oraz darmowego środowiska Visual C# 2005 Express Edition. Rozpoczynamy od stworzenia nowego projektu Windows Forms. Do projektu dodajemy nową klasę i nadajemy jej nazwę IPHeader. Klasa ta będzie reprezentować nagłówek IP. Najpierw dodamy odpowiednie pola do naszej klasy (Listing 4). Pola klasy, oprócz dwóch ostatnich, są polami nagłówka IP. Pole headerlength to całkowita długość nagłówka IP. Tablica ipdata jest ładunkiem datagramu IP. Możemy teraz przejść do napisania konstruktora klasy. Będzie on pobierał dwa parame: tablicę przechwyconych bajtów oraz ich ilość. Dodajemy kod z Listingu 5. Na początku tworzymy strumień poprzez stworzenie nowego obiektu klasy MemoryStream z przestrzeni nazw System.IO. Przeciążony konstruktor tej klasy wymaga następujących parametrów: tablicy bajtów, z której chcemy utworzyć strumień, pozycji w tablicy, od której zacznie się tworzenie strumienia, a także długości strumienia. Następnie tworzymy obiekt klasy BinaryReader, dzięki któremu możliwe jest odczytanie typów prostych ze strumienia. Konstruktor przyjmuje referencję do strumienia, z którego chcemy czytać. Możemy teraz odczytać interesujące nas dane. Warto tu zwrócić uwagę na dwie rzeczy. Metody odczytujące z klasy BinaryReader automatycznie zmieniają pozycję w strumieniu po wykonaniu operacji odczytu, a dane odebrane z sieci zapisane są w kolejności big endian (najbardziej znaczący bajt jest umieszczany jako pierwszy), podczas gdy na komputerach PC dane są przeważnie zapisywane w kolejności little endian (najmniej znaczący bajt umieszczany jest jako pierwszy). W związku z tym, aby zmienić kolejność bajtów, wykorzystujemy statyczną metodę NetworkToHostOrder klasy IPAddress. Aby móc jej użyć, musimy dodać przestrzeń nazw System.Net. Następnie odczytujemy długość odebranego nagłówka IP. Jest ona zapisana jako ilość 4-bajtowych słów 38 HAKIN9 4/2008
4 C#.NET. PRZECHWYTYWANIE WIADOMOŚCI GADU-GADU i znajduje się w młodszej części bajtu versionandheaderlength. Aby nie utracić danych z tej zmiennej, wykorzystujemy pomocniczą zmienną headerlength. Wykonujemy operację AND, aby wyzerować starszą część bajtu oraz mnożymy uzyskaną wielkość przez 4 w celu uzyskania właściwej długości nagłówka. Wartość tę wykorzystujemy do określenia ilości bajtów zajmowanych przez ładunek w datagramie IP. Używając statycznej metody Copy klasy Array, kopiujemy te dane do wcześniej zadeklarowanej tablicy, którą wykorzystamy do odczytu danych segmentu TCP. Ostatnim krokiem jest zdefiniowanie właściwości. Nie będziemy jednak robić tego dla każdego pola naszej klasy, lecz wyłącznie dla tych wykorzystywanych przy analizie segmentu TCP. Dodajemy kod z Listingu 6. Dodatkowo zdefiniowaliśmy typ wyliczeniowy z Listingu 7., który należy dodać przed definicją klasy. Służy on do określenia typu protokołu, którego pakiet jest ładunkiem w datagramie IP. Dla nas interesujący jest tylko protokół TCP, tak więc typ wyliczeniowy zawiera tylko dwa pola: TCP (dla protokołu TCP) oraz OTHER (dla innego typu protokołu). Przystępujemy teraz do napisania klasy reprezentującej nagłówek TCP. Dodajemy nowa klasę i nadajemy jej nazwę TCPHeader. Zaczniemy od dodania pól do naszej klasy dopisujemy kod z Listingu 8. Pola klasy, z wyjątkiem dwóch ostatnich, to pola nagłówka TCP, headerlength jest długością nagłówka w bajtach, a tablica tcpdata to dane segmentu. Przechodzimy teraz do zdefiniowania konstruktora dla naszej klasy. Podbiera on dwa parame: tablicę bajtów, będącą ładunkiem datagramu IP, oraz ich ilość. Dodajemy kod z Listingu 9. Na początku tworzymy obiekty MemoryStream oraz BinaryReader, wykorzystywane do odczytu poszczególnych pól nagłówka TCP. Następnie odczytujemy długość nagłówka. Jest ona zapisana ponownie jako ilość 4-bajtowych słów w 4 najstarszych bitach zmiennej flagsandoffset. Wykonujemy więc przesunięcie o 12 pozycji w lewo oraz mnożymy otrzymaną wartość przez 4 w celu uzyskania właściwej ilości bajtów zajmowanych przez nagłówek TCP. Długość tę wykorzystujemy do określenia miejsca początku danych segmentu. Na końcu dodajemy właściwości dla wybranych pól naszej klasy, dopisując kod z Listingu 10. Po utworzeniu klas opisujących nagłówki IP oraz TCP, przystępujemy do zdefiniowania klasy przechwytującej dane z sieci. Tworzymy nową klasę i nadajemy jej nazwę GGListener. Pierwszym krokiem powinno być dodanie niezbędnych przestrzeni nazw: System.Net, System.Net.Sockets, System.IO, System.Text. Do klasy dodajemy pola z Listingu 11. Pola ipheader oraz tcpheader są odpowiednio referencjami do obiektów IPHeader oraz TCPHeader. Pole s jest obiektem klasy Socket, reprezentującej gniazdo. Pole filepath jest ścieżką do pliku, w którym będziemy zapisywali przechwycone wiadomości Gadu-Gadu. Możemy teraz przejść do napisania metod naszej klasy. Przedstawia je kod z Listingu 12. Pierwsza metoda konstruktor jako parametr przyjmuje ścieżkę do pliku, w którym zapiszemy przechwycone wiadomości. Metoda IsGGPort sprawdza, czy numer portu, określony przekazywanym do niej parametrem, jest numerem portu Gadu-Gadu. Za pomocą metody MachineAddress uzyskujemy referencję do obiektu klasy IPAddress reprezentującej adres IP. Sercem klasy jest metoda StartToListen, za pomocą której rozpoczynamy przechwytywanie danych. Na początku tworzymy nowy obiekt klasy Socket. Konstruktor klasy przyjmuje następujące parame: typ wyliczeniowy AddressFamily reprezentuje rodzinę protokołów do obsługi gniazda każda stała, przechowywana przez ten typ wyliczeniowy, określa sposób, w jaki klasa Socket będzie określała adres. InterNetwork określa użycie adresu IP w wersji 4, typ wyliczeniowy SocketType, określający typ gniazda, typ wyliczeniowy ProtocolType, określający typ protokołu. Listing 7. Typ wyliczeniowy EProtocolType enum EProtocolType TCP, OTHER Listing 8. Pola klasy TCPHeader private ushort sourceport; private ushort destinationport; private uint sequencenumber; private uint acknowledgmentnumber; private ushort dataoffsetandflags; private ushort window; private short checksum; private ushort urgentpointer; private byte headerlength; private byte[] tcpdata = new byte[4096]; Listing 9. Konstruktor klasy TCPHeader public TCPHeader(byte[] data, int received) MemoryStream sm = new MemoryStream(data, 0, received); BinaryReader br = new BinaryReader(sm); sourceport = (ushort)ipaddress.networktohostorder(br.readint16()); destinationport = (ushort)ipaddress.networktohostorder(br.readint16()); sequencenumber = (uint)ipaddress.networktohostorder(br.readint32()); acknowledgmentnumber = (uint)ipaddress.networktohostorder(br.readint32()); dataoffsetandflags = (ushort)ipaddress.networktohostorder(br.readint16()); window = (ushort)ipaddress.networktohostorder(br.readint16()); checksum = (short)(ipaddress.networktohostorder(br.readint16())); urgentpointer = (ushort)ipaddress.networktohostorder(br.readint16()); headerlength = (byte)(dataoffsetandflags >> 12); headerlength *= 4; Array.Copy(data, headerlength, tcpdata, 0, received - headerlength); catch (Exception exc) 4/2008 HAKIN9 39
5 ATAK Po stworzeniu gniazda musimy je powiązać z pulą adresów uwzględnianych przy nasłuchu. Służy do tego metoda Bind. Jako parametr przyjmuje ona referencję do obiektu klasy EndPoint. Jednakże klasa ta jest abstrakcyjna, tak więc musimy skorzystać z jednej z klas pochodnych. Tworzymy więc nowy obiekt klasy IPEndPoint. Konstruktor tej klasy wymaga dwóch parametrów: referencji do obiektu klasy IPAddress uzyskiwanej przez wywołanie wcześniej zdefiniowanej metody MachineAddress oraz numeru portu (dla surowych gniazd ustawiamy wartość 0, gdyż nie korzystają one z portów). Następnym krokiem jest określenie bu operacji niskopoziomowych wykonywanych przez gniazdo poprzez wywołanie metody IOControl. Metoda ta przyjmuje 3 parame: typ wyliczeniowy IOControlCode, określający kod kontrolny operacji do wykonania. Stała ReceiveAll oznacza, że będą odbierane wszystkie pakiety IPv4, W Sieci tablicę bajtów z parametrami wejściowymi. Zgodnie z dokumentacją Platform SDK ten parametr powinien być typu BOOL (4 bajty) i mieć wartość TRUE tak więc przekazujemy tablicę 1, 0, 0, 0, tablicę bajtów z danymi wyjściowymi. Metoda ta jest analogiczna do funkcji WinApi WSAIoctl. Następnie rozpoczynamy asynchroniczne odbieranie danych poprzez wywołanie metody BeginReceive, przyjmującej następujące parame: tablicę bajtów, w której zostaną umieszczone odebrane dane, indeks tablicy, od którego rozpocznie się zapisywanie danych w tablicy, ilość bajtów, jaką można maksymalnie odebrać, flagi, delegację AsyncCallback określającą metodę, wywoływaną w momencie ukończenia asynchronicznej operacji, obiekt klasy Object, dzięki któremu możemy przekazać dane do metody opis protokołu Gadu-Gadu, wina Microsoft, skąd można pobrać środowisko Visual C# 2005 Express Edition, zbiór bardzo wielu przykładów aplikacji dla platformy.net i nie tylko. Naprawdę godny polecenia, polska strona dla programistów.net, dokumentacja MSDN. Znajdziesz tu opisy wszystkich klas, właściwości i metod, jakie zawiera platforma.net wraz z przykładowymi programami Data Offset Source Port Reserved Flags Sequence Number Acknowledgment Number Destination Port Window wywoływanej po zakończeniu asynchronicznej operacji. W naszym projekcie delegacja AsyncCallback jest implementowana przez metodę AsyncDataReceived. Tworzy ona nowy obiekt klasy IPHeader i sprawdza, czy ładunek w datagramie IP zawiera segment TCP. Jeżeli tak się dzieje, wywoływana jest metoda SaveInfo. Na końcu ponownie rozpoczynamy asynchroniczne odbieranie danych. Metoda SaveInfo rozpoczyna działanie od stworzenia nowego obiektu klasy TCPHeader. Następnie sprawdza, czy port źródłowy bądź port docelowy są portami Gadu-Gadu. Jeżeli nie, kończy działanie. W przeciwnym wypadku następuje sprawdzenie, czy przechwyciliśmy wychodzącą/ przychodzącą wiadomość, czy też inny typ pakietu. W przypadku, gdy pakiet Gadu-Gadu jest wiadomością wysyłaną do/z klienta Gadu-Gadu, interesujące nas dane są odczytywane i następnie zapisywane do pliku. Gdy nasza klasa jest już gotowa, Listing 10. Właściwości klasy TCPHeader public byte[] TcpData return tcpdata; public ushort SourcePort return sourceport; public ushort DestinationPort return destinationport; Listing 11. Pola klasy GGListener Checksum Options and Padding Urgent Pointer private IPHeader ipheader; private TCPHeader tcpheader; private byte[] data; private Socket s; private string filepath; Rysunek 2. Nagłówek TCP 40 HAKIN9 4/2008
6 C#.NET. PRZECHWYTYWANIE WIADOMOŚCI GADU-GADU Listing 12. Metody klasy GGListener // konstruktor public GGListener(string _fileparh) filepath = _fileparh; private bool IsGGPort(ushort port) return (port == 8074 port == 443); public void StartToListen() s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); s.bind(new IPEndPoint(MachineAddress(), 0)); byte[] optioninvalue = new byte[4] 1, 0, 0, 0 ; byte[] optionoutvalue = new byte[4]; s.iocontrol(iocontrolcode.receiveall, optioninvalue, optionoutvalue); data = new byte[4096]; s.beginreceive(data, 0, data.length, SocketFlags.None, new AsyncCallback(AsyncDataReceived), null); catch (Exception exc) private IPAddress MachineAddress() string hostname = Dns.GetHostName(); IPHostEn iphosten = Dns.GetHostByName(hostName); return iphosten.addresslist[0]; private void AsyncDataReceived(IAsyncResult result) int nreceived = s.endreceive(result); ipheader = new IPHeader(data, nreceived); if (ipheader.typeofprotocol == EProtocolType.TCP) SaveInfo(); data = new byte[4096]; s.beginreceive(data, 0, data.length, SocketFlags.None, new AsyncCallback(AsyncDataReceived), null); catch(exception exc) private void SaveInfo() tcpheader = new TCPHeader(ipHeader.Data, ipheader.messagelength); if (!(IsGGPort(tcpHeader.DestinationPort) IsGGPort(tc pheader.sourceport))) return; if (BitConverter.ToUInt32(tcpHeader.TcpData, 0) == 0x0b BitConverter.ToUInt32(tcpHeader.TcpDa ta, 0) == 0x0a) int nmsglength = BitConverter.ToInt32(tcpHeader.TcpD ata, 4); int nstartingbyte = 0; if (!File.Exists(filePath)) using(file.create(filepath)); using (StreamWriter sw = File.AppendText(filePath)) string msgtype = " "; sw.write("\r\n \r\n"); if (tcpheader.destinationport == 8074 tcpheader.destinationport == 443 ) sw.write("wiadomość wychodząca\r\n"); msgtype = "Numer odbiorcy "; nstartingbyte = 20; nmsglength -= 12; if (tcpheader.sourceport == 8074 tcpheader.sourceport == 443) sw.write("wiadomość przychodząca\r\n"); msgtype = "Numer nadawcy "; nstartingbyte = 24; nmsglength -= 16; sw.write("port źródłowy " + tcpheader.sourceport + "\r\n"); sw.write("port docelowy " + tcpheader.destinationp ort + "\r\n"); sw.write(msgtype + BitConverter.ToUInt32(tcpHeader.TcpData, 8) + "\r\n"); Encoding e = Encoding.GetEncoding("windows-1250"); sw.write("wiadomość " + e.getstring(tcpheader.tcpd ata, nstartingbyte, nmsglength)); catch (Exception exc) możemy przejść do widoku formy i utworzyć nowy obiekt klasy oraz rozpocząć przechwytywanie danych wywołując metodę StartToListen. Podsumowanie Podstawowym celem artykułu było pokazanie, jak potężnym narzędziem są surowe gniazda i w jak łatwy sposób pozwalają na przechwytywanie danych przesyłanych w sieci. W sposób podobny do prezentowanego w artykule możemy zaimplementować aplikacje przechwytujące e, a także monitorujące adresy odwiedzanych przez użytkownika stron internetowych. Hakerzy wykorzystują je do przeprowadzenia ataków typu Denial of Service (odmowa usługi) lub IP address spoofing (fałszowanie adresu IP). Jednakże nie wolno zapomnieć o pozytywnych aspektach użycia surowych gniazd. Niewątpliwie przydają się wszędzie tam, gdzie wymagany jest pełny wgląd do danych przesyłanych w sieci, np. w celu wysłania/odbioru niestandardowych pakietów. Maciej Pakulski Absolwent studiów inżynierskich oraz aktywny członek koła naukowego.net Wydziału Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Mikołaja Kopernika w Toruniu. Obecnie na studiach magisterskich. Programowaniem zajmuje się od Potrafi programować biegle w językach C/C++, Java, VHDL. Programowaniem w języku C# i platformą.net zajmuje się od 2006 roku. Jest autorem szeregu publikacji z zakresu programowania oraz bezpieczeństwa IT. Kontakt z autorem: mac_pak@interia.pl 4/2008 HAKIN9 41
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ INTERNET PROTOCOL (IP) INTERNET CONTROL MESSAGE PROTOCOL (ICMP) WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r. PLAN IPv4: schemat nagłówka ICMP: informacje
SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej
SEGMENT TCP CZ. I Numer portu źródłowego (ang. Source port), przeznaczenia (ang. Destination port) identyfikują aplikacje wysyłającą odbierającą dane, te dwie wielkości wraz adresami IP źródła i przeznaczenia
Gniazda BSD implementacja w C#
BSD implementacja w C# Implementacja w C#: Przestrzeń nazw: System.Net.Sockets Klasa: public class Socket : IDisposable Implementacja w C#: Konstruktor: public Socket( AddressFamily addressfamily, SocketType
Przesyłania danych przez protokół TCP/IP
Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności
Aplikacja Sieciowa wątki po stronie klienta
Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe
Gniazda surowe Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź,9maja2006 Wstęp Gniazda surowe posiadają pewne właściwości, których brakuje gniazdom TCP i UDP: Gniazda surowe
Akademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne Datagram w Intersieci (IP) Krzysztof Bogusławski tel. 449 41 82 kbogu@man.szczecin.pl
Sieci komputerowe - Wstęp do intersieci, protokół IPv4
Piotr Kowalski KAiTI Internet a internet - Wstęp do intersieci, protokół IPv Plan wykładu Informacje ogólne 1. Ogólne informacje na temat sieci Internet i protokołu IP (ang. Internet Protocol) w wersji.
Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP.
Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP. Wprowadzenie Gniazdo (ang. socket) z naszego punktu widzenia (czyli programów w.net) reprezentuje najniższy poziom
KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
ADRESY PRYWATNE W IPv4
ADRESY PRYWATNE W IPv4 Zgodnie z RFC 1918 zaleca się by organizacje dla hostów wymagających połączenia z siecią korporacyjną a nie wymagających połączenia zewnętrznego z Internetem wykorzystywały tzw.
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie
Sieci komputerowe - Protokoły warstwy transportowej
Piotr Kowalski KAiTI - Protokoły warstwy transportowej Plan i problematyka wykładu 1. Funkcje warstwy transportowej i wspólne cechy typowych protokołów tej warstwy 2. Protokół UDP Ogólna charakterystyka,
TCP/IP formaty ramek, datagramów, pakietów...
SIECI KOMPUTEROWE DATAGRAM IP Protokół IP jest przeznaczony do sieci z komutacją pakietów. Pakiet jest nazywany przez IP datagramem. Każdy datagram jest podstawową, samodzielną jednostką przesyłaną w sieci
Sieci Komputerowe Protokół TCP
Sieci Komputerowe Protokół TCP Transmission Control Protocol dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Zagadnienia Protokół TCP Transmisja
Programowanie Sieciowe 1
Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Cel przedmiotu Zapoznanie z mechanizmem przesyłania danych przy pomocy sieci komputerowych nawiązywaniem
Klient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 5: Warstwa transportowa: TCP i UDP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 5 1 / 22 Warstwa transportowa Cechy charakterystyczne:
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
komunikator na platformę Android wspierający protokół GG
Piotr Spyra, Michał Urbaniak Praca Inżynierska 2010 Politechnika Poznańska Wydział Elektryczny, Informatyka http://code.google.com/p// O Projekcie Protokół GG Service Geolokalizacja Widżet Podsumowanie
KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark
Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Topologia Cele Część 1: Zapisanie informacji dotyczących konfiguracji IP komputerów Część 2: Użycie programu Wireshark do przechwycenia
Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6
Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Celem ćwiczenia jest zdobycie umiejętności programowania komunikacji unicastowej za pomocą protokołu IPv6
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Tunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR.
Tunelowanie, kapsułkowanie, XDR 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR. 1 Transmisja tunelowa i kapsułkowanie Sieci komputerowe rozwijały się stopniowo
Instrukcja laboratoryjna cz.3
Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.
Struktura komunikatów sieciowych Każdy pakiet posiada nagłówki kolejnych protokołów oraz dane w których mogą być zagnieżdżone nagłówki oraz dane protokołów wyższego poziomu. Każdy protokół ma inne zadanie
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PROTOKOŁY TCP I UDP WSTĘP DO SIECI INTERNET Kraków, dn. 12 grudnia 2016 r. PLAN TCP: cechy protokołu schemat nagłówka znane numery portów UDP: cechy protokołu
Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców
METODY WYMIANY INFORMACJI W SIECIACH PAKIETOWYCH Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców TRANSMISJA
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Platformy Programistyczne Zagadnienia sieciowe i wątki
Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura
Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN
Podstawy Transmisji Danych Wykład IV Protokół IPV4 Sieci WAN to połączenia pomiędzy sieciami LAN 1 IPv4/IPv6 TCP (Transmission Control Protocol) IP (Internet Protocol) ICMP (Internet Control Message Protocol)
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
PHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Sieci komputerowe Warstwa transportowa
Sieci komputerowe Warstwa transportowa 2012-05-24 Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 Wprowadzenie umożliwia jednoczesną komunikację poprzez sieć wielu aplikacjom uruchomionym
Akademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 5 Temat ćwiczenia: Badanie protokołów rodziny TCP/IP 1. Wstęp
TRX API opis funkcji interfejsu
TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC TRX API opis funkcji interfejsu Kwiecień 2013 Copyright TRX TRX ul. Garibaldiego 4 04-078 Warszawa Tel. 22 871 33 33 Fax 22 871 57 30 www.trx.com.pl
Protokoły sieciowe - TCP/IP
Protokoły sieciowe Protokoły sieciowe - TCP/IP TCP/IP TCP/IP (Transmission Control Protocol / Internet Protocol) działa na sprzęcie rożnych producentów może współpracować z rożnymi protokołami warstwy
Komunikator internetowy w C#
PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej
Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik
Wizualne systemy programowania Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Kolekcje List
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Laboratorium 6.7.2: Śledzenie pakietów ICMP
Topologia sieci Tabela adresacji Urządzenie Interfejs Adres IP Maska podsieci Domyślna brama R1-ISP R2-Central Serwer Eagle S0/0/0 10.10.10.6 255.255.255.252 Nie dotyczy Fa0/0 192.168.254.253 255.255.255.0
MODEL OSI A INTERNET
MODEL OSI A INTERNET W Internecie przyjęto bardziej uproszczony model sieci. W modelu tym nacisk kładzie się na warstwy sieciową i transportową. Pozostałe warstwy łączone są w dwie warstwy - warstwę dostępu
Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
PHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
ARP Address Resolution Protocol (RFC 826)
1 ARP Address Resolution Protocol (RFC 826) aby wysyłać dane tak po sieci lokalnej, jak i pomiędzy różnymi sieciami lokalnymi konieczny jest komplet czterech adresów: adres IP nadawcy i odbiorcy oraz adres
Programowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Tym razem nie skorzystamy z mechanizmu. Podglądanie pulpitu
Atak Sławomir Orłowski stopień trudności Używając mechanizmu haków w systemie Windows, możemy swobodnie przechwytywać poufne dane wprowadzane z klawiatury (hakin9 1/2008). Pora teraz podpatrzeć, co użytkownik
MODEL WARSTWOWY PROTOKOŁY TCP/IP
MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Wykład 6 Dziedziczenie cd., pliki
Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie
Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych
Komunikatory typu TCP/IP lab2 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 - klient wysyła jeden komunikat (typu String) do serwera i kończy swoje istnienie, a serwer go odbiera
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Ćwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.
Zakład Elektronicznych Urządzeń Pomiarowych POZYTON sp. z o. o. 42-200 Częstochowa ul. Staszica 8 p o z y t o n tel. : (034) 361-38-32, 366-44-95, 364-88-82, 364-87-50, 364-87-82, 364-87-62 tel./fax: (034)
DotGadu Tutorial v2008_08_25 Dominik Cebula
DotGadu Tutorial v2008_08_25 Dominik Cebula 1. Organizacja biblioteki i przyjęte koncepcje. 2. Ustawienia IDE: a) Visual Studio 2005 b) MonoDevelop 3. Łączenie z serwerem Gadu-Gadu i logowanie. 4. Wysyłanie
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Instrukcja 5 - Zastosowania protokołu ICMP
Instrukcja 5 - Zastosowania protokołu ICMP 5.1 Wstęp Protokół ICMP (ang. Internet Control Message Protocol) to protokół internetowych komunikatów sterujących. Jest nierozerwalnie związany z inkapsulującym
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji
76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
4. Podstawowa konfiguracja
4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Opcje IP i gniazda surowe laboratorium: 10 Kraków, 2014 10. Programowanie Usług
Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów
Wstęp... 7 Rozdział 1. Język C# i platforma.net... 9 Technologia.NET. Krótki wstęp... 9 Elementy języka C# i programowanie zorientowane obiektowo... 10 Przestrzenie nazw... 13 Kolekcje... 14 Zdarzenia
Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6
Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6 Celem ćwiczenia jest zdobycie umiejętności programowania komunikacji multicastowej za pomocą protokołu
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r. PLAN Reprezentacja liczb w systemach cyfrowych Protokół IPv4 Adresacja w sieciach
Przykład. Podaj nazwę domenową hosta a odczytaj jego adres IP, lub odwrotnie:
Adres internetowy klasa wxipv4address - wymaga #include Najważniejsze metody: bool Hostname(const wxstring& hostname) ustawia nazwę domenową hosta lub adres IP w notacji kropki: a.b.c.d bool
polega na opakowaniu danych - w każdej warstwie modelu OSI, kolejno idąc z góry na dół - w konieczne nagłówki/stopki odpowiednich protokołów
1 HERMETYZACJA DANYCH polega na opakowaniu danych - w każdej warstwie modelu OSI, kolejno idąc z góry na dół - w konieczne nagłówki/stopki odpowiednich protokołów hermetyzacja danych kroki: 1. pojawienie
Aplikacja wielowątkowa prosty komunikator
Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Charakterystyka grupy protokołów TCP/IP
Charakterystyka grupy protokołów TCP/IP Janusz Kleban Architektura TCP/IP - protokoły SMTP FTP Telnet HTTP NFS RTP/RTCP SNMP TCP UDP IP ICMP Protokoły routingu ARP RARP Bazowa technologia sieciowa J. Kleban
LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)
Wydział Elektroniki i Telekomunikacji POLITECHNIKA POZNAŃSKA fax: (+48 61) 665 25 72 ul. Piotrowo 3a, 60-965 Poznań tel: (+48 61) 665 22 93 LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl) Wireshark
Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1
Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony
pasja-informatyki.pl
pasja-informatyki.pl Sieci komputerowe Protokoły warstwy transportowej TCP i UDP Damian Stelmach Zadania warstwy transportowej 2018 Spis treści Zadania warstwy transportowej... 3 Protokół TCP... 7 Nagłówek
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Komunikacja między sterownikami przez protokół ADS
Komunikacja między sterownikami przez protokół ADS Poziom trudności: łatwy Wersja dokumentacji: 1.0 Aktualizacja: 20.03.2015 Beckhoff Automation Sp. z o. o. Spis treści 1. Komunikacja ADS... 3 2. Konfiguracja
Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych
Katedra Inżynierii Komputerowej Politechnika Częstochowska Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych Cel ćwiczenia Zastosowania protokołu ICMP Celem dwiczenia jest zapoznanie
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )
III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania
1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z protokołem komunikacji RS-232. 2) Zakres niezbędnych wiadomości - BaudRate - Bity danych - Bity parzystości - Bity stopu - Ramka komunikacji - Delegaty
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Adresy w sieciach komputerowych
Adresy w sieciach komputerowych 1. Siedmio warstwowy model ISO-OSI (ang. Open System Interconnection Reference Model) 7. Warstwa aplikacji 6. Warstwa prezentacji 5. Warstwa sesji 4. Warstwa transportowa
Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP
Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego Topologia Cele Część 1: Przygotowanie Wireshark do przechwytywania pakietów Wybór odpowiedniego interfejsu
Akademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Akademickie Centrum Informatyki Wydział Informatyki P.S. Warstwy transmisyjne Protokoły sieciowe Krzysztof Bogusławski tel. 449 41 82 kbogu@man.szczecin.pl
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Konfiguracja sieci, podstawy protokołów IP, TCP, UDP, rodzaje transmisji w sieciach teleinformatycznych
Konfiguracja sieci, podstawy protokołów IP, TCP, UDP, rodzaje transmisji w sieciach teleinformatycznych dr inż. Jerzy Domżał Akademia Górniczo-Hutnicza w Krakowie, Katedra Telekomunikacji 10 października
Komunikacja z użyciem gniazd aplikacje klient-serwer
Programowanie obiektowe Komunikacja z użyciem gniazd aplikacje klient-serwer Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Architektura
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować