Blog

9 Mar 2017

Softwareentwicklung: Wat ass e Hook?

/
geschriwwen vum

Softwareentwicklung: Wat ass e Hook?

Mir sollten ongeféier e puer Typen Of Hook wëssen.

Wat ass en Hook?An der Softwareentwécklung, Hooking ass eng Iddi datt d'Verännerung vun engem Programm ännert. De Méigleche Code bitt Iech de Konditioun ze änneren ouni Äert Code vun der Verglachung ze veränneren. Dëst ass fäerdeg duerch Erschreiwen vun den Zännstrategien.

Dës Zort Informatioun ass extrem nëtzlech wéinst dem neie Fonctionnalitéitsmethoden fir Applikatiounen, zousätzlech d'Korrespondenz tëschent alternativ Prozeduren a Messagen vum System ze encouragéieren. Hooks tendéieren d'Ausféierung vun der Systemer ze reduzéieren andeems d'Virbereedung erweidert gëtt, déi de System fir all Message gemaach huet. Et sollt ower just wann et néideg ass an d'frëndlech Geleeënheet evakuéiert ginn.

Envisioun datt Dir e Client Management System (CMS) vun engem Aussenmeeschter benotzt an Dir wëllt datt e super Exekutive per E-Mail ze perzepickt ginn wann all aner Post war verdeelt ginn an datt dëst Verhalen net de Standard vu sengem Apparat ass. Et wier e puer Weeër:

Ändert den CMS Quellcode ass net e klenge Gedankewénken, no all deenen an der folgender Aktualitéit vun Ärem Apparat, wäert Dir d'Schwieregkeeten fir Äert Changement ze verléieren oder net d'Kapazitéit fir all weider erfrësst ze ginn;

  • Maacht Äre Besonnesch CMS ass en aneren schreckleche Gedanke, all Dingscht, Dir hutt net genuch Energie oder Assurancen genuch fir nei Saachen ze maachen oder souguer ze halen wat fir ze fabrizéieren;
  • Entdeckt d'Wahrscheinlechkeet, datt en Hook benotzt, dat heescht, kontrolléieren ob de CMS ausserhalb vun de Moduler oder Moduler fir Elementer vun engem angebene Numm kënnt an der Crawl-Minute ausgehandelt ginn, fir dës Situatioun, d'Verdeelung vun neien Posten.
  • De Down to Earth-Deel vu Haken benotzt zwallt a generell vum Apparat zum Instrumenter. D'prinzipiell favorabel Positioun vu Haken ass net den éischte Code änneren. An all grousse Praxisbezeechnunge vu sämtleche Open Source Geräter déi intermittierend Aktualiséierung vum Mantra, deen sech selwer entwéckelt, ännert net den Zentrum. Trotz onméiglecher Erfrëschung onverzichtbar ass all Mënsch, deen spéider eräus ginn ass, net iwwer d'Verännerung denkt, an déi Persoun, déi kaum diskutéieren, ass Dir, net de Apparat.

D'Vergréisserung ass e neie Virdeel wann Dir Hokstrategien benotzt, déi d'Applikatioun erlaabt hir stabile Interfaces ze vergréisseren. Hookstrategien enthalen stabile Interfaces a Behuelen vu villen Plazen, déi aus der Instantie vun enger Applikatioun fir eng spezifesch Plaz kënne kommen.

Innovative Technologie Léisunge Offert d'Software Developement Training an Gurgaon, Delhi NCR an Indien.

Hooks Als Design Patterns

Et ass ganz interessant ze bemierken datt vill (all) Rhythmus entwirft Semantik fir Haken. Si schwätze mat wéi Ënner-Systeme vu Problemgebidder aus. E puer hänkt vun der Regel vun der Dépensebildung abegraff: Abstract, Fabrik, Builder, Command, Interpreter, Observer, Prototyp, Staat a Strategie.

Aner an béid Beispiller vun der Unifikatioun an der Partitionsentwicklung: Schabloun Method a Bridge.

Semantik gëtt normalerweis an den Numm vum Hakenstechnik kommunizéiert (zum Beispill am Kommando gëtt d'Strategie Exekutive genannt).

Virtuell Method Table Table Looking

Softwareentwécklung - Wat ass en Hook-Point 1Virtuell Techniken ginn an enger onverzichtbarer Route aus stateschen Strategien agefouert, awer well virtuell Techniken kënne geännert ginn, kennt de Compiler net d'Adress vun enger spezifescher virtueller Kapazitéit wann Dir se an Ären Code nennt. De Compiler ass also eng Virtuell Method Table (VMT) agefouert, déi e Wee fir Ufro un d'Kapazitéit Adressen an der Runtime ze ginn. Jiddf Single virtuelle Strategie si riicht duerch de VMT aktivéiert. De VMT vun enger Fro stellt all déi virtuell Strategien fir seng Virgänger, an och déi, déi se verkënnegt. Duerfir benotzt virtuell Techniken méi Erënnerung wéi Elementstrategien, trotz der Tatsaach, datt se méi séier féieren.

Zënter VMT ass eng Tabelle déi Zeechen mat Gedächtnis Adressen fir d'Interface Kapazitéiten enthält, wat soll gemaach ginn fir déi éischt Adress mat enger Adress vun enger legitimen Haken Aarbecht ze leschen. Entäckend dës Linnen gëtt déi sougenannte Technik überschritt, an déi nei Begeeschterung vun der Kapazitéit wäert ausgefouert ginn.

Huck op API

Softwareentwicklung - Wat ass en Hook-Point 2The Haking API Prozedur erlaabt Iech wierklech d'Elemente vum Aarbechtssystem ze erfannen. Mat der Fähigkeit, sou e Gebitt ze erfëllen, kënnt Dir hir Parameteren ufänken andeems d'Aktivitéit geännert gëtt déi zun an Ufank gemaach ginn ass.

Et ass denkbar, zum Beispill, d'Annulatioun vun engem spezifesche Rekord ze halen, eng Applikatioun ze läuschteren an eng Client confirméieren ze schécken, datt e Archiv am Circle et cetera ersetzt.

Den gréissten Deel vun der Entscheedung ass an der Regioun vun der Sécherheet, zum Beispill Antivirus an Antispamware. Gitt dat wéi et ka sinn, besteet ënner Ëmstänn an der normaler Entwécklung, wou d'Hooking API, den Haaptreiwe sinn.

Programméierungsinterface Iwwerwaachung, an eiser spezifescher Situatioun, implizéiert datt eng API vum OS oder vun enger DLL erstallt gëtt an hir typesch Ausféierung soss anzwousch ännert, och méi genau, op eng aner Kapazitéit. Et gi grondsätzlech zwee Approche:

EAT a IAT: all EXE / DLL enthält API fir Tabellen ze importéieren an ze fare. Dës Dëscher sinn Zeileren déi den API Entry Point weisen. Wann Dir dës Zeechen ännert, andeems mir eis Rückruf annoncéieren, hu mir en Haken. Gitt dat wéi et ass, wann dës EXE / DLL net API 's importéiert, dës Strategie net funktionnéiert;

Gerechtegt Code Overwriting: Wéi virdrun gesot, datt et den Fall war datt et den Fall war, datt e Ruf zu eisem Startkombinatioun zum Start vum API-Code hinzeweisen, konnten mir "hacken", fir datt eis Kapazitéit op jidde Fall d'API opgeruff huet. Gitt dat wat et geet, ass et e Problem: wann de Code no handhale war, musse mer den éischten API nennen, eis géifen op eisem Callback zréckstoen, an eng Stack Flut géing geschaaft ginn. Eng Arrangement ass de Fanger fir d'Kapazitéit ze hunn fir d'API ze nennen, ze verspriechen, wann et ausgehandelt gëtt. Gitt dat esou wéi an dësem Mëttelmierraum e puer API Uriff kann gemaach ginn an eis Callback net ausféieren;

Inline Hook ass de Punkt wou mer d'Haaptleitlinne vun enger Kapazitéit kréien, a mir si fir eng Sprëtz, Push oder e Ruff fir eis Kapazitéit.

Dee Prozedur liest: Windows-Betriebssystem zousätzlech Ënnerhal fir Haken API. Mir sollten wëssen, wéi Windows API Haken fonctionnéiert?

Occasion Haking

Softwareentwécklung - Wat ass en Hook-Point 3As Hook-Techniken enthale stabile Interfaces a Verhalen vun engem Varietéit, deen aus der Ingenieur vun enger Applikatioun fir eng bestëmmte Plaz kënnt entsuergen. Objekter Geleeënheeten Occasiounen Modifikatioun vu Schrëtt änneren. Am Schluss vum Dag, wann eng Geleeënheet passéiert, reagéiert de Behandler d'Häerzstrategie op véierëleegend Objeten, déi speziell Gelegenheet d'Aktivitéite virbereeden. Fälle vun Occasiounen: Fënstervirschnëtt, bundle Landung aus Korrespondenzhäfen.

An IAT Hooking

Softwareentwicklung - Wat ass en Hook-Point 4Each Prozess an Windows ass eng Tabell genannt Adress Adress Table (IAT), déi Zeechen op d'Kapazitéiten verschéckt gëtt vun den DLLs vun all Prozedur geschéckt. Dës Tabelle ass progressiv mat der Adress vun den Elementer vun den DLLs am Laang Zäit gebuer.

Mat speziellen Kapazitéiten kann mir d'IAT-Tabelle schrëftlech sinn, datt se d'Adress vun enger Adress mat enger individueller Kapazitéit änneren an d'Tabellen ze änneren. Um Punkt wou d'Prozedure versicht d'Kapazitéit ze nennen, ass seng Adress an der IAT Dësch gewise ginn an e Pointer gëtt zréck. Wéi den IAT-Dësch geännert gouf, gëtt d'Benotzung vun der Kapazitéit vum éischten Kapazitéit agefouert an de Code an der Prozedur entfouert.

Netfilter Hook

Softwareentwicklung - Wat ass e Hook-Point 5Netfilter ass e Linux-Subsystem méi kloer beaarbecht wéi 2.4. Et ass responsabel fir d'Trennung vu Bündel, NAT, Firewall, Ofleckung, ënner anerem. Netfilter ass aussergewéinlech erweiterbar an d'Dokumentatioun ass ofgeschloss. Et léisst d'Wahrscheinlechkeet d'Hooks am Kernel Code benotzen, fir datt hir Verännerung extrem flexibel an allgemeng vun der Grupp gëtt. Dës Hooks verloossen e puer erkennbare Resultater a kënnen als Trigger fir spezifesch Occasiounen fëllen.

Conclusioun:

Softwareentwécklung - Wat ass en Hook - Conclusioun D'Hocking-Programméierungsprozeduren si effektiv a maachen e Scope vu vernünftbare Resultater fir Software Ingenieuren, awer et soll et mat Alarm benotze ginn, well se eng méi prominent Komplexitéit am Prozess vun der Prozedur hunn an déi éischt änneren Behuelen vum OS, Applikatiounen oder aner Software-Segmenter, sou datt et schwéier ass d'Begleedung vu Software ze begleeden. Aner wéi dat, wéi et an dësem Artikel spezifizéiert ass, kann d'Ausnotzung vun dësen Systemer ouni Paradigma d'Ausféierung vun den Apps applizéiert ginn.

GTranslate Your license is inactive or expired, please subscribe again!