Hálózati protokoll TCP hacker

Hálózati protokoll képező pipeline és az adatok között házigazdák, kifejlesztett legjobb kölcsönhatást különböző hálózati rétegeket. Ebben a cikkben megpróbáljuk leírni a mozgás adatok a kéményen át rendezett szintek és próbálja meg végrehajtani egy Linux kernel modul, amely segít bennünket, hogy rögzítse, és az adatok megjelenítésére átáramló TCP. Az alábbiakban egy olyan program, amely megmutatja, hogyan kell telepíteni egy új elem a proc fájlrendszert. És ami a legfontosabb, ez a program megszakítja a TCP protokollt nyilvántartja az összes adat áthalad a tcp szintet, és megjeleníti azokat a / proc / TCPdata.

Hálózati protokoll képező pipeline és az adatok között házigazdák, kifejlesztett legjobb kölcsönhatást különböző hálózati rétegeket. Ebben a cikkben megpróbáljuk leírni a mozgás adatok a kéményen át rendezett szintek és próbálja meg végrehajtani egy Linux kernel modul, amely segít bennünket, hogy rögzítse, és az adatok megjelenítésére átáramló TCP. Mivel a vita mindenféle hálózati kapcsolat túlmutat a jelen cikk fogunk összpontosítani TCP / IP protokollon keresztül.

Hálózati protokoll

Áttérve a szállítási réteg találunk INET réteget képezve egy köztes réteg között a szállítási réteg és az alkalmazás aljzatba. Segítségével INET aljzatok tartozó szinten támogatott alkalmazások. Ezen a szinten már elvégzett valamennyi az adott művelet a foglalat.

BSD - absztrakt tartalmazó adatszerkezet INET aljzat. Kérelem alkalmazások kapcsolódni, írni vagy olvasni az aljzat alakítjuk művelet segítségével INET BSD.

Általános csomag szerkezetét. Ezek egy közös adatai sk_buff nevû. Minden szint az adatok szerkezetét. Közvetlenül azután, hogy az adatok másolása a felhasználói területrõl a kernel térben vannak elhelyezve a sk_buff és mozgassa a különböző szinteken. Másfelől, a szintet hozzáadjuk a szerkezet a fejezetek. Sk_buff linkeket tartalmaz minden információt a csomagot, annak dugaszoló készülék, útvonal adatok helyét, stb

Linux hálózati funkciók

A normál hálózati programozó interfész hálózati szolgáltatások érhetők el a következő könyvtári rutinok S.

socket (), bind (), hallgatni (), connect (), fogadjuk el (), send (), sendto (), recv (), recvfrom (), getsockopt () és setsockopt ().

socket () függvényt, hogy hozzon létre egy új foglalat. Minden művelet zajlik a különböző protokollok segítségével aljzatok. Mivel a socket () függvény a fájl leíró, akkor hozzá tud hozzáférni a normál működésre az ilyen típusú fájlok read (), write ().

hallgatni () függvény használható a szerver szoftver. Miután létrehozott egy aljzatba, és a kapcsolatot a port funkció hallgatni () létrehoz egy foglalatot a hallgatási állam. Ez azt jelenti, hogy a socket várja a kapcsolatot a többi gép.

Amikor hívja a szerver fogadja () függvény a folyamatos felmérés socket előforduló, amíg a kapcsolat kérés máshonnan. Miután a kapcsolat szerver program ébredés folyamatát és lehetővé teszi, hogy feldolgozza a kérelmet egy sereg más. A kliens oldalon a connect () függvény, amely bemutatja a szerver, amely az ügyfél kívánsága, hogy egy kapcsolatot egy foglalat, és küldjön egy kérést.

Szükséges adatstruktúra

Ez a szerkezet az alapja a végrehajtás a BSD socket felületen. Beállítása és inicializálás ezen szerkezet segítségével történik a socket () rendszerhívás.

Ez a szerkezet vezérli a egyedi vegyületek bejövő csomagokat, és elküldte a fogadó. Ebben az esetben az input-output pufferelés.

Ez a szerkezet vezérli különböző részein az aljzatok, függően az adott hálózatban. Szükséges, hogy a TCP, UDP és a RAW aljzatok.

Ez a szerkezet tartalmaz egy sor műveletek azonosak minden protokollok.

Linux kernel modulok

Magok állnak Linux kernel modulokat. Egyes részei a memória mag folyamatosan (ütemező típus), és néhány letöltött, ha szükséges. Például VFAT fájlrendszer olvasható lemezek, betöltve csak szükség esetén. Ez a funkció lehetővé teszi a kernel linux kernel tér elfoglalására kis helyet foglal.

Ezért alapvető fontosságú, hogy tervezze meg protokoll, a járművezetők, és bármilyen szoftvert, mint a mag kernel modulok, és helyezze őket a kernel felhasználói térben. A behelyezés után a modul mozog tovább, amíg az ki nem jön a mag teret. Az egyetlen dolog, amit meg kell, hogy egy privilegizált felhasználó behelyezéséhez, illetve eltávolításához modulokat. Ez egy közös formátum kernel modul bejegyzést.

hacker modulprojektet a TCP protokollt.

A kernel modul nagyon egyszerű, gyakorlatilag között helyezkedik el a foglalat felületén elérhető műveletek a TCP csomag továbbítás és a TCP szinten. Most minden adatcsomagok átmenő aljzat, regisztrálva a TCP protokollt fogja elfogott a kernel modult. Ezek az adatok átkerülnek a / proc / TCPdata.

Hasznos adatstruktúra

tcp_prot -> tartalmaz mutatókat az összes elvégzett műveletek TCP

Struct msg_iov -> van msghdr, tartalmaz mutatókat adatok

Mielőtt elkezdené kódoló, nézzük megérteni az értékét a fájlrendszer / proc. A proc fájlrendszer nevezik így annak a ténynek köszönhető, hogy ez található a / proc könyvtárban a legtöbb Linux gépeken. A rendszer egy hatékony eszköz, a gyakran használt alkalmazások. Ez része a mechanizmus, amely által a mag társított felhasználói térben, és fordítva. Bár úgy tervezték, mint egy fájlrendszert a könyvtár fájlleírókról és ugyanakkor ez valójában egy eleme a rögzített funkciókat, tájékoztatás fontos változók.

Amikor létrehoz egy fájlt a / proc, azonnal regisztrál egy sor funkciót, ami megmondja a kernel, hogy mit kell tenni, amikor megnyitja a fájlt vagy írni. A legtöbb fájlok támogatása csak olvasható, és csak néhány írhat.

Most kezdjük kódoló

Ez a program már tesztelték a 2.4-es kernel, így lefordítani használatával:

Most, hogy megértsék a kódot, adok némi magyarázat. A teljes program - ez csak egy ravasz módon használatáért függvénymutatók. De óvatosnak kell lenni, ha a saját rakodók, mert a nem megfelelő elhelyezése funkcionális index okozhat rendszer lefagy. Mint említettük, ez a minimum a TCP hacker. Akkor hozzon létre egy új réteget a TCP szinten, mint ez, amely közbe minden típusú munkákat készített TCP. Ugyanezt lehet tenni UDP.

következtetés

A legfontosabb következtetés vonható le, hogy a program a fent leírt, hogy ez nem mindig szükséges, hogy módosítsa a forráskódját a kernel, ha végzünk a kapcsolódó protokoll módosítását. Ez egy objektum-orientált végrehajtását a Linux kernel, amely lehetővé teszi számunkra, hogy az adatok manipulálása tárgyak a magon belül.

  • Hálózati protokoll TCP hacker
  • Hálózati protokoll TCP hacker
  • Hálózati protokoll TCP hacker
  • Hálózati protokoll TCP hacker