Blog

9 E marte 2017

Zhvillimi i softuerit: Çfarë është një hook?

Zhvillimi i softuerit: Çfarë është një hook?

Ne duhet të dimë për disa lloje të grepave.

Çfarë është një Hook?Në zhvillimin e softuerit, Hooking është një ide që lejon ndryshimin e sjelljes së një programi. Kodi i mundësisë ju ofron për të ndryshuar sjelljen e parë të diçkaje pa ndryshuar kodin tuaj të klasës krahasuese. Kjo është përfunduar duke mbishkruar strategjitë e lidhjes.

Ky lloj i përdorimit është jashtëzakonisht i dobishëm për shkak të shtimit të funksionaliteteve të reja për aplikacionet, duke inkurajuar gjithashtu korrespondencën mes procedurave alternative dhe mesazheve të sistemit. Grevat tentojnë të reduktojnë ekzekutimin e sistemit duke zgjeruar ngarkesën e përgatitjes që sistemi duhet të kryejë për çdo mesazh. Duhet të futet vetëm kur kërkohet dhe evakuohet në rastin më të parë.

Parashikon se po shfrytëzon një Sistem Menaxhimi të Klientit (CMS) nga një i huaj dhe mund të dëshirosh një super ekzekutiv që të paralajmërohet me email çdo herë që një tjetër post është shpërndarë dhe se kjo sjellje nuk është parazgjedhja e pajisjes. Do të ketë dy rrugë përpara:

Ndryshimi i kodit burimor CMS nuk është një mendim i zgjuar, pasi të gjitha në freskimin e mëposhtëm të pajisjes ju do të përballeni me vështirësinë e humbjes së ndryshimit tuaj ose nuk keni kapacitet për të vazhduar çdo gjë të rifreskuar;

  • Bëni CMS tuaj të veçantë është një tjetër mendim i tmerrshëm, të gjitha gjërat konsiderohen, ju nuk keni energji të mjaftueshme ose asete të mjaftueshme për të bërë gjëra të reja apo edhe për të mbajtur atë që duhet të fabrikoni;
  • Eksploroni gjasat e përdorimit të një goditje, dmth, kontrolloni nëse CMS shikon në module ose module të jashtme për elementet e një emri të ofruar që do të ekzekutohet në minutën e dëshiruar, për këtë situatë, shpërndarjen e posteve të reja.
  • Pjesa poshtë në tokë e përdorimit të grepave luhatet përgjithësisht nga pajisja në instrument. Pozicioni kryesor i favorshëm i grepa nuk është të ndryshojë kodin e parë. Në të gjitha doracakët e praktikave të shkëlqyera të të gjitha pajisjeve me burim të hapur që kanë përditësime me ndërprerje, mantra që rehashes vetë nuk ndryshon qendrën. Pavarësisht se bën freskuese të paimagjinueshme, çdo individ që vjen më vonë për të mirëmbajtur nuk do të mendojë për ndryshimin dhe personi që vështirë se e diskuton atë, ju dhe jo aparatin.

Zgjatueshmëria është një tjetër pikëpamje e preferuar e përdorimit të strategjive të lidhjes që lejojnë aplikimin për të rritur ndërfaqet e tij të qëndrueshme. Strategjitë Hook shkëputin interfaces të qëndrueshme dhe zhvillimin e një hapësire të ndryshme që mund të dalin nga instancacioni i një aplikacioni për një mjedis të caktuar.

Zgjidhjet Teknologjike Inovative ofron Trajnim për Zhvillim të Software-it në Gurgaon, Delhi NCR në Indi.

Grepa si modele të dizajnit

Është intriguese të theksohet se shumë dizajne (të tëra) përshkruajnë semantikë për grepa. Ata flasin për mënyrën e ekzekutimit të nën-sistemeve të zonave problematike. Disa varen nga sundimi i zhvillimit të shkëputjes: Abstrakt, Fabrika, Ndërtuesi, Komanda, Interpretuesi, Vëzhguesi, Prototipi, Shteti dhe Strategjia.

Të tjerë në të dy shembujt e bashkimit dhe zhvillimit të ndarjes: Metoda e Template dhe Ura.

Semantika zakonisht komunikohet në emrin e teknikës së fikjes (për shembull, në Komandën, strategjia quhet ekzekuto ()).

Metoda Virtual Tabela Hooking

Zhvillimi i softuerit - Çka është një teknikë Hook Point 1Virtual sjellen në një rrugë të padallueshme nga strategjitë statike, por meqenëse teknikat virtuale mund të ndryshohen, përpiluesi nuk e njeh adresën e një kapaciteti të caktuar virtual kur e telefononi atë në kodin tuaj. Përgatitësi, pra, mbledh një tabelë të metodës virtuale (VMT), e cila jep një mënyrë për të hetuar adresat e kapacitetit në runtime. Çdo strategji e vetme virtuale aktivizohet në runtime përmes VMT. VMT-ja e një pyetje përmban të gjitha strategjitë virtuale për pararendësit e saj, dhe gjithashtu ato që shpall. Prandaj, teknikat virtuale përdorin më shumë memorie sesa strategjitë elementare, pavarësisht faktit që ato funksionojnë më shpejt.

Meqenëse VMT është një tabelë që përmban pointers me adresat e kujtesës për kapacitetet e ndërfaqes, ajo që duhet të bëhet është zëvendësimi i adresës së parë të memories me një adresë të një vepre të ligjshme. Përgjatë këtyre linjave, teknika e quajtur do të mbishkruhet, dhe sjellja e re lakmuese e kapacitetit do të ekzekutohet.

Hooking API

Zhvillimi i softuerit - Çfarë është një Hook-Point API 2The Hooking API me të vërtetë ju lejon të reinvent elementet e sistemit të punës. Me aftësinë për të kapur akuza të tilla, mund të ndryshoni parametrat e tyre duke ndryshuar aktivitetin që do të kryhet fillimisht.

Është e mundshme, për shembull, të anullohet një pjesë e një rekordi të veçantë, të mbajë një kërkesë nga drejtimi dhe të kërkojë një pohim të klientit për të kursyer një arkiv në rrethin, etj.

Në të vërtetë, prerja më e madhe e vendimit është në rajonin e sigurisë, për shembull antivirus dhe antispyware. Sido që të jetë, ekzistojnë rrethana në zhvillimin tonë të zakonshëm, ku Hooking API, mund të jetë rruga kryesore.

Ndërfaqja e programimit Duke u lidhur, në rrethanat tona specifike, nënkuptohet marrja e një API nga OS, ose nga ndonjë DLL, dhe për të ndryshuar ekzekutimin e tij tipik diku tjetër, aq më saktë, në një kapacitet tjetër. Ekzistojnë në thelb dy qasje:

Hani dhe IAT: të gjitha EXE / DLL përmban API për të importuar dhe për të bërë tabela. Këto tabela përmbajnë tregues që tregojnë Pika hyrëse API. Duke ndryshuar këto tregues, duke i bërë ato të tregojnë kthimin tonë të thirrjes, kemi një goditje. Jetë ashtu siç mundet, nëse kjo EXE / DLL nuk importon API-të, kjo strategji nuk do të funksionojë;

Rregullimi i drejtpërdrejtë i kodit: Siç e thamë më lart, në rast se ishte e mundshme të shtonim një thirrje në thirrjen tonë për fillimin e kodit API, mund ta "lidhnim", duke e bërë kapacitetin tonë të drejtuar në cilindo pikë që API u quajt. Sido që të jetë, ekziston një çështje: nëse pas trajtimit të kodit tonë, na duhej ta quanim API-n e parë, do të binte përsëri në thirrjen tonë të thirrjes dhe do të krijohej një përmbytje e caktuar. Një rregullim është rregullimi i goditjes për të pasur kapacitetin për të thirrur API-n, duke u ri-provuar pasi të ekzekutohet. Qoftë ashtu siç mundet, në mes të kësaj qendre, disa thirrje API mund të bëhen dhe nuk do të ekzekutonin thirrjen tonë;

Inline Hook është pika në të cilën ne marrim udhëzimet kryesore të një kapaciteti dhe ne tregtojmë për një kërcim, shtytje ose një thirrje për kapacitetin tonë.

Përgatitur lexohet: Sistemi i punës i Windows mbështet më tej lidhjen API. Duhet ta dimë funksionimin e API-ve të Windows-it?

Hooking rastit

Zhvillimi i softuerit - Cila është një Hook Point 3As teknikat e lidhjes së dyfishtë ndërfaqe të qëndrueshme dhe kryerja e një hapësire të ndryshme që mund të dalin nga instancacioni i një aplikacioni për një mjedis të caktuar ndodh një ndryshim kontrolli. Objektivat e përdoruesve të rasteve modifikojnë përgatitjen e hapave. Në fund të ditës, kur ndodh një rast, mbajtësi përgjigjet duke tërhequr strategjitë e goditjes në objekte të paracaktuar që kryejnë një rast të veçantë për përgatitjen e aktiviteteve. Rastet e rasteve: mesazhet e dritareve, tufa ulur nga portet e korrespondencës.

Brenda IAT Hooking

Zhvillimi i softuerit - Çfarë është një proces Hook-Point 4Each në Windows ka një tabelë të quajtur Import Address Table (IAT), që ruan treguesit për kapacitetet e dërguara nga DLL-et e secilës procedure. Kjo tabelë është e populluar në mënyrë progresive me adresën e elementeve të DLL-ve në kohën e duhur.

Duke përdorur kapacitete të veçanta, ne mund ta shkruajmë tabelën e IAT-it, duke qenë e mundshme për të ndryshuar adresën e saj me një adresë të një kapaciteti personal, duke ri-shënuar tabelën si të lexuar-thjesht pas këtij ndryshimi. Në pikën kur procedura përpiqet të thërrasë kapacitetin, adresa e tij është marrë në tabelën e IAT-it dhe një tregues kthehet. Ndërsa tabela e IAT-it është ndryshuar, kapaciteti personal është sjellë në ngritjen e kapacitetit të parë dhe kodi i futur në procedurë është marrë.

Netfilter Hook

Zhvillimi i softuerit - Çfarë është një Hook-Point 5Netfilter është një nënsistem i copëzave Linux më i rëndësishëm se 2.4. Ajo është përgjegjëse për paketën që ndan, NAT, firewall, redirection, ndër të tjera. Netfilter është jashtëzakonisht i zgjeruar dhe dokumentacioni i tij është i përfunduar. Kjo lë gjasën e përdorimit të grepave në kodin e kernelit, duke e bërë shfrytëzimin e saj jashtëzakonisht fleksibël dhe përgjithësisht të pranuar nga grupi. Këto grepa lënë disa rezultate të mundshme dhe mund të plotësohen si shkak për raste specifike.

Përfundim:

Zhvillimi i softuerit - Cfare eshte nje konkluzion Hook - Procedurat e programimit hooking jane efektive dhe hapin nje sferë të rezultateve të mundshme për inxhinierët e softuerit, megjithatë duhet të përdoret me gatishmëri pasi ato përfshijnë një ndërlikim më të shquar në rrjedhën e procedurave dhe ndryshimin e parë zhvillimin e OS, aplikacioneve ose segmenteve të tjera të softuerit, duke e bërë të vështirë të kuptojmë arsyetimin e softuerit. Përveç kësaj, siç është specifikuar më parë në këtë artikull, përdorimi i këtyre sistemeve pa paradigmë mund të dëmtojë ekzekutimin e aplikacioneve.

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