Bloga

9 sea 2017

Software garapena: zer da ganba?

Software garapena: zer da ganba?

Kotxe mota batzuei buruz jakin behar dugu.

Zer da ganba?Software garapenean, Hooking-ek programa baten portaera aldatzea ahalbidetzen duen ideia da. Aukera kodeak zerbait lehenbiziko jokaera aldatzeko aukera eskaintzen dizu, alderatuz klasearen kodea aldatu gabe. Kakoaren estrategiak gainidatziz amaituta.

Erabilera moduko hau lagungarria da aplikazioen funtzionalitate berriak gehitzea, gainera, sistema alternatiboen eta mezuen arteko korrespondentzia sustatuz. Hookek sistemaren exekuzioa murrizten dute, mezu bakoitzerako beharrezkoak diren kargatze-lanak zabalduz. Beharrezkoa denean eta lehenbailehen ebakuatu beharra sartu behar da.

Bezeroaren Kudeaketa Sistemaren (CMS) kanpoko erabiltzaile bat erabiltzen ari zarela ikustea eta nahi duzun super zuzendaria posta elektronikoz kargu izatea nahi baduzu, beste mezu bat banatu zen eta jokabide hori ez dela gailuaren lehenetsia. Pare bat ibilbide egingo lirateke:

Aldatu CMS iturburu-kodea ez da pentsamendu adimendun bat, ondorengo gailuaren freskatze guztietan zure aldaketak galdu edo ez duzula berritzeko gaitasuna aurrez aurre izango duzu;

  • Egin zure CMS partikularra beste pentsamendu izugarri bat da, jotzen ditugun gauza guztiek ez dute energia nahikorik edo aktibo nahikorik egiten gauza berriak egiteko edo fabrikatzeko;
  • Arakatu kako bat erabiltzearen aukera, hau da, begiratu CMS kanpoko moduluetan edo moduluetan agertzen den izen baten elementuetan bilaketak egiteko, minutu berri batean exekutatzeko, egoera berri hauetarako, mezu berrien banaketa.
  • Zintzilikatzeko ametsetako gainontzeko lurretatik orokorrean fluktuatzen da gailutik eta instrumentutik. Kakoen posizio onaren printzipioa ez da lehen kodearen aldatzea. Iturburu irekiko gailu guztietako eskuliburu praktiko handienetan eguneroko aldizkako mantra berritzen duten mantra ez da aldatzen. Freskatzeak ezinezkoak diren arren, geroz eta mantsoago egongo den edozein pertsonak ez du aldaketarik pentsatuko, eztabaidatzen ari den pertsona, ez aparatua.

Estandarizazioa hobetutako beste ikuspuntu bat da, aplikazioak interfaze egonkorra areagotzeko aukera ematen dien kako-estrategiak erabiliz. Kook-en estrategiek desbideratu interfazeak egonkorrak eta espazio desberdin bateko jokabideak, ezarpen espezifiko baten aplikazio baten instantzien sorreratik.

Teknologia Soluzio Berritzaileak Software Developement Training-ek Gurgaon-en, Delhi NCR India-n eskaintzen du prestakuntza.

Hooks Design Patterns bezala

Kontutan izan behar da diseinu ugari (guztiak) diseinatzen dituztela zintzilikatzeko semantika. Arazo arazoei buruzko azpi-sistema nola exekutatzen diren azaltzen dute. Batzuk desbideratzeen garapenaren arauaren araberakoak dira: Laburpena, Fabrika, Builder, Komandoa, Interpretea, Observer, Prototipoa, Estatua eta Estrategia.

Beste batzuk biak bateratzeko eta partizioaren garapenaren adibideetan: Txantiloi metodoa eta Zubia.

Semantika normalean kakoaren teknika izenarekin komunikatzen da (adibidez, komandan, estrategia deitzen zaio exekutatu ()).

Mahai gaineko metodo birtuala

Software garapena - Zer da Hook - Point 1 Teknika berriek estrategia estatikoetatik ihes egin dezakete, baina teknika birtualak aldatu egin daitezkeenez, konpilatzaileak ez du ezagutzen zure kodean deitzen duzuneko gaitasun birtual jakin baten helbidea. Konpilatzaileak, beraz, metodo birtualeko taula bat muntatzen du (VMT), eta denbora errealean kontsultatzeko gaitasuna ematen du. Estrategia birtual bakarra aktibatzen da VMT bidez. Galderen VMT-k bere aitzindarientzako estrategia birtual guztiak ditu, eta, gainera, aldarrikatzen ditu. Horregatik, teknika birtualek elementu estrategiak baino memoria gehiago erabiltzen dute, exekutatzen ari diren arren.

VMT-k interfaze gaitasunetarako memoria-helbideak dituzten erakusleak dituen taula bat denez gero, zer egin behar den kontuan hartu behar da legezko memoria-lanaren helbide zuzena duen lehen memoria-helbidea. Ildo horri jarraiki, deitutako teknika gainidatziko da, eta gaitasunaren jokaera berriko portaera exekutatuko da.

APIari atxikitzea

Software garapena - Zein da Hook - Point 2 Hooking API prozedura benetan lan sistemaren elementuak berrasi ditzakezu. Kargak kapturatzeko gaitasuna duenez, parametroak alda ditzakezu hasieran burututako jarduera aldatuz.

Ikusgarria da, esate baterako, erregistro espezifikoa baliogabetzea, aplikazio bat martxan jartzea eta bezeroaren baieztapena eskatzea artxibo bat zirkulua zaintzeko, eta abar.

Izan ere, erabakiaren ebazpenik handiena segurtasun eskualdean dago, adibidez, antivirus eta antispyware. Izan daitekeen moduan, gure garapen arruntaren zirkunstantziak badira, Hooking API, irtenbide nagusia izan daiteke.

Programazio interfazea Zehaztuz, gure inguruabar zehatzetan, API bat OSetik edo DLL batetik lortzen dela esan nahi du eta beste nonbait exekuzio tipikoa aldatzea dakar berekin, zehazkiago beste gaitasun batekin. Bi ikuspegi nagusiak daude:

EAT eta IAT: EXE / DLL guztiek APIa dute taulak inportatzeko eta tarifa egiteko. Mahai horiek API sarrera puntua erakusten duten erakusleak dituzte. Erakusle horiek aldatuz, deialdia adierazteko, kako bat dugu. Dena den, EXE / DLL honek ez badu API inportatzen, estrategia honek ez du funtzionatuko;

Zuzeneko kodea gainidazteaz gain, API kodearen hasiera aldera deitzen dugun dei bat gehitzeko asmoa bazen ere, "lotu" egin genezake, gure ahalmena API izeneko edozein puntutan exekutatzeko. Ahal izanez gero, arazo bat dago: gure kodea ondoren kudeatu ondoren, lehen APIa deitu behar genuen, deialdia berriro erori eta pila-uholde bat sortuko genuke. Arazo bat konpondu egiten da APIa deitzeko gaitasuna edukitzeko, berriro exekutatzen denean probatzen. Izan ere, zentralaren erdian, gutxi API deiak egin eta ez litzateke deuseztapen exekutatuko;

Inline Hook gaitasunaren jarraibide nagusiak lortzen ditugu, eta salto egiteko, bultzatzeko edo dei egiteko gaitasuna lantzen dugu.

Irakurritako agindua: Windows sistema eragilea azpimarratzen du APIa estaltzeko. Jakin behar dugu nola funtzionatzen duen Windows API funtzioak?

Okertzea

Software garapena - Zein da Hook - Puntua 3A kako teknikak interfaze egonkorrak deskonektatzea eta zenbait tokitatik sortzen duen espazio mota baten jokabidea desbideratzeko aukera ematen du. Objektuak erabilitako manipulatzaileek urratsak aldatzen dituzte. Egunaren amaieran, noiz gertatzen den gertatzen den kasuetan, aurrez prestatutako objektuak prestatzen dituzten jardueretan exekutatzen diren aurrez matrikulatutako objektuen kako estrategiak konbentzitzen ditu. Alditako kasuak: leihoen mezuak, korrespondentzia-portuen bidez ateratzen diren sortak.

IAT Hooking-en barruan

Software garapena - Zer da Hook - Point 4Each prozesua Windows izeneko mahai bat da Inportazio Helbideen Taula (IAT), prozedura bakoitzaren DLLen bidez emandako gaitasunei erakusleak gordetzen baititu. Taula hau DLL-eko elementuen helbidean pixkanaka populatuta dago exekuzio-denboran.

Gaitasun partikularrak erabiliz, IAT mahaia idazteko gai izan gara, ezinbestekoa baita norberaren helbidea pertsonalizatzeko gaitasun pertsonalizatu baten helbidea aldatzea, irakurritako taula berriro izendatzea, aldaketak egin ondoren. Prozesuak gaitasuna deitzen saiatzen den unean, IAT taulan jasotzen da helbidea eta erakuslea itzuli da. IAT mahaia aldatu den bezala, gaitasun pertsonalizatua lehen edukiera sortu da eta prozeduran sartu den kodea lortzen da.

Netfilter Hook

Software garapena - Zer da Hook - Point 5Netfilter Linux pieza azpisistema 2.4 baino nabarmentzen da. Sorta banantzeaz arduratzen da, NAT, suebakia, birbideratzea, besteak beste. Netfilter oso luzagarria da eta dokumentazioa amaitu da. Kookel kodean Hooks erabiltzeko aukera uzten du, taldearen arabera oso malgua eta, oro har, jasotako erabilera eginez. Hookek emaitza ulergarri batzuk utzi eta zenbait alditan abiarazle gisa bete dezakete.

Ondorioa:

Software garapena - Zer da Hook - Ondorioa Programazio prozedurak ikustea eraginkorra da eta softwarearen ingeniarientzako emaitza ulergarrien esparrua irekitzen du. Alabaina, alertak erabili beharko lirateke, prozeduren korrontean izugarrizko garrantzia ematen dutelako eta lehen aldatzea OSaren, aplikazioen edo bestelako software segmentuen portaera, softwarearen arrazoiak ulertu ahal izateko. Bestalde, artikulu honetan aurrez zehaztutakoaren arabera, sistema horiek paradigmarik gabe erabiltzea aplikazioen exekuzioa debekatu dezake.

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