Blogg

9 mar 2017

Programvareutvikling: Hva er en krok?

/
Postet av

Programvareutvikling: Hva er en krok?

Vi burde vite om få typer kroker.

Hva er en krok?I programvareutvikling er Hooking en ide som tillater endring av oppførelsen av et program. Mulighetskoden gir deg mulighet til å endre den første oppførselen til noe uten å endre koden til sammenligningsklassen. Dette er ferdig ved å overskrive krokstrategiene.

Denne typen bruk er ekstremt nyttig på grunn av å legge til nye funksjoner for applikasjoner, i tillegg oppmuntrende korrespondanse mellom alternative prosedyrer og meldinger i systemet. Kroker har en tendens til å redusere systemutførelse ved å utvide den forberedende belastningen som systemet må utføre for hver melding. Det burde bli introdusert akkurat når det kreves og evakueres så snart som mulig.

Forstå at du bruker et kundestyringssystem (CMS) fra en outsider, og du vil kanskje at en superledende skal varsles via e-post hver gang et annet innlegg ble distribuert og at denne oppførselen ikke er standard for enheten. Det ville være et par ruter fremover:

Endre CMS kildekoden er ikke en smart tanke, i det hele tatt i den følgende oppdateringen av enheten vil du konfrontere vanskeligheten med å miste endringen eller ikke ha kapasitet til å fortsette alt oppdatert;

  • Lag din egen spesielle CMS er en annen forferdelig tanke, alt i betraktning, du har ikke tilstrekkelig energi eller ressurser nok til å lage nye ting eller til og med holde opp med å produsere;
  • Utforsk sannheten for å utnytte en krok, det vil si om CMS ser på utvendige moduler eller moduler for elementene i et tilbudt navn som skal utføres på det ønskede tidspunktet, for denne situasjonen, fordelingen av nye innlegg.
  • Den jordnære delen av bruk av kroker varierer generelt fra enhet til instrument. Den principielle gunstige posisjonen til kroker er ikke å endre den første koden. I alle praktiske håndbøker av alle åpen kildekode-enheter som har periodiske oppdateringer, endrer mantraet som rehashes seg ikke senteret. Til tross for at det gjøres uopprettelig, vil enhver som senere kommer til å opprettholde ikke tenke på forandringen, og personen som knapt diskuterer det, er deg, ikke apparatet.

Utstrekningsevnen er et annet foretrukket synspunkt for å utnytte krokstrategier som tillater at applikasjonen kan øke stabile grensesnitt. Hook strategier decouple stabile grensesnitt og oppførsel av en rekke plass som kan oppstå fra instantiation av en søknad for en bestemt innstilling.

Innovative Technology Solutions tilbyr programvareutviklingstrening i Gurgaon, Delhi NCR i India.

Kroker Som Design Mønstre

Det er spennende å merke seg at mange (alle) skissemodeller eksemplifiserer semantikk for kroker. De snakker med hvordan man utfører delsystemer av problemområder. Noen avhenger av regelen om løsrivelsesutvikling: Abstract, Factory, Builder, Command, Interpreter, Observer, Prototype, State og Strategy.

Andre i begge eksempler på forening og partisjonutvikling: Template Method and Bridge.

Semantikk kommuniseres vanligvis i krokteknikkens navn (for eksempel i kommandoen kalles strategien utfør ()).

 

Virtual Method Table Hooking

Programvareutvikling - Hva er en krok - Punkt 1Virtuelle teknikker blir hentet på en ukjennelig rute fra statiske strategier, men siden virtuelle teknikker kan endres kjenner kompilatoren ikke adressen til en bestemt virtuell kapasitet når du ringer det i koden din. Kompilatoren samler dermed en virtuell metode tabell (VMT), som gir en måte å henvende seg til kapasitetsadresser i runtime. Hver enkelt virtuell strategi aktiveres på kjøretid gjennom VMT. VMT av et spørsmål inneholder alle de virtuelle strategiene for sine forløpere, og i tillegg de som de proklamerer. Derfor bruker virtuelle teknikker mer minne enn elementstrategier, til tross for at de går raskere.

Siden VMT er et bord som inneholder pekere med minnesadresser for grensesnittkapasiteten, bør det gjøres å erstatte den første minnesadressen med en adresse på et legitimt krokarbeid. Langs disse linjene vil den kalte teknikken bli overskrevet, og kapasitets nye ettertraktede oppførsel vil bli utført.

 

Hooking API

Programvareutvikling - Hva er en krok - Punkt 2Hooking API-prosedyren tillater deg virkelig å gjenoppfinne elementene i arbeidssystemet. Med muligheten til å fange slike kostnader, kan du endre parametrene ved å endre aktiviteten som skulle utføres først.

Det er tenkelig for eksempel å kansellere en bestemt post, holde en søknad fra å kjøre, og kreve en klientbekreftelse for å spare et arkiv til sirkelen, et cetera.

Faktisk er det største avskjæret av avgjørelsen i sikkerhetsområdet, for eksempel antivirus og antispionprogrammer. Vær det som mulig, det er omstendigheter i vår vanlige utvikling der Hooking API, kan være den viktigste veien ut.

Programmeringsgrensesnitt Hooking, i vår spesielle situasjon, innebærer å få en API fra operativsystemet, eller fra en hvilken som helst DLL, og endre dens typiske utførelse til et annet sted, enda mer, til en annen kapasitet. Det er grunnleggende to tilnærminger:

Spise og IAT: Alle EXE / DLL inneholder API for å importere og billettpriser. Disse tabellene inneholder pekere som viser API-inngangspunktet. Ved å endre disse pekene, slik at de indikerer tilbakekallingen, har vi en krok. Vær det som det kan, hvis denne EXE / DLL ikke importerer API-er, vil denne strategien ikke fungere;

Forenklet kodeoverskriving: Som tidligere sagt, i tilfelle at det var mulig å legge til et anrop til tilbakekallingen mot begynnelsen av API-koden, kunne vi "koble den", slik at vår kapasitet løper på et hvilket som helst tidspunkt API ble kalt. Vær det som det kan være, det er et problem: Hvis vi etter vår kode ble håndtert, trengte vi å ringe til den første API-en, vi ville falle tilbake på tilbakeringingen vår, og en stabelflom ville bli opprettet. Et arrangement er å fikse kroken for å ha kapasitet til å ringe til API-en, og prøv på nytt når den er utført. Vær det som mulig, midt i dette senterområdet, kan noen API-anrop gjøres og vil ikke utføre vår tilbakeringing;

Inline Hook er det punktet vi får de viktigste retningslinjene for en kapasitet, og vi handler for et Hopp, Push eller et kall for vår kapasitet.

Foreskrevet lesing: Windows-arbeidssystemet støtter i tillegg hooking API. Vi bør vite hvordan Windows API-tilkobling fungerer?

 

Anledning Hooking

Programvareutvikling - Hva er en krok - Punkt 3As krokteknikker avkoble stabile grensesnitt og oppførsel av et variert mellomrom som kan oppstå ved oppstart av et program for en bestemt innstilling, skjer en reversering av kontroll. Objektbegivenhetshåndterer modifiserer forberedelse av trinn. På slutten av dagen, når en anledning skjer, reagerer handleren på å stryke krogstrategier på forhåndsmeldte objekter som utfører spesiell anledning til å forberede aktiviteter. Tilfeller av anledninger: vindumeldinger, bunter som lander fra korrespondansehavner.

 

Inne IAT Hooking

Programvareutvikling - Hva er en krok - Punkt 4Each-prosessen i Windows har en tabell som heter Import Address Table (IAT), som lagrer pekere til kapasitetene som sendes ut av DLL-ene i hver prosedyre. Denne tabellen er fylt ut gradvis med adressen til elementene i DLLene på kjøretid.

Ved hjelp av spesielle kapasiteter kan vi gjøre IAT-tabellen skrivbar, og det er tenkelig å endre adressen ved hjelp av en adresse med en tilpasset kapasitet, og betegner bordet som enkelt etter denne endringen. På det punktet når prosedyren forsøker å ringe kapasiteten, er adressen sin i IAT-tabellen, og en peker blir returnert. Etter hvert som IAT-tabellen er endret, blir den tilpassede kapasiteten satt opp med den første kapasiteten, og koden som er infundert i prosedyren, er oppnådd.

 

Netfilter Hook

Programvareutvikling - Hva er en krok - Punkt 5Netfilter er et Linux-delsystem som er mer bemerkelsesverdig enn 2.4. Det er ansvarlig for buntseparering, NAT, brannmur, omdirigering, blant andre. Netfilter er eksepsjonelt utvidbart, og dokumentasjonen er ferdig. Det etterlater sannsynligheten for å utnytte kroker i kjernekoden, noe som gjør bruken svært fleksibel og generelt mottatt av gruppen. Disse krokene gir noen mulige utfall og kan fylles ut som utløsere for bestemte anledninger.

 

Konklusjon:

Programvareutvikling - Hva er en krok - konklusjonen Hekta programmeringsprosedyrer er effektive og åpner et omfang av tenkelige utfall for programvareingeniører, men det burde bli utnyttet med varsel siden de inkluderer en mer fremtredende komplisert i prosessstrømmen og endrer den første gjennomføring av operativsystemet, programmene eller andre programvaresegmenter, noe som gjør det vanskelig å forstå begrunnelsen til programvaren. Annet enn det som angitt tidligere i denne artikkelen, kan bruken av disse systemene uten paradigme avta utførelsen av søknadene.

Legg igjen et svar

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