blog

9 Jnn 2017

Maendeleo ya Programu: Hook ni nini?

/
Posted By

Maendeleo ya Programu: Hook ni nini?

Tunapaswa kujua kuhusu aina ndogo za ndovu.

Hook ni nini?Katika maendeleo ya programu, Hooking ni wazo ambalo linaruhusu kubadilisha tabia ya programu. Nambari ya uwezekano inakupa mabadiliko ya mwenendo wa kwanza wa kitu bila kubadilisha code yako ya kulinganisha darasa. Hii imekamilika na kubandika mikakati ya ndoano.

Matumizi ya aina hii yanasaidia sana kwa sababu ya kuongeza kazi mpya kwa programu, na kuongeza kuhamasisha mawasiliano kati ya taratibu mbadala na ujumbe wa mfumo. Hooks huwa na kupunguza utekelezaji wa mfumo kwa kupanua mzigo wa kuandaa ambayo mfumo unahitaji kufanya kwa kila ujumbe. Inapaswa kuletwa tu wakati unahitajika na kuhamishwa wakati wa kwanza.

Fikiria kuwa unatumia Mfumo wa Usimamizi wa Wateja (CMS) kutoka kwa mgeni na unataka kuwa mtendaji mkuu aadhibiwe kwa barua pepe kila mara wakati mwingine chapisho limegawanywa na kwamba tabia hii sio msingi wa kifaa. Kutakuwa na njia mbili za mbele:

Mabadiliko ya msimbo wa chanzo cha CMS sio mawazo mazuri, baada ya yote katika ufuatiliaji wa kifaa hiki utakabiliana na ugumu wa kupoteza mabadiliko yako au usiwe na uwezo wa kuendelea na kila kitu kilichofanywa;

  • Fanya CMS yako mwenyewe ni mawazo mengine ya kutisha, vitu vyote vinavyozingatiwa, huna nishati au vitu vya kutosha kufanya mambo mapya au hata kuendelea na kile cha kutengeneza;
  • Kuchunguza uwezekano wa kutumia ndoano, yaani, angalia kama CMS inaonekana katika modules nje au modules kwa vipengele vya jina ambalo linatakiwa kutekelezwa katika dakika ya kutamani, kwa hali hii, usambazaji wa machapisho mapya.
  • Kwenye ardhi sehemu ya ndoano za matumizi hubadilishana kwa ujumla kutoka kwenye kifaa kwenda kwenye chombo. Kanuni nzuri ya ndoano sio kubadili msimbo wa kwanza. Katika vitabu vyote vya mazoezi mazuri vya vifaa vyote vya chanzo wazi ambavyo vinasasisha vipindi vya mantra ambavyo hujifurahisha haibadilisha kituo. Ingawa kujifurahisha kunaweza kutafakari, mtu yeyote atakayekuja baadaye hawezi kufikiri juu ya mabadiliko, na mtu ambaye anazungumza kwa urahisi ni wewe, sio vifaa.

Upanuzi ni mtazamo mwingine unaopendekezwa wa kutumia mikakati ya ndoano ambayo inaruhusu maombi ya kuongeza interfaces yake imara. Mikakati ya ndofi hupunguza interfaces imara na mwenendo wa nafasi mbalimbali ambazo zinaweza kutokea kutokana na kuanzishwa kwa programu kwa mazingira maalum.

Ufumbuzi wa teknolojia ya ubunifu inatoa Mafunzo ya Maendeleo ya Programu huko Gurgaon, Delhi NCR nchini India.

Hook Kama Sampuli za Kubuni

Inastaajabisha kutambua kuwa mipangilio mingi (yote) ya muhtasari inaonyesha semantics kwa ndoano. Wanasema jinsi ya kutekeleza mifumo ndogo ya maeneo ya shida. Baadhi hutegemea utawala wa maendeleo ya silaha: Kikemikali, Kiwanda, Mjenzi, Amri, Mtafsiri, Mwangalizi, Mfano, Nchi, na Mkakati.

Wengine katika mifano zote mbili za uunganishaji na maendeleo ya kikundi: Kigezo Method na Bridge.

Semantics hujulikana kwa jina la mbinu (kwa mfano, katika amri, mkakati unaitwa kutekeleza ()).

 

Jedwali la Njia Iliyofaa ya Kupikia

Maendeleo ya Programu - Nini Hook - Mtazamo 1 mbinu za kweli zinaletwa kwa njia isiyojulikana kutoka mikakati ya static, lakini tangu mbinu za kawaida zinaweza kubadilishwa, compiler haijui anwani ya uwezo maalum virtual wakati simu yake code. Kwa hiyo, compiler, hukusanyika Jedwali la Njia ya Virtual (VMT), ambayo inatoa njia ya uchunguzi kwa anwani za uwezo wakati wa kukimbia. Mkakati wowote wa kawaida unaoamilishwa wakati wa kukimbia kupitia VMT. VMT ya swali ina mikakati yote ya virtual kwa watangulizi wake, na zaidi ya hayo inatangaza. Kwa hiyo, mbinu virtual kutumia kumbukumbu zaidi kuliko mikakati ya kipengele, licha ya ukweli kwamba wao kukimbia kasi.

Tangu VMT ni meza ambayo ina maelekezo na anwani za kumbukumbu kwa uwezo wa interface, kinachotakiwa kufanywa ni kusambaza anwani ya kumbukumbu ya kwanza na anwani ya kazi ya ndoano halali. Pamoja na mstari huu, mbinu inayoitwa itakuwa imeandikwa, na tabia mpya ya kutamani ya uwezo itafanywa.

 

Kupikia API

Maendeleo ya Programu - Hook - Point 2The Kuzingatia API utaratibu kweli inaruhusu wewe reinvent vipengele vya mfumo wa kazi. Kwa uwezo wa kukamata mashtaka hayo, unaweza kubadilisha vigezo vyao kwa kubadilisha shughuli ambayo ingefanyika awali.

Inaonekana, kwa mfano, kwa kufuta kipande cha rekodi maalum, kuweka programu kutoka kwa kuendesha, na uomba uthibitisho wa mteja ili uhifadhi kumbukumbu kwenye mviringo, na kadhalika.

Kwa hakika, kukatwa kwa uamuzi mkubwa katika eneo la usalama, kwa mfano, antivirus na antispyware. Kuwa hivyo iwezekanavyo, kuna hali katika maendeleo yetu ya kawaida ambapo API ya Hooking, inaweza kuwa njia kuu ya nje.

Programu ya Programu Kupika, katika hali yetu maalum, ina maana ya kupata API kutoka kwa OS, au kutoka kwa DLL yoyote, na kubadilisha utekelezaji wake wa kawaida mahali pengine, hasa zaidi, kwa uwezo mwingine. Kuna njia mbili za kimsingi:

EAT na IAT: wote EXE / DLL ina API kuagiza na kupiga meza. Jedwali hizi zina vidokezo vinavyoonyesha Point ya Kuingiza API. Kwa kubadilisha hoja hizi, na kuzifanya zionyeshe upesi wetu, tuna ndoano. Kuwa kama iwezekanavyo, kama hii EXE / DLL haiingii API, mkakati huu hauwezi kufanya kazi;

Urekebishaji wa Kanuni ya Msawazito: Kama ilivyotangulia kusema, katika tukio ambalo lilikuwa linawezekana kuongeza wito kwa kurudi kwa rejea yetu kuelekea mwanzo wa msimbo wa API, tunaweza "kuvuta", na kufanya uwezo wetu kukimbia wakati wowote API iliitwa. Kuwa kama iwezekanavyo, kuna suala: ikiwa baada ya kanuni zetu kushughulikiwa, tulihitaji kupiga simu ya API ya kwanza, tutaweza kurudi nyuma ya kurudi tena, na mafuriko mengi yatatengenezwa. Mpangilio mmoja ni kurekebisha ndoano kuwa na uwezo wa kupiga simu API, kuijaribu upya mara moja inapotumiwa. Kuwa hivyo iwezekanavyo, katikati ya ardhi hii ya kituo, wito cha API chache zinaweza kufanywa na haitaweza kutekeleza tena;

Hook ya ndani ni hatua ambayo tunapata miongozo kuu ya uwezo, na tunafanya biashara kwa Rukia, Push au Call kwa uwezo wetu.

Kusoma iliyosajiliwa: Mfumo wa kazi wa Windows unaongeza pia API hooking. Tunapaswa kujua jinsi kazi za Windows API zinavyofanya kazi?

 

Wakati wa Kupika

Maendeleo ya Programu - Nini Hook - Njia 3As mbinu mbinu hupunguza interfaces imara na mwenendo wa nafasi mbalimbali ambayo inaweza kuibuka kutoka instantiation ya maombi kwa ajili ya kuweka maalum hutokea mabadiliko ya udhibiti. Vipengee vya vitu vikwazo vinaweza kurekebisha hatua. Mwishoni mwa siku, wakati wa tukio linapotokea, msimamizi hujibu mikakati ya ndoano juu ya vitu ambavyo viliandikwa kabla ya kuandaa shughuli. Nyakati za matukio: ujumbe wa dirisha, vifungo vya kutua kutoka bandari za mawasiliano.

 

Ndani ya IAT Hooking

Maendeleo ya Programu - Nini Hook - Mtazamo 4Katika mchakato wa Windows ina jedwali inayoitwa Jedwali la Anwani ya Kuingiza (IAT), ambalo linaweka maelekezo kwa uwezo uliotumwa na DLL ya kila utaratibu. Jedwali hili limeendelea kwa wakazi kwa anwani ya vipengele vya DLL wakati wa kukimbia.

Kutumia uwezo fulani, tunaweza kufanya meza ya IAT imeandikwa, kwa kuzingatia kubadilisha anwani yake kwa anwani ya uwezo wa desturi, upya tena meza kama kusoma-tu baada ya mabadiliko haya. Kwa wakati utaratibu unajaribu kuwaita uwezo, anwani yake imepatikana kwenye meza ya IAT, na pointer inarudi. Kama meza ya IAT imebadilishwa, uwezo wa desturi huleta kuanzishwa kwa uwezo wa kwanza na msimbo ulioingizwa katika utaratibu umepatikana.

 

Netfilter Hook

Maendeleo ya Programu - Hook - Point 5Netfilter ni mfumo wa kipande cha Linux unaojulikana zaidi kuliko 2.4. Ni katika malipo ya kifungu kinachotenganisha, NAT, firewall, redirection, kati ya wengine. Netfilter ni wazi sana, na nyaraka zake zimekamilika. Inachukua uwezekano wa kutumia Hooks katika kernel code, na kufanya matumizi yake rahisi sana na kwa ujumla kupokea na kundi. Hook hizi zinaondoka matokeo machache yanayotarajiwa na inaweza kujaza kama vile husababisha matukio maalum.

 

Hitimisho:

Maendeleo ya Programu - Hook - hitimishoKu taratibu za programu za kupika ni bora na kufungua upeo wa matokeo ya kufikiri kwa wahandisi wa programu, hata hivyo inapaswa kutumiwa kwa tahadhari kwa kuwa ni pamoja na ujuzi mkubwa zaidi katika mkondo wa taratibu na mabadiliko ya kwanza uendeshaji wa OS, maombi au makundi mengine ya programu, na kuifanya vigumu kuelewa hali ya programu. Nyingine zaidi ya hayo, kama ilivyoelezwa hapo awali katika makala hii, matumizi ya mifumo hii bila dhana inaweza kudhoofisha utekelezaji wa maombi.

Acha Reply

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