Blog

9 Mar 2017

Программа иштеп чыгуу: A Hook деген эмне?

/
Posted By

Программа иштеп чыгуу: A Hook деген эмне?

Биз аз түрлөрүн Hook жөнүндө эмнелерди билүү керек.

бир Hook деген эмне?программалык камсыздоону иштеп чыгуу, сайуу программанын жүрүм-турумун өзгөртүүгө уруксаттар жөнүндө идея болуп саналат. мүмкүнчүлүгү коду салыштырып класстын кодду өзгөртпөстөн нерсе биринчи жүрүм-турумун өзгөртүү сунуштайт. Бул кайырмак стратегиясын .шагыл аяктады.

пайдалануу, мындай уятсыз, кошумча системасын кошумча жол-жоболорду жана билдирүүлөрдүн ортосундагы шайкештикке үндөп, тиркемелерге жаңы functionalities кошуу үчүн өтө пайдалуу болуп саналат. Илгичтери системасы ар бир билдирүү үчүн аткаруу керек экенин даярдоо жүгүн жайылтуу аркылуу кыскартуу системасы аткарууга түртөт. Бул зарыл болгон жана алгачкы мүмкүнчүлүктө көчүрүү кийин гана киргизилиши керек.

Сиз бөлүп бир Кардар башкаруу системасын (CMS) пайдалануу деп ойлогула жана дагы таратылып берилген сайын электрондук почта аркылуу эскертме үчүн супер аткаруу жана бул жүрүм-турум түзмөктүн демейки эмес экенин келет. жубайлар жолдору күтүп болмок:

CMS булак коду сергип баарын улантуу үчүн кийин аппарат төмөнкү сүйрөө менен сиз өзгөртүү же жок кылуу жөндөмy бар жоготуп кыйын каршы турган, акылдуу ой эмес, өзгөртүү;

  • Make өз өзгөчө CMS дагы бир жаман ой, деп баары, силер ойлоп эмне чейин жаңы нерселерди жасап, атүгүл үчүн жетиштүү энергияны же мүлктү жок;
  • башкача айтканда, кайырмак пайдалануу ыктымалдыгын изилдөө, CMS бир сунуш аты элементтерине тышкары модулдарын же модулдар ичинде карап сурады мүнөттө аткарылууга тийиш, бул жагдай боюнча, жаңы билдирүүлөр бөлүштүрүү текшеребиз.
  • пайдалануу илгичтер жер бөлүгүнө чейин инструменттерге аппараттан жалпысынан турат. илгичтер принцип жагымдуу орду биринчи кодун өзгөртүү үчүн эмес. Бардык ачык булак түзмөктөрдүн улуу практика окуу жылы үзгүлтүктүү өзгөрүүлөр бар өзү rehashes Мантра борборун өзгөрбөйт. сергитет ойго алуу карабастан, ар кандай жеке кийин сакталышын эмне келет аппарат эмес, эптеп, Сен аны талкууланат өзгөрүшүнө жана адам жөнүндө ойлонуп калат.

тонусун артыруу жана анын туруктуу Interfaces өстүрүү үчүн арыз уруксат кайырмак стратегияларын пайдалануу дагы бир артыкчылыктуу көз караш болуп саналат. Hook стратегиясы туруктуу көрүнүш жана белгилүү бир шартта өтүнмөнүн апай пайда боло турган ар түрдүү мейкиндиктин жүрүм лаазим.

Илим Technology Solutions Программа Developement Гургаон шаарында окутуу, Дели Индияда NCR сунуш кылат.

Дизайн Patterns катары илгичтери

Бул көп (бардык) схема үлгүлөрү илгичтери үчүн SEMANTICS үлгү белгилей кетүү кызыктуу болот. Алар көйгөйлүү участкалар боюнча суб-системаларын ишке ашыруу үчүн кандай сүйлөйм. Кээ бир отряды өнүктүрүү бийлигине көз каранды: абстракттуу, Factory, куруучу, буйрук, Interpreter, көз салып, хомудалы, мамлекетти жана стратегиясы.

бириктирүү жана өнүктүрүү бөлүгү эки мисал менен башкалары: Template Метод жана Bridge.

Семантика, адатта, кайырмак техникасы аты билдирилген (мисалы, командачылыктын, стратегияны ишке ашыруу () деп аталган).

Virtual Метод стол сайуу

Программа иштеп чыгуу - бир Hook деген эмне - Пойнт 1Virtual ыкмалары статикалык стратегиясынан тартып, бир десек жол менен алып, ал эми жасалма ыкмалары өзгөртүлүшү мүмкүн, анткени, компилятор сиз кодду, аны чакырып, атайын жасалма кубаттуулугу дарегин билбейт. Түзүүчү, ошентип, Runtime дараметти даректери менен кайрылууга жол берген Virtual ыкмасы Мазмуну (VMT) жасайт. Ар бир жасалма стратегиясы ичичнен менен иштөө учурунда жандандырылган болушат. суроонун VMT анын прекурсорлорду бардык жасалма стратегияларды камтыйт, ошондой эле кошумча да аны ашкерелейт. Демек, жасалма ыкмалары элемент стратегиялары көбүрөөк эс пайдаланууга, алар тездетүүнү чуркап карабастан.

VMT Interface кубаттуулуктарды эс даректери нерсе камтылган үстөл болгондуктан, эмне кылуу керек мыйзамдуу кайырмак иштин дареги биринчи эс дарегин сүрүп турат. Бул багытта аталган ыкма жокко чыгарылат жана дараметин жаңы көксөгөн жүрүм-өлүм жазасына тартылсын.

сайуу API

Программа иштеп чыгуу - бир Hook деген эмне - Пойнт 2The сайуу API тартиби, чынында эле, иш системасынын элементтерин кайрадан сени жол. мындай айыптоолорду басып жөндөмү менен, сиз башында жасаган болмок ишин өзгөртүп, алардын параметрлерин өзгөртө аласыз.

Ал, мисалы, ойлогонго да, белгилүү бир жазылган жокко талдап иштеп келген арыз сактап, айлананын, өстүрүп үчүн Archive аягандыктан кардар сүйүнүү талап кылууга.

Чынында эле, мисалы, AntiVirus жана анти үчүн чечим улуу кесип, коопсуздук аймакта болуп саналат. Сайуу API, негизги жолу болуп калышы мүмкүн Кандай болбосун, биздин карапайым өнүктүрүүгө жагдайлар бар эле деп.

Иштеме сайуу, биздин өзгөчө учурларда, OS, же кандайдыр бир DLL тартып, башка бир жерде, анын мүнөздүү аткарууну өзгөртүп, дагы так, башка кубаттуулугу бир API алуу дегенди билдирет. түп-тамырынан бери эки жолу бар:

Жеп, IAT: бардык EXE / DLL импорттоого жана акыйкат үстөл үчүн API камтыйт. Бул үстөл API кирүү чекити көрсөткөн нерсе бар. Аларды биздин Чалуу көрсөтүп берип, бул нерсе өзгөрүп, биз кайырмак бар. Бул EXE / DLL API импортко эмес болсо, анда ал, мүмкүн болушу, бул стратегия иштебей калат;

Жөнөкөй Code эскилердин: карата алдын ала бул биздин кубаттуулугу API деп кандай ой чуркап даярдоо, API кодексинин башталышына карата чалуу үчүн чакыруу, биз: "Аны илгичи" мүмкүн толукталсын алмашылып болгон учурда, мындай деди:. бул бир маселе бар болсо да биздин коду катышкан кийин, биз биринчи API чакыруу үчүн зарыл болсо, биз кайра чалуу кайра түшүп турган, ал эми бир чөмөлө сел жаратылган болушу керек. Бир чара деп жөндөмсүз деп илмек чечүү болуп саналат API, кайра аракет кылып, ал ишке ашырылып жаткан бир жолу. Болушу керек, бул борбор жерге алкагында бир нече API чалуулар жана биздин Чалуу аткарууга эмес, мүмкүн мүмкүн;

Inline Hook биз кубаттуулугу негизги багыттарын ала турган материал болуп саналат жана биз Өтүү, түртүү, же мүмкүнчүлүгү үчүн чакыруу алмаштырбайм.

Белгиленген оку: Windows иштөө системасы кошумча сайуу API тиреп турат. Биз Windows API сайуу милдеттерин кантип билиш керек?

окуя сайуу

Программа иштеп чыгуу - бир Hook деген эмне - Пойнт 3As кайырмак ыкмалары ар кандай мейкиндик туруктуу Interfaces жана өткөрүүдө лаазим бир жагдайда өтүнмөнүн апай чыгышы мүмкүн контролдоо жетишсиздиги болот. жолу колдонгондор кадамдарды даярдап өзгөртүү объектилер. күнү-жылдын акырына карата бир окуя болгондо, иштеткичи ишин даярдоого өзгөчө учур аткарууга алдын ала окуп жаткан объекттерди, туткасы стратегиясын сыйкырдуу жооп берет. жолу учурлары: терезе билдирүүлөрдү, кат-кабар алышуусуна портторуна конгон көчүрөт.

Inside IAT чабуу

Программа иштеп чыгуу - бир Hook деген эмне - Windows-жылы Пойнт 4Each баруулар, ар кандай жол-жоболордун DLLs тарабынан жиберилген арттырууга нерсе сакталчу стол деп Import дарек Мазмуну (IAT) бар. Бул стол Нускасы учурда DLLs элементтерин дареги менен акырындык менен толтурулат.

өзгөчө мүмкүнчүлүктөрүн колдонуп, биз IAT стол жазылбайт, салт мүмкүнчүлүктөрүн дареги боюнча, анын дарегин өзгөртүү алмашылып болгондуктан, бул өзгөрүү кийин жөн эле окуп эле кайра-сөз үстөл болот. тартиби дараметин чалууга аракет кылат учурда, анын дареги IAT столдун тапкан, бир көрсөткүчү кайтарылып берилет. IAT стол өзгөртүлүп берилди эле, колдонуучунун кубаттуулугу биринчи дараметин орнотуп алып жана тартиби салып берип жатты коду жыйып жатат.

Netfilter Hook

Программа иштеп чыгуу - бир Hook деген эмне - Пойнт 5Netfilter 2.4 караганда Linux бүтүн системасын дагы белгилей кетүү керек. Ал башкалардын арасында байлам бөлүү, ул, тармактык, кайра багыттоону жооптуу болуп саналат. Netfilter өтө колдонуучу болуп саналат, жана анын документтери аяктады. Бул өзөк кодексине илмек пайдалануу, аны колдонуу өтө ийкемдүү жана жалпысынан топ тарабынан кабыл алуу ыктымалдыгын калтырат. Бул Hooks бир нече алмашылып жыйынтыгын калтырып, айрым учурларда себеп болуп бере алат.

Жыйынтык:

Программа иштеп чыгуу - бир Hook деген эмне - биринчи conclusionThe программалоо чабуу жол-жоболору натыйжалуу жана инженерлер үчүн улам алмашылып, жыйынтыгы бир масштабын ачып, бирок ал даярдык менен пайдалануу керек, анткени жол агымында көрүнүктүү буларды камтыйт жана өзгөртүү кыйын программалык логикалык түшүнүү үчүн кабыл алуу, OS, арыздарды жана башка программалык сегменттеринин жүргүзөт. Бул макалада чейин көрсөтүлгөн деп башка, парадигмасы жок бул системалардын пайдалануу арыздарды аткарылышын зордуктап мүмкүн.

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