Օրագիր

9 ապականել 2017

Ծրագրային ապահովման մշակում.

/
հեղինակ,

Ծրագրային ապահովման մշակում.

Մենք պետք է իմանանք Հարվածի մի քանի տեսակների մասին:

Ինչ է կեռը:Ծրագրային ապահովման մշակման մեջ, Hooking- ը գաղափար է, որը թույլ է տալիս փոփոխել ծրագրի կատարումը: Հնարավորության կոդը առաջարկում է փոխել մի բան առաջին վարքագիծը, առանց փոխելու դասի ձեր կոդը: Սա ավարտվել է կարկուտի ռազմավարությունների վերագրանցմամբ:

Այս տեսակի օգտագործումը չափազանց օգտակար է դիմումների նոր գործառույթների ավելացման հաշվին, լրացուցիչ խրախուսելով համակարգի այլընտրանքային ընթացակարգերի եւ հաղորդագրությունների միջեւ նամակագրությունը: Կեռիկները հակված են նվազեցնել համակարգի կատարումը `ընդլայնելով նախապատրաստվող բեռը, որը համակարգը պետք է կատարի յուրաքանչյուր հաղորդագրության համար: Այն պետք է ներկայացվի հենց այն ժամանակ, երբ անհրաժեշտ է եւ տարհանվել է ամենավաղ հնարավորությունից:

Նախատեսեք, որ դուք օգտագործում եք Հաճախորդների կառավարման համակարգ (CMS) օտարերկրացիներից, եւ դուք կարող եք գերծանրքաշային գործադիրին զգուշացնել էլեկտրոնային փոստով, ամեն անգամ, երբ մեկ այլ գրառում է տարածվել, եւ որ այս վարքը սարքի լռելյայն չէ: Կա մի քանի ուղի:

Փոխել CMS- ի կոդը խելացի միտք չէ, այնուամենայնիվ, սարքի հաջորդ թարմացումից հետո դուք կկանգնեք փոփոխության կորստի դժվարությանը կամ չունեք այն ամենը, ինչ թարմացվում է:

  • Կատարեք ձեր սեփական CMS- ը եւս մեկ սարսափելի միտք է, բոլոր բաները համարվում են, դուք չունեք բավարար էներգիա կամ ակտիվներ, որպեսզի նոր բաներ ստեղծեք կամ նույնիսկ պահեք այն, ինչը կեղծիք է:
  • Ուսումնասիրեք կեռ օգտագործելու հավանականությունը, այսինքն, ստուգեք, արդյոք CMS- ն արտաքին մոդուլներ կամ մոդուլներ է դիտում առաջարկվող անունի տարրերի համար, որոնք կատարվելու են ցանկալի րոպեների ընթացքում, այս իրավիճակի համար, նոր գրառումների բաշխումը:
  • Կեռների օգտագործման ցածր մասը բաժին է ընկնում սովորաբար սարքից դեպի գործիք: Կանգանակների նպաստավոր դիրքորոշման սկզբունքը առաջին կոդն է փոխել: Բոլոր հրաշալի պրակտիկային ձեռնարկներում բոլոր բաց կոդային սարքերում, որոնք պարբերաբար թարմացումներ են ունենում, մանտրան, որը վերագրում է իրեն, չի փոխում կենտրոնը: Անկախ այն բանից, թե ինչպես կարելի է թարմացնել թարմացնողը, անհատը, ով հետագայում գալիս է պահելու համար, չի մտածի փոփոխության մասին, եւ այն մարդը, որը հազիվ թե քննարկում է դա ոչ թե սարքը:

Ընդարձակելիությունը եւս մեկ նախընտրելի առարկա է, որ կախված ռազմավարություններից օգտվելը թույլ է տալիս հավելվածին ընդլայնել իր կայուն ինտերֆեյսները: Կտրուկ ռազմավարությունները decouple կայուն ինտերֆեյս եւ իրականացնել մի շարք տարածություն, որը կարող է առաջանալ հայտի ակնարկից որոշակի ընդլայնման համար:

Նորարար տեխնոլոգիական լուծումներ առաջարկում է Software Development Training- ը Հնդկաստանում, Դալիի NCR- ի Գուրգաոն քաղաքում:

Կեռիկներ որպես դիզայնի ձեւեր

Հետաքրքիր է, որ բազմաթիվ (բոլոր) նախանշված գծագրերը ցույց են տալիս, որ կեռների համար իմաստաբանություն է: Նրանք խոսում են խնդրահարույց տարածքների ենթահամակարգերի իրականացման մասին: Ոմանք կախված են ջոկատի զարգացման գերակայությունից `վերացական, գործարան, շինարար, հրամանատար, թարգմանիչ, դիտորդ, նախատիպ, պետություն եւ ռազմավարություն:

Մյուսներն էլ միավորման եւ բաժանման զարգացման երկու օրինակներում. Կաղապար մեթոդ եւ կամուրջ:

Սեմանտիկան սովորաբար փոխանցվում է կապանքների տեխնիկայի անվանումներում (օրինակ, հրամանատարում, ռազմավարությունը կոչվում է կատարում ()):

 

Վիրտուալ մեթոդ սեղանի խոռոչ

Ծրագրային ապահովման մշակում - Որն է Hook - Point 1Virtual տեխնիկան բերված է աննպատակահարմար ճանապարհով ստատիկ ռազմավարություններից, բայց քանի որ վիրտուալ տեխնիկան կարող է փոխվել, կոմպիլյատորը չգիտի կոնկրետ վիրտուալ հզորության հասցեն, երբ այն կոչում եք ձեր կոդը: Կազմողը, այսպիսով, հավաքում է Վիրտուալ մեթոդի աղյուսակ (VMT), որը հնարավորություն է տալիս հարցում անցկացնել ռեսուրսների հզորությունների հասցեների հարցում: Յուրաքանչյուր վիրտուալ ռազմավարությունը ակտիվանում է VMT- ի միջոցով: Հարցի VMT- ն պարունակում է իր նախատրամերների բոլոր վիրտուալ ռազմավարությունները, եւ լրացուցիչները, որոնք հայտարարում են: Հետեւաբար, վիրտուալ տեխնիկան ավելի շատ հիշողություն է օգտագործում, քան տարրերի ռազմավարությունը, չնայած այն բանին, որ նրանք արագ են աշխատում:

Քանի որ VMT- ն այն սեղանն է, որը պարունակում է ինտերֆեյսային հնարավորությունների հիշողության հասցեներ ունեցող ցուցիչները, ինչ պետք է արվի, առաջին հիշատակումն անջատելու համար `լեգիտիմ եղունգների աշխատանքի հասցեով: Այս տողերի առկայության դեպքում կոչված տեխնիկան կվերագրվի, իսկ հնարավորության նոր խոհարարական վարքը կկատարվի:

 

Hooking API- ը

Ծրագրային ապահովման մշակում - Որն է Hook - Point 2 The Hooking API պրոցեդուրան իսկապես թույլ է տալիս վերագրավել աշխատանքային համակարգի տարրերը: Այսպիսի մեղադրանքները գրավելու ունակությամբ դուք կարող եք փոխել իրենց պարամետրերը `փոխելով այն գործունեությունը, որը կատարվել է նախապես:

Պարզ է, օրինակ, կոնկրետ ռեկորդը չեղարկելու, դիմումի պահպանումն ու պահանջում է հաճախորդի հավաստիացում, արխիվի պահում շրջապատին եւ այլն:

Իրոք, որոշման մեծագույն հատվածը գտնվում է անվտանգության շրջանում, օրինակ, հակավիրուսային եւ հակահայկական ծրագրեր: Եղեք այնպես, ինչպես դա կարող է, մեր հանգամանքները կան հանգամանքներում, երբ Hooking API- ը կարող է լինել հիմնական ելքը:

Ծրագրման ինտերֆեյս Կարկտահարություն, մեր կոնկրետ հանգամանքներում, ենթադրում է API ստանալ OS- ից կամ ցանկացած DLL- ից եւ փոխել իր բնորոշ կատարումը որեւէ այլ վայրում, առավել եւս `այլ կերպ: Կան սկզբունքորեն երկու մոտեցում.

EAT եւ IAT: բոլոր EXE / DLL- ն պարունակում է API ներմուծման եւ սակագների աղյուսակ: Այս աղյուսակը պարունակում է ցուցիչներ, որոնք ցույց են տալիս API մուտքի կետը: Փոփոխելով այս ցուցիչները, դրանք ցույց են տալիս մեր զանգը, մենք ունենք խողովակ: Եղեք այնպես, ինչպես դա կարող է, եթե այս EXE / DLL չի ներմուծում API- ը, այս ռազմավարությունը չի աշխատի.

Սխալ օրենսգրքի վերագրանցում. Ինչպես նախօրոք նշեցինք, այն դեպքում, երբ մենք կարող էինք API- ի օրենսգրքի մեկնարկին դիմել մեր զանգին, մենք կարող էինք «կապել» այն, դարձնելով մեր հնարավորությունները API- ի ցանկացած կետում: Եղեք այնպես, ինչպես դա կարող է, կա մի հարց. Եթե մեր օրենսգիրքը վարվելուց հետո մենք պետք է առաջին API- ն զանգահարեինք, մենք կվերադառնանք մեր մերժման, եւ կստեղծվի ջոկատային ջրհեղեղ: Մեկ պայմանավորվածությունն ամրացնում է մատանին, API- ն կոչելու կարողություն ունենալու համար, կրկին փորձելով այն կատարելուց հետո: Եղեք այնպես, ինչպես դա կարող է, այս կենտրոնի հիմքում մի քանի API կոչեր կարող են կատարվել եւ չկատարել մեր զանգը:

Inline Hook- ն այն կետն է, որով մենք ստանում ենք հզորությունների հիմնական ուղեցույցները եւ մենք առեւտուր ենք անում Jump, Push կամ Call for our capacity.

Նախատեսված ընթերցվածը. Windows- ի աշխատանքային համակարգը լրացուցիչ հիմքեր ունի API- ի խցանման մեջ: Պետք է իմանանք, թե ինչպես է Windows API- ի կախոցը գործածելու համար:

 

Հարսանեկան ծաղկում

Ծրագրային ապահովման մշակում - Որն է Hook - Point 3As խելք տեխնիկան decouple կայուն ինտերֆեյս եւ վարքագծի մի շարք տարածք, որը կարող է առաջանալ հայտի ակնարկից որոշակի պայմանների համար, տեղի է ունենում վերահսկողության շրջադարձ: Օբեկտների առօրյա գործավարները փոփոխում են պատրաստման քայլերը: Օրվա վերջում, երբ պատահական դեպք տեղի է ունենում, աշխատողը արձագանքում է նախապատրաստված օբյեկտների վրա խարսխված ռազմավարությունների յուրացմանը, որոնք կատարում են հատուկ միջոցառումների նախապատրաստական ​​աշխատանքներ: Առարկաների դեպքեր. Պատուհանների ուղերձներ, ուղեկցող նավահանգիստներից վայրէջք:

 

Ներսում IAT կեռ

Ծրագրային ապահովման մշակում - Որն է Hook - Point 4 գործընթացը Windows- ում ունի աղյուսակ, որը կոչվում է ներմուծման հասցե աղյուսակ (IAT), որը խանութների ցուցիչները պահում է յուրաքանչյուր ընթացակարգի DLL- ներով ուղարկված հնարավորությունները: Այս աղյուսակը աստիճանաբար բնակեցված է DLL- ների տարրերի հասցեով `գործարկման ժամանակ:

Օգտագործելով որոշակի հնարավորություններ, մենք կարող ենք IAT աղյուսակը գրել, ենթադրելի է փոխել իր հասցեն հասցեով, որպես պատվիրատուի հզորության հասցե, վերանայելով աղյուսակը որպես ընթերցված, հենց այդ փոփոխությունից հետո: Այն դեպքերում, երբ ընթացակարգը փորձում է զանգահարել հզորություն, նրա հասցեն ստացվում է IAT սեղանին, եւ ցուցիչը վերադարձվում է: Քանի որ IAT աղյուսակը փոխվել է, գործնական հնարավորությունը բերվում է առաջին հզորության սահմաններից, եւ ստացվում է ընթացակարգին ներդաշնակեցված կոդը:

 

Netfilter Hook- ն

Ծրագրային ապահովման մշակում - Որն է Hook - Point 5Netfilter- ը Linux հատվածի ենթահամակարգը, որն ավելի ուշագրավ է 2.4- ից: Այն պատասխանատու է կապի բաժանման, NAT, firewall, վերահասցեավորում եւ այլն: Netfilter- ը բացառապես ընդարձակելի է, եւ դրա փաստաթղթերը ավարտված են: Այն թողնում է Կեռների կոդում Կեռների օգտագործման հավանականությունը, դրանով իսկ օգտագործելով չափազանց ճկուն եւ ընդհանուր առմամբ ստացված խումբը: Այս կեռները թողնում են մի քանի ենթադրելի արդյունքներ եւ կարող են լրացնել որպես կոնկրետ առիթների համար առաջադրանքներ:

 

Եզրակացություն.

Ծրագրային ապահովման մշակում - Որն է կեռը - եզրակացությունՀեռախոսային ծրագրավորման ընթացակարգերը արդյունավետ են եւ բացում ծրագրային ինժեներների համար ընկալելի արդյունքների շրջանակը, սակայն այն պետք է օգտագործվի զգոնության զգացումով, քանի որ դրանք ներառում են առավել նշանակալի բարդություններ ընթացակարգերի հոսքում եւ փոխում են առաջին OS- ի, ծրագրերի կամ այլ ծրագրային սեգմենտների անցկացում, ինչը դժվարացնում է ծրագրային ապահովման հիմքերը: Բացի դրանից, ինչպես նշված է նախորդ հոդվածում, այդ համակարգերը առանց պարադիգմների օգտագործումը կարող է հիմարացնել հայտերի կատարումը:

Թողնել Պատասխանել

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