blog

9 Mar 2017

Razvoj softvera: šta je kuka?

/
Postavljeno od

Razvoj softvera: šta je kuka?

Trebalo bi da znamo o nekolicini vrsta kuke.

Šta je kuka?U razvoju softvera, Hooking je ideja koja dozvoljava promjenu ponašanja programa. Kôd mogućnosti vam omogućava da promenite prvo ponašanje nečeg bez promene kodova uporedne klase. Ovo je završeno prepisivanjem strategija kuke.

Ovakva upotreba je izuzetno korisna zbog dodavanja novih funkcionalnosti aplikacijama, dodatno podsticanje korespondencije između alternativnih procedura i poruka sistema. Kuke imaju tendenciju da smanjuju izvršenje sistema proširenjem pripreme opterećenja koju sistem treba izvesti za svaku poruku. Trebalo bi se upoznati samo kad je to potrebno i evakuisane u najraniju mogućnost.

Zamislite da koristite sistem za upravljanje potrošačima (CMS) od autsajdera i možda biste želeli da se super izvršitelj upozorava putem e-pošte svaki put kada se distribuira drugi post i da ovo ponašanje nije podrazumijevano za uređaj. Bilo bi par putanja napred:

Promena izvornog koda CMS-a nije pametna misao, nakon svega u sljedećem osvežavanju uređaja s kojom ćete se suočiti sa poteškoćama gubitka promjene ili nemate kapacitet da nastavite sve osvežene;

  • Napravite svoj poseban CMS je još jedna strašna misao, sve što ste smatrali, nemate dovoljno energije ili sredstava dovoljno da napravite nove stvari ili čak nastavite šta da izmišljate;
  • Istražite verovatnoću korišćenja kuke, odnosno proverite da li CMS izgleda u spoljnim modulima ili modulima za elemente ponuđenog imena koji će se izvršiti u težak minutu, za ovu situaciju, distribuciju novih postova.
  • Deo uzemljivog kukica na delu zemlje varira uglavnom od uređaja do instrumenta. Princip povoljnog položaja kukica nije da promeni prvi kod. U svim velikim praktičnim uputstvima svih open source uređaja koji imaju povremena ažuriranja mantre koja se ponavlja, ne menja centar. Bez obzira što osvježava nezamislivo, svako lice koje dolazi kasnije radi održavanja neće razmišljati o promjeni, a osoba o kojoj se teško raspravlja vi ste, a ne aparat.

Razširljivost je još jedan poželjni stav o korišćenju strategije kuka koje omogućavaju aplikaciji da poveća stabilne interfejse. Strategije za kuke razdvajaju stabilne interfejse i provode raznovrsni prostor koji može izaći iz instancije aplikacije za određenu postavku.

Inovativna tehnološka rešenja nudi Software Development Training u Gurgaon, Delhi NCR u Indiji.

Kuke kao dizajn šabloni

Intrigantno je napomenuti da brojni (svi) orjentisani dizajni prikazuju semantiku za kuke. Govore o tome kako izvršiti podsisteme problematičnih područja. Neki zavise od pravljenja razvoja odreda: Sažetak, Fabrika, Builder, Komanda, Prevodilac, Posmatrač, Prototip, Država i Strategija.

Drugi u oba primera razvijanja unifikacije i particije: Metoda šablona i most.

Semantika se obično komunicira u nazivu tehnike kuke (na primjer, u komandi, strategija se zove execute ()).

 

Virtuelna metoda namještaja

Razvoj softvera - šta je Hook - tačka 1Virtual tehnike dovode se u neusporedivi put od statičkih strategija, ali pošto virtuelne tehnike mogu da se promene, kompajler ne zna adresu specifičnog virtuelnog kapaciteta kada ga zovete u vašem kodu. Zbog toga kompajler sastavlja Virtuelnu metodnu tablu (VMT), koja daje način istraživanja na adrese kapaciteta u toku rada. Svaka virtualna strategija se aktivira u toku trajanja kroz VMT. VMT pitanja sadrže sve virtuelne strategije za svoje prekursore, a dodatno one koje proglašava. Prema tome, virtuelne tehnike koriste više memorije od strategija elemenata, uprkos činjenici da one rade brze.

Pošto je VMT tabela koja sadrži pokazivače sa memorijskim adresama za kapacitete interfejsa, ono što treba uraditi je zamena prve memorijske adrese sa adresom legitimnog posla kuke. Uz ove linije, pozvana tehnika će biti prepisana, a novo željeno ponašanje kapaciteta će se izvršiti.

 

Hooking API

Razvoj softvera - šta je Hook - tačka 2 Procedura API hooking zaista vam dozvoljava da ponovo otkrijete elemente radnog sistema. Sa mogućnošću prikupljanja takvih tarifa, možete promeniti svoje parametre tako što ćete promeniti aktivnost koja će se izvršiti na početku.

Može se, na primer, zamisliti otkazivanje određenog zapisa, zadržati aplikaciju da se pokrene i zahtijeva potvrdu klijenta da rezerviše arhivu u krug i tako dalje.

Zaista, najveće smanjenje odluke je u oblasti sigurnosti, na primjer, antivirusnim i antispyware-om. Bilo kako bilo, postoje okolnosti u našem običnom razvoju gde Hooking API može biti glavni izlaz.

Programski interfejs Hooking, u našim specifičnim okolnostima, podrazumeva dobivanje API-ja sa OS-a ili iz bilo kog DLL-a, i menja svoje tipično izvršenje na nekom drugom mestu, još tačnije, na drugi kapacitet. U suštini postoje dva pristupa:

EAT i IAT: svi EXE / DLL sadrže API za uvoz i tablice tarife. Ove tabele sadrže pokazivače koji pokazuju ulaznu tačku API-ja. Promjenom ovih pokazatelja, čineći ih označavajući naš povratni poziv, imamo kuku. Ako to bude moguće, ako ovaj EXE / DLL ne uvozi API-ove, ova strategija neće raditi;

Direktno prepisivanje koda: Kao što je ranije rečeno, u slučaju da je bilo moguće dodati poziv našem povratnom pozivu prema početku API koda, mogli bismo da je "zakačimo", čineći da se naš kapacitet pokreće na bilo kojoj tački API-a. Bilo kako bilo, postoji problem: ako je nakon našeg šifriranja bio potreban prvi API, vratili smo se na povratni poziv, a stvorili smo poplavu stuba. Jedan aranžman popravi kuku da ima kapacitet da pozove API, ponovo pokušava kada se izvrši. Budi tako, usred ove središnje tačke, može se napraviti nekoliko API poziva i ne bi izvršili naš povratni poziv;

Inline Hook je tačka u kojoj dobijamo glavne smjernice za kapacitet, a trgujemo za Jump, Push ili Call za naš kapacitet.

Propisano čitanje: Windows radni sistem dodatno podržava Hooking API. Treba da znamo kako funkcioniše Windows API?

 

Slučaj Hooking

Razvoj softvera - šta je Hook - Point 3As tehnika kuke razdvaja stabilne interfejse i ponašanje raznovrsnog prostora koji se može pojaviti iz instancijacije aplikacije za određenu postavku dogodi se preokrenutost kontrole. Obrađivači predmeta izmene pripremaju korake. Na kraju dana, kada se desi povoda, rukovalac odgovara konjunktivnim strategijama za kuke na unapred upisanim objektima koji izvršavaju određenu priliku za pripremu aktivnosti. Slučajevi prilaza: prozorske poruke, paketi koji sletaju iz dopisnih portova.

 

Unutar IAT Hooking

Razvoj softvera - šta je kuka - tačka 4Vje jedan proces u Windows ima tablicu nazvanu Uvozna tabela podataka (IAT), koja čuva pokazivače kapaciteta poslatih od DLL-a svake procedure. Ova tabela je progresivno popunjena adresom elemenata DLL-a u toku rada.

Koristeći određene kapacitete, možemo napraviti IAT tablicu za pisanje, jer je moguće zamisliti svoju adresu adresom prilagođenog kapaciteta, ponovo označiti tablicu kao jednostavno nakon ove promjene. U trenutku kada postupak pokušava da nazove kapacitet, njegova adresa se nalazi u tabeli IAT, a pointer se vraća. Kako je IAT tabela promenjena, prilagođeni kapacitet je postavljen prvim kapacitetom i kodiran je kod u proceduru.

 

Netfilter Hook

Razvoj softvera - šta je kuka - tačka 5Netfilter je Linux podsistem koji je važniji od 2.4-a. Zadužen je za razdvajanje snopova, NAT, zaštitni zid, preusmeravanje, između ostalog. Netfilter je izuzetno rasprostranjen, a njegova dokumentacija je završena. Ostaje verovatnoća da se Hooks koriste u kernelovom kôdu, čime je njegova upotreba izuzetno fleksibilna i generalno primljena od strane grupe. Ovi Hooks ostavljaju nekoliko mogućih ishoda i mogu se ispuniti kao okidač za određene prilike.

 

Zaključak:

Razvoj softvera - šta je udica - zaključak Procedure za programiranje su efikasne i otvaraju opseg mogućih ishoda za softverske inženjere, međutim to treba koristiti sa upozorenjem, jer uključuju vidljivu složenost u tok postupaka i promene prve sprovođenje operativnog sistema, aplikacija ili drugih softverskih segmenata, što otežava razumijevanje obrazloženja softvera. Osim toga, kako je navedeno u prethodnom članu, korištenje ovih sistema bez paradigme može demilirati izvršenje aplikacija.

Ostavite odgovor

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