Blog

9 magpapangit 2017

Software Development: Ano ba ang isang Hook?

/
Posted By

Software Development: Ano ba ang isang Hook?

Dapat nating Malaman Tungkol sa Ilang Mga Uri Ng Hook.

Ano ang isang Hook?Sa software development, ang Hooking ay isang ideya na nagpapahintulot sa pagbabago ng pag-uugali ng isang programa. Ang posibilidad ng code ay nag-aalok sa iyo upang baguhin ang unang pag-uugali ng isang bagay nang hindi binabago ang iyong code ng paghahambing ng klase. Ito ay tapos na sa pamamagitan ng overwriting ang estratehiya sa hook.

Ang ganitong uri ng paggamit ay lubhang kapaki-pakinabang sa account ng pagdaragdag ng mga bagong pag-andar sa mga application, bukod pa sa paghikayat sa pagsusulatan sa pagitan ng mga kahaliling pamamaraan at mensahe ng system. Ang mga hook ay may posibilidad na mabawasan ang pagpapatupad ng sistema sa pamamagitan ng pagpapalawak ng paghahanda ng pag-load na kailangang gawin ng system para sa bawat mensahe. Dapat itong ipakilala lamang kapag kinakailangan at lumilikas sa pinakamaagang pagkakataon.

Pag-isipan na ginagamit mo ang isang Customer Management System (CMS) mula sa isang tagalabas at baka gusto mo ang isang sobrang ehekutibo na babalaan sa pamamagitan ng email sa bawat oras na ipinamahagi ang iba pang post at ang pag-uugali na ito ay hindi ang default ng device. Magkakaroon ng ilang mga ruta pasulong:

Baguhin ang CMS source code ay hindi isang smart na pag-iisip, pagkatapos ng lahat sa mga sumusunod na pag-refresh ng aparato ay haharapin mo ang kahirapan sa pagkawala ng iyong pagbabago o hindi magkaroon ng kakayahan upang ipagpatuloy ang lahat ng na-refresh;

  • Gumawa ng iyong sariling partikular na CMS ay isa pang kahila-hilakbot na pag-iisip, lahat ng mga bagay na isinasaalang-alang, wala kang sapat na enerhiya o mga asset na sapat upang gumawa ng mga bagong bagay o kahit na panatilihin kung ano upang gumawa;
  • Tuklasin ang posibilidad ng paggamit ng isang kawit, iyon ay, suriin kung ang CMS ay tumitingin sa mga module sa labas o mga module para sa mga elemento ng isang inaalok na pangalan upang maisakatuparan sa minana, para sa sitwasyong ito, ang pamamahagi ng mga bagong post.
  • Ang pababa sa lupa na bahagi ng paggamit ng mga kawit ay nagbabagu-bago sa pangkalahatan mula sa aparato hanggang sa instrumento. Ang prinsipyo ng kanais-nais na posisyon ng mga kawit ay hindi baguhin ang unang code. Sa lahat ng mahusay na mga manwal ng pagsasanay ng lahat ng mga open source device na mayroong paulit-ulit na pag-update ang mantra na rehashes mismo ay hindi nagbabago sa sentro. Sa kabila ng paggawa ng mga pag-refresh na hindi mailarawan ng isip, ang anumang indibidwal na dumarating mamaya upang gumawa ng pangangalaga ay hindi mag-iisip tungkol sa pagbabago, at ang taong hindi gaanong pinag-uusapan ito ay ikaw, hindi ang aparatong.

Ang extensibility ay isa pang ginustong pananaw ng paggamit ng mga estratehiya sa hook na nagpapahintulot sa application na dagdagan ang matatag na mga interface nito. Ang mga istratehiya ng hook ay nag-decouple ng mga matatag na interface at pag-uugali ng iba't ibang puwang na maaaring lumabas mula sa instantiation ng isang application para sa isang tukoy na setting.

Makabagong Teknolohiya Solutions nag-aalok ng Software Development Training sa Gurgaon, Delhi NCR sa India.

Mga Hooks Bilang Mga Pattern ng Disenyo

Ito ay nakakaintriga upang tandaan na ang maraming (lahat) mga disenyo ng balangkas ay nagpapakita ng mga semantika para sa mga kawit. Nagsasalita sila sa kung paano isagawa ang mga sub-system ng mga lugar ng problema. Ang ilan ay nakasalalay sa tuntunin ng pag-unlad ng detatsment: Abstract, Pabrika, Tagabuo, Command, Interpreter, Observer, Prototype, Estado, at Diskarte.

Ang iba sa parehong mga halimbawa ng pag-unip at pag-unlad ng partisyon: Pamamaraan ng Pamamaraan at Tulay.

Ang semantika ay karaniwan na ipinakikilala sa pangalan ng pamamaraan ng hook (halimbawa, sa Command, ang diskarte ay tinatawag na execute ()).

 

Virtual Method Table Hooking

Software Development - Ano ang isang diskarte sa Hook - Point 1Virtual na dinala sa isang hindi makilala na ruta mula sa static na mga estratehiya, ngunit dahil ang mga virtual na diskarte ay maaaring mabago, ang tagatala ay hindi alam ang address ng isang tiyak na virtual na kapasidad kapag tinawagan mo ito sa iyong code. Ang tagatala, sa gayon, ay nagtitipon ng isang Virtual Method Table (VMT), na nagbibigay ng isang paraan upang magtanong sa mga address ng kapasidad sa runtime. Ang bawat solong diskarte sa virtual ay isinaaktibo sa runtime sa pamamagitan ng VMT. Ang VMT ng isang katanungan ay naglalaman ng lahat ng mga virtual na estratehiya para sa mga precursors nito, at bukod pa sa mga ipinahayag nito. Samakatuwid, ang mga virtual na diskarte ay gumagamit ng mas maraming memory kaysa sa mga estratehiya ng elemento, sa kabila ng katotohanang nagpapatakbo sila ng mabilis.

Dahil ang VMT ay isang talahanayan na naglalaman ng mga payo na may mga address ng memory para sa mga capacities ng interface, ang dapat gawin ay upang palitan ang unang memory address sa isang address ng isang lehitimong trabaho sa hook. Kasama ang mga linyang ito, ang tinatawag na pamamaraan ay mapapatungan, at ang bagong pag-uugali ng kapasidad ay papatupad.

 

Hooking API

Software Development - Ano ang isang Hook - Point 2Ang Hooking API procedure ay tunay na nagpapahintulot sa iyo na muling baguhin ang mga elemento ng working system. Gamit ang kakayahang makuha ang mga naturang singil, maaari mong baguhin ang kanilang mga parameter sa pamamagitan ng pagbabago ng aktibidad na gagawin sa simula.

Halimbawa, maaaring iisipin ang pagkansela ng isang tukoy na rekord, panatilihin ang isang aplikasyon mula sa pagtakbo, at humingi ng paninindigan ng kliyente upang ilaan ang isang archive sa bilog, at iba pa.

Sa katunayan, ang pinakadakilang putol ng desisyon ay nasa rehiyon ng seguridad, halimbawa, antivirus at antispyware. Maging na ito ay maaaring, may mga pangyayari sa aming mga ordinaryong pag-unlad kung saan ang Hooking API, ay maaaring maging ang pangunahing paraan out.

Pag-uusap ng interface Hooking, sa aming partikular na pangyayari, ay nagpapahiwatig ng pagkuha ng isang API mula sa OS, o mula sa anumang DLL, at baguhin ang pangkaraniwang pagpapatupad nito sa ibang lugar, mas eksakto, sa isa pang kapasidad. Mayroong dalawang panuntunan sa panimula:

EAT and IAT: lahat ng EXE / DLL ay naglalaman ng API para mag-import at mga talahanayan ng pamasahe. Ang mga talahanayan ay naglalaman ng mga payo na nagpapakita ng API Entry Point. Sa pamamagitan ng pagpapalit ng mga payo na ito, ipinapahiwatig ang aming callback, mayroon kaming hook. Maging na ito ay maaaring, kung ang EXE / DLL na ito ay hindi nag-i-import ng API, ang diskarte na ito ay hindi gagana;

Diretso sa Pag-overwrite ng Code: Tulad ng sinabi ng dati, kung sakaling maiisip na magdagdag ng tawag sa aming callback patungo sa simula ng API code, maaari naming "isabit ito", na nagpapatakbo ng aming kakayahan sa anumang punto na tinatawag na API. Maging na ito ay maaaring, may isang isyu: kung matapos ang aming code ay hawakan, kailangan namin upang tawagan ang unang API, kami ay bumabalik sa aming callback, at isang stack baha ay nilikha. Isaayos ang ayusin ang kawit upang magkaroon ng kapasidad na tumawag sa API, muling sinusubukan ito sa sandaling ito ay isagawa. Maging ito ay maaaring, sa gitna ng sentro ng lupa, ang ilang mga API na mga tawag ay maaaring gawin at hindi maisagawa ang aming callback;

Ang Inline Hook ay ang punto kung saan nakukuha namin ang mga pangunahing alituntunin ng isang kapasidad, at nakikipag-trade kami para sa Jump, Push o Call para sa aming kapasidad.

Inireseta nabasa: Windows nagtatrabaho system Bukod pa rito underpins hooking API. Dapat nating malaman kung paano gumagana ang Windows API hooking function?

 

Pangyayari Hooking

Software Development - Ano ang isang hook-Point 3As hook pamamaraan decouple matatag na mga interface at pag-uugali ng isang iba't ibang mga puwang na maaaring lumabas mula sa instantiation ng isang application para sa isang partikular na setting ang mangyayari sa isang pagkabaligtad ng kontrol. Ang mga handler ng okasyon ng bagay ay nagbabago sa paghahanda ng mga hakbang. Sa pagtatapos ng araw, kapag nangyayari ang isang okasyon, tumugon ang handler ng mga estratehiya sa hook sa mga naunang naitala na bagay na nagsasagawa ng partikular na okasyon na naghahanda ng mga aktibidad. Kaso ng mga okasyon: mga mensahe ng window, mga bundle landing mula sa mga port ng sulat.

 

Sa loob ng IAT Hooking

Software Development - Ano ang isang Hook - Point 4Each na proseso sa Windows ay may talahanayan na tinatawag na Import Address Table (IAT), na nag-iimbak ng mga payo sa mga kapasidad na ipinadala ng mga DLL ng bawat pamamaraan. Ang talahanayan na ito ay populated sa progresibo sa address ng mga elemento ng DLLs sa run time.

Sa paggamit ng mga partikular na kapasidad, maaari naming gawin ang talahanayan ng IAT na masulat, na maiisip na baguhin ang address nito sa pamamagitan ng isang address ng isang pasadyang kapasidad, na muling tinutukoy ang talahanayan bilang nabasa-pagkatapos lamang ng pagbabagong ito. Sa punto kung ang pamamaraan ay sumusubok na tumawag sa kapasidad, ang address nito ay nakuha sa talahanayan ng IAT, at ang isang pointer ay ibinalik. Habang ang talahanayan ng IAT ay nabago, ang pasadyang kapasidad ay dinala sa pag-set up ng unang kapasidad at ang code na naidudulot sa pamamaraan ay nakuha.

 

Netfilter Hook

Software Development - Ano ang isang Hook - Point 5Netfilter ay isang Linux subsystem piraso mas kapansin-pansin kaysa sa 2.4. Ito ay namamahala ng paghihiwalay ng bundle, Nat, firewall, pag-redirect, at iba pa. Ang netfilter ay napakalaki, at ang dokumentasyon nito ay natapos na. Nag-iiwan ito ng posibilidad na gamitin ang Hooks sa Kernel code, na ginagawang lubos na kakayahang magamit ang paggamit nito at sa pangkalahatan ay natanggap ng grupo. Ang mga Hooks ay nag-iiwan ng ilang maiisip na mga kinalabasan at maaaring punan bilang mga nag-trigger para sa mga partikular na okasyon.

 

Paghihinuha:

Software Development - Ano ang isang Hook - konklusyon Ang mga pamamaraan sa pag-hook sa programming ay epektibo at magbubukas ng isang saklaw ng maiisip na mga resulta para sa mga software engineer, gayunpaman dapat itong gamitin sa alerto dahil kasama nila ang isang mas kilalang kaguluhan sa stream ng mga pamamaraan at baguhin ang unang pag-uugali ng OS, mga application o iba pang mga bahagi ng software, na nagpapahirap sa pag-unawa sa makatwirang paliwanag ng software. Bukod sa na, tulad ng tinukoy bago sa artikulong ito, ang paggamit ng mga sistemang ito nang walang tularan ay maaaring mapababa ang pagpapatupad ng mga aplikasyon.

-Iwan Ng sagot

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