blog

9 Mar 2017

Szoftverfejlesztés: Mi a Hook?

/
Általa megosztva

Szoftverfejlesztés: Mi a Hook?

Tudnunk kell, hogy kevés típus van.

Mi az a Hook?A szoftverfejlesztésben a Hooking egy olyan ötlet, amely lehetővé teszi a program magatartásának megváltoztatását. A lehetőség kódja megváltoztathatja az első magatartást anélkül, hogy megváltoztatná a összehasonlító osztály kódját. Ezzel befejeződik a horogstratégiák felülírása.

Ez a fajta felhasználás rendkívül hasznos az alkalmazások új funkcióinak hozzáadásával, ezenkívül ösztönzi az alternatív eljárások és a rendszer üzenetek közötti megfelelést. A horgok általában csökkentik a rendszer végrehajtását azáltal, hogy kiterjeszti az előkészítő terhelést, amelyet a rendszernek minden egyes üzenethez el kell végeznie. Ezt csak akkor kell bevezetni, amikor a lehető legrövidebb időn belül megkívánják és evakuálják.

Fogadja elképzelni, hogy külső ügyfelet használ egy ügyfélkezelő rendszerrel (CMS), és érdemes egy szuperhivatalt figyelmeztetni e-mailben minden egyes alkalommal, amikor egy másik beosztást osztottak ki, és ez a magatartás nem az eszköz alapértelmezettje. Lesz egy pár út előre:

A CMS forráskód megváltoztatása nem okos gondolat, elvégre a következő frissítés az eszköz, akkor szembesülni a nehéz elveszíti a változás, vagy nem rendelkezik azzal a képességgel, hogy folytassa az összes frissített;

  • Készíts saját saját CMS-jét egy újabb szörnyű gondolat, mindent figyelembe véve, nincs elegendő energiád vagy vagyontárgyad ahhoz, hogy új dolgokat csinálj, vagy akár lépést tartson azzal, amit gyártani;
  • Vizsgálja meg a horog használatának valószínűségét, vagyis ellenőrizze, hogy a CMS külső modult vagy modulokat keres-e egy adott név elemeihez, amelyeket a vágyott perc alatt végre lehet hajtani, ebben az esetben az új bejegyzések eloszlása.
  • A kampók használatának lefelé irányuló része általában az eszközről a műszerre ingadozik. A horgok elvi kedvező helyzete nem az első kód megváltoztatása. Minden nyílt forráskódú eszköz minden nagyszerű gyakorlati kézikönyvében, amely időszakosan frissíti a mantrát, nem változtatja meg a központot. Anélkül, hogy a felfrissüléseket elképzelhetetlenné tenné, mindenki, aki később gondoskodik a gondozásról, nem gondolkodik a változáson, és az a személy, aki alig foglalkozik vele, nem a készülék.

A nyújthatóság egy másik előnyös szempont a horogstratégiák kihasználásával, amelyek lehetővé teszik az alkalmazás számára, hogy növelje stabil kapcsolódási pontjait. A horogstratégiák szétválasztják a stabil kapcsolódási pontokat és a különféle területek magatartását, amelyek egy konkrét beállítás alkalmazásának instantiálásából származhatnak.

Innovatív technológiai megoldások kínál szoftverfejlesztési tréninget Gurgaonban, Delhiben NCR Indiában.

Horgok mint tervezési minták

Érdekes megjegyezni, hogy számos (minden) vázlatos rajzolat szemantikát mutat a kampókhoz. Beszélnek arról, hogyan kell végrehajtani a problémás területek alrendszereit. Egyesek a leválás megszilárdulásának szabályától függenek: Absztrakt, Factory, Builder, Command, Interpreter, Observer, Prototype, State and Strategy.

Egyebek mindkét példa az egyesítés és a partíció fejlesztés: sablon módszer és Bridge.

A szemantikát rendszerint a hook technika nevében adják meg (például a Command-ban a stratégia execute ()).

 

Virtuális módszertábla összekapcsolása

Szoftverfejlesztés - Mi a Hook-Point Az 1Virtual technikák megkülönböztethetetlen útvonalat hoznak a statikus stratégiákból, ám mivel a virtuális technikák megváltoztathatók, a fordító nem ismeri egy adott virtuális kapacitás címét, amikor felhívja a kódot. A fordító így összeállít egy virtuális módszertáblát (VMT), amely lehetővé teszi a kapacitás címek lekérdezését a futásidőben. Minden egyes virtuális stratégia futás közben a VMT-n keresztül aktiválódik. A kérdés VMT-je tartalmazza a virtuális stratégiákat az előfutárai számára, továbbá azokat, amelyeket hirdet. Ezért a virtuális technikák több memóriát használnak, mint az elemstratégiák, annak ellenére, hogy gyorsabban futnak.

Mivel a VMT olyan tábla, amely az interfész kapacitásokkal rendelkező memóriacímekkel ellátott mutatókat tartalmazza, meg kell tenni, hogy az első memóriacímet helyre kell állítani egy törvényes hook művelettel. E sorok mellett a hívott technika felülíródik, és a kapacitás új áhított magatartása végrehajtásra kerül.

 

Hooking API

Szoftverfejlesztés - Mi az a Hook-Point 2? A Hooking API eljárás valóban lehetővé teszi, hogy újra feltalálja a működő rendszer elemeit. Az ilyen díjak lekötésének képességével megváltoztathatja paramétereit azáltal, hogy megváltoztatja az eredetileg végrehajtandó tevékenységet.

Elképzelhető például egy adott rekord darab törlése, egy alkalmazás megtartása a futástól, és kérheti az ügyfél megerősítését, hogy egy archívumot tartsanak fenn a körhöz stb.

Valójában a döntés legnagyobb mérete a biztonság területén van, például víruskereső és kémprogram-elhárító eszközökkel. Lehet, hogy vannak olyan körülményei a mi rendes fejlesztésünkben, ahol a Hooking API lehet a fő kiút.

Programozási felület A különleges körülményektől való összekapcsolódás azt jelenti, hogy API-t kell beszerezni az operációs rendszertől vagy bármely DLL-ből, és a tipikus végrehajtását másra, pontosabban egy másik kapacitásra kell változtatni. Alapvetően két megközelítés létezik:

EAT és IAT: minden EXE / DLL API-t tartalmaz az importálási és viteldíj-táblákhoz. Ezek a táblázatok olyan mutatókat tartalmaznak, amelyek az API belépési pontját mutatják. Ha megváltoztatod ezeket a mutatókat, és ezek jelzik a visszahívást, van egy horogunk. Lehetséges, hogy ha ez az EXE / DLL nem importál API-kat, ez a stratégia nem fog működni;

Egyszerű kód-felülírás: Amint azt korábban említettük, abban az esetben, ha elképzelhető, hogy hívást adunk a visszahívásunkhoz az API-kód megkezdése felé, akkor "felhúzhatjuk", és kapacitásunkat bárhol az API-val hívhatjuk. Lehetséges, hogy ez így van: ha a kódot kezeltük, meg kellett hívnunk az első API-t, vissza kellene térnünk a visszahívásunkra, és létrehoznánk egy verem árvizet. Az egyik megoldás rögzíti a horgot, hogy képes legyen hívni az API-t, újra megpróbálja végrehajtani. Lehet, hogy ez a középpontban néhány API hívást lehet tenni, és nem hajtja végre a visszahívásunkat;

Az Inline Hook az a pont, amellyel kapjuk meg a kapacitás fő irányelveit, és mi a kereskedelemben egy Jump, Push vagy egy Call for capacity.

Elolvasott olvasmány: A Windows munkafüggvény kiegészítője a hooking API-nak. Tudnunk kell, hogyan működik a Windows API hooking funkciója?

 

Alkalmi kötés

Szoftverfejlesztés - Mi az a Hook-Point 3As hook technika, amely szétválasztja a stabil kapcsolódási pontokat és a különféle területek magatartását, amelyek egy adott alkalmazás egy példányának felbukkanását eredményezhetik, az ellenőrzés visszafordulása. Az objektumok alkalmával a kezelők módosítják az előkészítési lépéseket. A nap végén, amikor alkalomra kerül sor, a kezelő válaszol a horogstratégiák felidézésére előre beiratkozott tárgyakra, amelyek konkrét alkalmakat készítenek a tevékenységek előkészítésében. Alkalmi esetek: ablaküzenetek, kötegek, amelyek a levelező portokból érkeznek.

 

Belül IAT Hooking

Szoftverfejlesztés - Mi az 4Each Hook-Point folyamat a Windowsban van egy Import Address Table (IAT) nevű táblázat, amely az egyes eljárások DLL-jei által küldött kapacitásokra mutató mutatókat tárol. Ezt a táblázatot a DLL-ek elemeinek címével fokozatosan töltik futási idő alatt.

Meghatározott kapacitás használatával az IAT táblát írhatóvá tehetjük, mivel elképzelhető, hogy a címét egy egyedi kapacitás címével változtatják meg, és a táblázatot egyszerűen csak a változás után jelöli meg. Abban a pontban, amikor az eljárás megpróbálja felhívni a kapacitást, annak címe az IAT táblában kerül, és egy mutatót visszaküld. Mivel az IAT tábla megváltozott, az egyéni kapacitást hozza létre az első kapacitás, és az eljárásba beadott kód üres.

 

Netfilter Hook

Szoftverfejlesztés - Mi az a Hook-Point Az 5Netfilter egy Linux-alrendszer, amely jobban figyelemreméltó, mint az 2.4. Felelős a kötegeltávolítás, a NAT, a tűzfal, a átirányítás, többek között. A Netfilter kivételesen bővíthető, és a dokumentáció elkészült. Elhagyja annak valószínűségét, hogy a Hooks-ot a rendszermag-kódban használják, ami rendkívül rugalmas és a csoport által általában megkapott. Ezek a kötegek elhanyagolható eredményeket hagynak, és speciális eseményekként betölthetik őket.

 

Következtetés:

Szoftverfejlesztés - Mi az a horgony - következtetés A hooking programozási eljárások hatékonyak és a szoftverfejlesztők elképzelhető kimeneteleit nyitják meg, azonban figyelmeztető jelzéssel kell rendelkezniük, mivel az eljárások folyamán nagyobb hangsúlyt fektetnek a bonyolultságra és megváltoztatják az első az operációs rendszer, az alkalmazások vagy más szoftver szegmensek vezetése, ami megnehezíti a szoftverek logikájának megértését. Eltekintve attól, hogy a jelen cikkben előzetesen meghatáro- zott, ezeknek a rendszerek paradigmaváltás nélkül történő felhasználása megnehezítheti az alkalmazások végrehajtását.

Hagy egy Válaszol

 
GTranslate Please upgrade your plan for SSL support!
GTranslate Your license is inactive or expired, please subscribe again!