Blog

9 Tues. 2017

Dezvoltarea de software: Ce este un cârlig?

/
Adăugată pe site de

Dezvoltarea de software: Ce este un cârlig?

Ar trebui să știm despre câteva tipuri de cârlig.

Ce este un cârlig?În dezvoltarea de software, Hooking este o idee care permite schimbarea comportamentului unui program. Codul de posibilități vă oferă posibilitatea de a schimba primul comportament al unui anumit lucru fără a schimba codul clasei de comparare. Acest lucru este terminat prin suprascrierea strategiilor de cârlig.

Acest tip de utilizare este extrem de util datorită adăugării de noi funcționalități aplicațiilor, încurajând în plus corespondența dintre procedurile alternative și mesajele sistemului. Cârligele tind să reducă execuția sistemului prin extinderea încărcării pregătitoare pe care sistemul trebuie să o efectueze pentru fiecare mesaj. Ar trebui să fie introdusă doar atunci când este necesară și evacuată cât mai curând posibil.

Imaginați-vă că utilizați un sistem de management al clienților (CMS) de la un outsider și ați putea dori ca super-executivul să fie avertizat prin e-mail de fiecare dată când a fost distribuită o altă postare și că acest comportament nu este implicit al dispozitivului. Vor exista câteva trasee înainte:

Schimbarea codului sursă CMS nu este un gând inteligent, după toate în următoarea reîmprospătare a dispozitivului vă veți confrunta dificultatea de a pierde schimbarea dvs. sau nu au capacitatea de a continua totul reîmprospătat;

  • Asigurați-vă propriul CMS special este un alt gând teribil, toate lucrurile luate în considerare, nu aveți suficientă energie sau bunuri suficient pentru a face lucruri noi sau chiar să păstreze ceea ce să fabricăm;
  • Explorați probabilitatea utilizării unui cârlig, adică verificați dacă CMS arata în modulele sau modulele exterioare elemente ale unui nume oferit care urmează să fie executat la minutul dorit, pentru această situație, distribuirea de postări noi.
  • Partea de jos a pământului a cârligelor de utilizare variază în general de la dispozitiv la instrument. Poziția favorabilă principală a cârligelor nu este de a schimba primul cod. În toate manualele de practică excelente ale tuturor dispozitivelor open source care au actualizări intermitente, mantra care reînsuflețează ea însăși nu schimbă centrul. În ciuda faptului că refacerea este inimaginabilă, orice persoană care vine mai târziu să întrețină nu se va gândi la schimbare, iar persoana care abia discută despre ea este tu, nu aparatul.

Extensibilitatea este un alt punct de vedere preferat al utilizării strategiilor de cârlig care permit aplicației să-și mărească interfața stabilă. Strategiile Hook decuplează interfețele stabile și conducerea unui spațiu variat care poate apărea din instanțiarea unei aplicații pentru o anumită setare.

Soluții tehnologice inovatoare oferă programe de dezvoltare software în Gurgaon, Delhi NCR în India.

Cârlige ca modele de design

Este interesant de remarcat faptul că numeroasele modele de schițe ilustrează semantica pentru cârlige. Vorbesc despre modul de executare a subsistemelor din zonele problematice. Unele depind de regula de dezvoltare a detașamentului: Rezumat, Factory, Builder, Command, Interpreter, Observer, Prototype, State și Strategy.

Alții, în ambele exemple de unificare și de dezvoltare a partițiilor: Metoda șablonului și Bridge.

Semantica este obișnuit comunicată în numele tehnicii cârligului (de exemplu, în comandă, strategia se numește execute ()).

Tabelul metodei virtuale

Dezvoltarea de software - Ce este un punct de cârlig 1Virtual tehnicile sunt aduse într-un traseu indistinguizabil de la strategiile statice, dar din moment ce tehnicile virtuale pot fi schimbate, compilatorul nu cunoaște adresa unei anumite capacități virtuale atunci când o numiți în codul tău. Compilatorul asamblează astfel o tabelă de metode virtuale (VMT), care oferă o modalitate de a solicita adresele de capacitate în timpul rulării. Fiecare strategie virtuală virtuală este activată în timpul rulării prin VMT. VMT-ul unei întrebări conține toate strategiile virtuale pentru precursorii săi și, în plus, acelea pe care le proclamă. Prin urmare, tehnicile virtuale utilizează mai multă memorie decât strategiile de elemente, în ciuda faptului că acestea funcționează mai rapid.

Deoarece VMT este un tabel care conține indicii cu adrese de memorie pentru capacitățile de interfață, ceea ce trebuie făcut este de a suplini prima adresă de memorie cu o adresă a unei lucrări legitime de cârlig. În aceste direcții, tehnica numită va fi suprascrisă și va fi executată noua conduită a capacității.

Apelare API

Dezvoltarea de software - Ce este un punct de cârlig 2Procesul Hooking API vă permite să reinventați elementele sistemului de lucru. Cu abilitatea de a captura astfel de încărcări, puteți schimba parametrii prin modificarea activității care ar fi efectuată inițial.

Se poate presupune, de exemplu, anularea unei înregistrări specifice, păstrarea unei cereri de rulare și solicitarea unei afirmații a clientului de a rezerva o arhivă în cerc și altele.

Într-adevăr, cea mai mare reducere a deciziei este în domeniul securității, de exemplu, antivirus și antispyware. Fie ca atare, există circumstanțe în dezvoltarea noastră obișnuită în care API Hooking poate fi principala cale de ieșire.

Interfața de programare Conversia de programare, în circumstanțele noastre specifice, presupune obținerea unui API din sistemul de operare sau din orice DLL și modificarea execuției sale tipice în altă parte, cu atât mai mult, într-o altă capacitate. Există în mod fundamental două abordări:

EAT și IAT: toate EXE / DLL conține API pentru a importa și tabele tarif. Aceste tabele conțin indicii care afișează punctul de intrare API. Prin schimbarea acestor indicații, făcându-le să indice apelul nostru, avem un cârlig. Fie ca atare, dacă acest EXE / DLL nu importă API-uri, această strategie nu va funcționa;

Transcrierea codului simplu: după cum sa spus în prealabil, în cazul în care era posibil să adăugăm un apel la apelul nostru către începutul codului API, l-am putea "prinde", făcând capacitatea noastră să fie rulată la orice punct API a fost apelat. Fie ca asa cum este posibil, este o problema: daca dupa ce codul nostru a fost manipulat, a trebuit sa sunam la primul API, am reveni la callback-ul nostru si s-ar crea o inundatie de stive. Un aranjament este fixarea cârligului pentru a avea capacitatea de a apela API-ul, încercând-l din nou după ce acesta este executat. Fie ca atare, în mijlocul acestui centru, câteva apeluri API pot fi făcute și nu ne-ar executa callback-ul;

Inline Hook este punctul în care obținem principalele linii directoare ale unei capacități, iar noi tranzacționăm pentru un salt, un push sau un apel pentru capacitatea noastră.

Citește prescris: Sistemul de lucru Windows sprijină suplimentar API-ul de conectare. Ar trebui să știm cum funcționează funcțiile Windows API?

Ocazionale

Dezvoltarea de software - Ce este un hook - Point Tehnicile cârligului 3A decuplează interfețele stabile și desfășurarea unui spațiu variat care poate apărea din instanțiarea unei aplicații pentru o anumită setare, se întâmplă o inversare a controlului. Obiectele care manipulează ocazia modifică etapele de pregătire. La sfârșitul zilei, atunci când se întâmplă o întâmplare, manipulatorul răspunde strategiilor de convorbire cu cârlig pe obiectele preînregistrate care execută anumite activități de pregătire a ocaziilor. Cazuri de ocazii: mesaje de ferestre, pachete de aterizare din porturile de corespondență.

În interiorul IAT Hooking

Dezvoltarea de software - Ce este un proces Hook-Point 4Each în Windows are un tabel denumit Import Address Table (IAT), care stochează indicii la capacitățile expediate de DLL-urile fiecărei proceduri. Acest tabel este populat progresiv cu adresa elementelor DLL-urilor la momentul executării.

Folosind capacități particulare, putem face ca tabelul IAT să fie scris, fiind posibil să-și schimbe adresa printr-o adresă cu o capacitate personalizată, redenumind tabelul ca fiind citit - pur și simplu după această schimbare. În momentul în care procedura încearcă să apeleze capacitatea, adresa sa este atinsă în tabelul IAT și se întoarce un indicator. Pe măsură ce tabelul IAT a fost schimbat, capacitatea personalizată este adusă în funcțiune din prima capacitate, iar codul infuzat în procedură este obținut.

Netfilter Hook

Dezvoltarea de software - Ce este un punct de cârlig 5Netfilter este un subsistem de piesă Linux mai remarcabil decât 2.4. Acesta se ocupă de separarea pachetelor, NAT, firewall, redirecționare, printre altele. Netfilter este extrem de extensibil, iar documentația sa este finalizată. Aceasta lasă probabilitatea utilizării de cârlige în codul Kernel, făcând utilizarea sa extrem de flexibilă și, în general, primită de grup. Aceste cârlige lasă câteva rezultate posibile și pot fi completate ca declanșatoare pentru anumite ocazii.

Concluzie:

Dezvoltarea de software - Ce este un cârlig - concluzie Procedurile de programare de hacking sunt eficiente și deschid o gamă de rezultate concepute pentru inginerii software, totuși ar trebui să fie utilizate cu alertă, deoarece includ o complexitate mai proeminentă în fluxul de proceduri și schimbarea primului conducerea sistemelor de operare, a aplicațiilor sau a altor segmente de programe, ceea ce face dificilă înțelegerea rațiunii software-ului. În afară de aceasta, așa cum sa specificat anterior în acest articol, utilizarea acestor sisteme fără paradigmă poate compromite executarea aplicațiilor.

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