Blog

9 pokvariti 2017

Razvoj softvera: Što je kuka?

/
Objavio

Razvoj softvera: Što je kuka?

Trebali bismo znati o malim vrstama kuka.

Što je kuka?U razvoju softvera, Hooking je ideja koja omogućuje promjenu ponašanja programa. Šifra mogućnosti nudi vam promjenu prvog ponašanja nečega bez mijenjanja koda klase uspoređivanja. To se dovršava prebrisivanjem strategija kuka.

Ova vrsta korištenja izuzetno je korisna zbog dodavanja novih funkcionalnosti aplikacijama, dodatno potiče korespondenciju između alternativnih postupaka i poruka sustava. Kuke imaju tendenciju smanjenja redukcije sustava proširivanjem pripreme opterećenja koju sustav treba obaviti za svaku poruku. To bi trebao biti uveden samo kada je to potrebno i evakuirati što je prije moguće.

Predvidite da koristite Sustav za upravljanje klijentima (CMS) od autsajdera i možda biste htjeli da se e-pošta upozorava da je super izvršitelj svaki put kada se drugi post distribuira i da to ponašanje nije zadana postavka uređaja. Bilo bi par ruta prema naprijed:

Promjena izvornog koda CMS-a nije pametna misao, nakon svega u sljedećem osvježavanju uređaja suočit će se s teškoćama gubitka promjene ili nemogućnosti da se nastavi sve osvježeno;

  • Napravite svoj vlastiti CMS drugu strašnu misao, sve što vam se uzima u obzir, nemate dovoljno energije ili sredstava dovoljno da biste napravili nove stvari ili čak zadržali što biste mogli proizvesti;
  • Istražite vjerojatnost korištenja kuke, tj. Provjerite da li CMS izgleda izvan modula ili modula za elemente ponuđenog imena koji će se izvršiti u željenoj minuti, za tu situaciju, distribuciju novih postova.
  • Zemljin dio dijelova kukica koje se koriste u pravilu varira od uređaja do instrumenta. Glavni povoljan položaj kuka nije promjena prvog koda. U svim velikim praksama priručnici svih open source uređaja koji imaju povremene ažuriranja mantra koja se sama pojačava ne mijenja središte. Bez obzira na osvježavanje osjećaja nezamislivo, svaki pojedinac koji dolazi kasnije za održavanje neće razmišljati o promjeni, a osoba koja jedva raspravlja o tome jest vi, a ne aparat.

Proširivost je još jedan poželjan stav o korištenju strategija kuka koje omogućuju aplikaciji povećanje stabilnih sučelja. Strategije kvačica odvajaju stabilna sučelja i provode raznovrsne prostore koji mogu proizaći iz instanciranja aplikacije za određenu postavku.

Inovativna tehnološka rješenja nudi obuku za razvoj softvera u Gurgaonu, Delhi NCR u Indiji.

Kuke kao dizajnerske uzorke

Zanimljivo je napomenuti da brojni (svi) nacrti dizajna primjer su semantike za kuke. Govore kako izvršavati podsustave problematičnih područja. Neki ovise o pravilu razvijanja odvojenosti: Sažetak, Tvornica, graditelj, zapovijed, tumač, promatrač, prototip, država i strategija.

Drugi u oba primjera ujedinjenja i razvoja podjele: Predložak metode i most.

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

 

Prikupljanje tablice s virtualnom metodom

Razvoj softvera - Što je kuka - točka 1Virtualne tehnike unose se u nerazlučivu rutu od statičkih strategija, no budući da se virtualne tehnike mogu promijeniti, prevodilac ne zna adresu određenog virtualnog kapaciteta kada ga nazovete u kodu. Prevodilac, dakle, okuplja tablicu virtualne metode (VMT), koja daje način za ispitivanje adresa kapaciteta u runtime. Svaka virtualna strategija aktivira se tijekom izvođenja kroz VMT. VMT pitanje sadrži sve virtualne strategije za svoje prethodnike, a dodatno one koje proklamira. Stoga, virtualne tehnike koriste više memorije nego strategije elementa, unatoč činjenici da se trče bržim.

Budući da je VMT tablica koja sadrži pokazivače s memorijskim adresama za kapacitete sučelja, potrebno je zamijeniti prvu memorijsku adresu s adresom legitimne veze. Uz ove linije, pozvana tehnika će biti prepisana, a novi coveted ponašanje kapaciteta će biti izvršen.

 

Prikvačivanje API-ja

Razvoj softvera - Što je postupak zakašnjenja 2The API za zglobiranje uistinu vam dopušta ponovno pronalaženje elemenata radnog sustava. S mogućnošću hvatanja takvih troškova, možete promijeniti njihove parametre mijenjanjem aktivnosti koja će se izvesti u početku.

Može se zamisliti, primjerice, da otkazuje određeni zapis, zadrži aplikaciju od pokretanja i zatraže potvrdu klijenta kako bi se arhiva spremila u krug, itd.

Doista, najveći rez odluke nalazi se u području sigurnosti, na primjer, antivirusni i antispyware programi. Bilo kako bilo, postoje u našem uobičajenom razvoju okolnosti gdje Hooking API može biti glavni izlaz.

Programsko sučelje Spajanje, u našim specifičnim okolnostima, podrazumijeva dobivanje API-ja iz OS-a, ili iz bilo kojeg DLL-a, i promjenu tipičnog izvršenja na drugo mjesto, točnije, na drugi kapacitet. U osnovi postoje dva pristupa:

EAT i IAT: svi EXE / DLL sadrže API za uvoz i zbirke tablica. Ove tablice sadrže pokazivače koji prikazuju ulaznu točku API-ja. Promjenom tih pokazivača, što ih označava naš povratni poziv, imamo kuku. Bilo kako bilo, ako ovaj EXE / DLL ne uvozi API-ja, ova strategija neće funkcionirati;

Jednostavno prebrisanje koda: Kao što smo prethodno rekli, u slučaju da je zamislivo dodati poziv na povratni poziv prema početku API koda, mogli bismo ga "zakačiti", što je naš kapacitet vođen u bilo kojem trenutku pozivanja API-ja. Budući da je to moguće, postoji problem: ako smo nakon obrađivanja našeg koda trebali nazvati prvi API, vratit ćemo se na naš povratni poziv i stvoriti poplavni stup. Jedan raspored je pričvrstiti kuku da ima kapacitet za pozivanje API-ja, ponovno pokušavajući ga nakon izvršenja. Budite to kako je moguće, usred ovog središnjeg tla, može se napraviti nekoliko API poziva i neće izvršiti naš povratni poziv;

Inline Hook je točka na kojoj dobivamo glavne smjernice kapaciteta, a mi trgovamo za Jump, Push ili Call za našu sposobnost.

Propisano čitanje: Radni sustav Windows dodatno podupire API za spajanje. Trebali bismo znati kako funkcionira Windows API hooking?

 

Priključivanje prigodom

Razvoj softvera - Što je kuka-točka 3As kuke tehnikama odvojiti stabilna sučelja i provođenje raznolikosti prostora koji može izaći iz instantiation aplikacija za određenu postavku događa preokret kontrole. Predmeti prilikom rukovođaca mijenjaju pripremne korake. Na kraju dana, kada se dogodi neka prigoda, rukovatelj odgovara zamišljajući strategije kuka na unaprijed upisanim predmetima koji izvršavaju određenu prigodu pripreme aktivnosti. Slučajevi prilika: poruke prozora, pakete slijetanja iz korespondentnih luka.

 

Unutar IAT Hookinga

Razvoj softvera - Što je postupak hvatanja 4 u sustavu Windows ima tablicu Import Address Table (IAT), koja pohranjuje pokazivače na kapacitete poslane DLL-ovima svakog postupka. Ova se tablica postupno popunjava adresom elemenata DLL-ova u vrijeme izvođenja.

Upotrebom određenih kapaciteta možemo napraviti IAT tablicu koja se može pisati, zamislivim da promijeni adresu adresom prilagođenog kapaciteta, ponovno označavajući tablicu kao pročitanu - jednostavno nakon ove promjene. U trenutku kad postupak pokuša nazvati kapacitet, njegova adresa se dobiva u IAT tablici, a pokazivač se vraća. Budući da je IAT tablica promijenjena, prilagođeni kapacitet je doveden u postavljanje prvog kapaciteta i kod koji je unesen u postupak je dobiven.

 

Netfilter kuka

Razvoj softvera - Što je kuka-točka 5Netfilter Linux podsustav je više važan od 2.4-a. Ona je zadužena za razdvajanje paketa, NAT, firewall, preusmjeravanje, među ostalima. Netfilter je iznimno rastezljiv i dokumentacija je gotova. To ostavlja vjerojatnost korištenja Kuke u kernelovom kodu, čineći njegovu upotrebu iznimno fleksibilnim i općenito prihvaćenim od strane grupe. Ovi kuke ostavljaju nekoliko zamislivih ishoda i mogu se ispuniti kao pokretači za određene prigode.

 

Zaključak:

Razvoj softvera - Što je kvačilo - zaključakKonstrukcijski postupci za spajanje su učinkoviti i otvaraju opseg mogućih ishoda za softverske inženjere, međutim, treba ih koristiti s upozorenjem budući da uključuju više istaknutih zamršenosti u tok postupaka i mijenjaju prvi provođenje OS-a, aplikacija ili drugih softverskih segmenata, što je teško shvatiti obrazloženje softvera. Osim toga, kao što je prethodno navedeno u ovom članku, korištenje tih sustava bez paradigme može oduzeti izvršenje aplikacija.

Ostavi odgovor

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