блог

9 сакавік 2017

Распрацоўка праграмнага забеспячэння: Што такое кручок?

Распрацоўка праграмнага забеспячэння: Што такое кручок?

Мы павінны ведаць аб некалькіх тыпах Hook.

Што такое кручок?Пры распрацоўцы праграмнага забеспячэння, Hooking ідэя, якая дазваляе змяненне паводзін праграмы. Код магчымасці прапануе Вам змяніць першае паводзіны чагосьці, не змяняючы код параўнання класа. Гэта аздоблена перазапіс стратэгіі гаплікаў.

Такое выкарыстанне з'яўляецца надзвычай карысным за кошт дадання новых функцыянальных магчымасцяў для прыкладанняў, дадаткова заахвочваць адпаведнасць паміж альтэрнатыўнымі працэдурамі і паведамленнямі сістэмы. Гаплікі маюць тэндэнцыю да выканання сістэмы скарачэння шляху пашырэння якая рыхтуецца нагрузкі, што сістэма павінна выканаць для кожнага паведамленні. Яна павінна быць уведзена толькі ў выпадку неабходнасці і эвакуіравалі пры першай жа магчымасці.

Уявіце сабе, што Вы карыстаецеся сістэму кіравання кліентаў (CMS) з аўтсайдарам, і вы можаце супер выканаўчы быць папярэджаны па электроннай пошце кожны раз, калі яшчэ адзін пост быў распаўсюджаны і што такое паводзіны не па змаўчанні прылады. Там будзе пара маршрутаў наперад:

Зменіце зыходны код CMS не з'яўляецца разумнай думкай, бо ў наступным абнаўленні прылады вы будзеце супрацьстаяць цяжкасцям страціць змены або не маюць магчымасці працягваць усе абноўленае;

  • Зрабіць свой уласны прыватнасці CMS з'яўляецца яшчэ жудасная думка, улічваючы ўсе абставіны, вы не маеце дастатковай энергіі або актываў дастаткова, каб зрабіць нешта новае або нават захаваць да таго, што для вырабу;
  • Даследаваць верагоднасць выкарыстання кручка, гэта значыць, праверыць, калі CMS выглядае знешнія модулі або модулі для элементаў прапанаванага імя, якое будзе выконвацца на прагнуў хвіліну, у гэтай сітуацыі, размеркаванне новых пасад.
  • Прызямлёная частка з выкарыстаннем гаплікаў вагаецца звычайна ад прылады да прыбора. Прынцып спрыяльнае становішча гаплікаў не мяняць першы код. Ва ўсіх вялікіх практычных кіраўніцтвах ўсіх адкрытых прылад крыніц, якія маюць няўстойлівыя абнаўлення мантра, якая Перафразую сябе не мяняе цэнтр. Нягледзячы робячы танізуе неверагодным, любы чалавек, які прыходзіць пазней, каб зрабіць змест не будзе думаць аб змене, і чалавек, які ледзь абмяркоўвае гэта ты, а не апарат.

Пашыральнасць з'яўляецца яшчэ адным пераважнай пунктам гледжання выкарыстання стратэгій крука, якія дазваляюць прыкладанне, каб павялічыць свае стабільныя інтэрфейсы. стратэгіі Гака адвязаць стабільныя інтэрфейсы і паводзіны эстраднага прасторы, якое можа ўзнікнуць з асобніка прыкладання для канкрэтнай ўстаноўкі.

Інавацыйныя тэхналагічныя рашэнні Гэта праграмнае забесьпячэньне Developement Навучанне ў Гургаон, Дэлі NCR ў Індыі.

Гаплікі ў якасці шаблонаў дызайну

Цікава адзначыць, што шматлікія праекты (усе) контурных ілюстраваць семантыку для гаплікаў. Яны кажуць пра тое, як выканаць падсістэмы праблемных абласцей. Некаторыя залежаць ад правіла адслаеннях развіцця: Анатацыя, завод, будаўнік, Command, перакладчык, назіральнік, прататып, дзяржавы і стратэгіі.

Іншыя ў абодвух прыкладах аб'яднання і разбіцця развіцця: Шаблон Метад і мост.

Семантыка звычайна паведамляецца ў назве тэхнікі Крук (напрыклад, у камандаванні, стратэгія называецца выканаць ()).

Віртуальны метад Табліца Hooking

Распрацоўка праграмнага забеспячэння - Што такое Hook - метады Кропкі 1Virtual прыводзяцца ў неадметная маршруце ад статычных стратэгій, але паколькі віртуальныя метады могуць быць зменены, кампілятар не ведае адрас канкрэтнай віртуальнай ёмістасці пры выкліку яго ў кодзе. Кампілятар, такім чынам, збірае віртуальны метад Table (ВМТ), якая дае шлях да дазнанні па адрасах ёмістасці падчас выканання. Кожная віртуальная стратэгія актывізуецца падчас выканання праз ВМТ. VMT пытання змяшчае ўсе віртуальныя стратэгіі сваіх папярэднікаў, і дадаткова тыя абвяшчае. Такім чынам, віртуальныя метады выкарыстоўваюць больш памяці, чым стратэгіі элементаў, нягледзячы на ​​тое, што яны працуюць хутчэй.

Бо VMT табліца, якая ўтрымлівае паказальнікі з адрасамі памяці для магчымасцяў інтэрфейсу, што павінна быць зроблена, каб замяніць першы адрас памяці з адрасам законнага крука працы. Уздоўж гэтых ліній, які выклікаецца метад будзе перапісаны, і новае жаданае паводзіны патэнцыялу будзе выконвацца.

падлучальны API

Распрацоўка праграмнага забеспячэння - Што такое Hook - працэдура API пункту 2The Hooking сапраўды дазваляе вам зноўку элементы рабочай сістэмы. З магчымасцю захопу такіх абвінавачванняў, вы можаце змяніць іх параметры, змяняючы актыўнасць, якая будзе выконвацца на пачатковым этапе.

Можна меркаваць, напрыклад, да часткі адмены канкрэтнай запісу, захаваць запуск прыкладання, і патрабаваць кліент пацверджання пашкадаваць архіў да круга, і гэтак далей.

Сапраўды, найбольшы крой рашэнні ў галіне бяспекі, напрыклад, ад вірусаў і праграм-шпіёнаў. Як бы там ні было, ёсць абставіны, у нашым звычайным развіцці, дзе Hooking API, можа быць як асноўнай выхад.

Праграмаванне інтэрфейс Hooking, у нашым канкрэтным абставінах, прадугледжвае атрыманне API ад аперацыйнай сістэмы, або з любой DLL, і змяніць яго тыповая выкананне дзесьці яшчэ, тым больш дакладна, у іншую ёмістасць. Ёсць прынцыпова два падыходу:

EAT і IAT: увесь EXE / DLL змяшчае API для імпарту і табліцы тарыфаў. Гэтыя табліцы ўтрымліваюць паказальнікі, якія паказваюць API пункту ўваходу. Змяняючы гэтыя паказальнікі, робячы іх паказваюць наш зваротны выклік, у нас ёсць кручок. Як бы там ні было, калі гэта EXE / DLL ня імпартуе API, гэтая стратэгія не будзе працаваць;

Непасрэдны код Перазапіс: Як казаць загадзя, у тым выпадку, калі б гэта было магчыма, каб дадаць выклік нашай функцыі зваротнага выкліку да пачатку кода API, мы маглі б «зачапіць яго», што робіць нашу здольнасць працаваць у любым пункце АНІ называецца. Як бы там ні было, ёсць пытанне: калі пасля таго, як наш код быў апрацаваны, мы павінны назваць першы API, мы б ўпасці назад на наш зваротны выклік, і стэк патоп будзе створаны. Адно размяшчэнне выправіць крук, каб мець ёмістасць для выкліку API, паўторна спрабуе яе, калі яна выконваецца. Як бы там ні было, на фоне гэтага цэнтра зямлі, некалькі выклікаў API можа быць і не будзе выконваць наш зваротны выклік;

Инлайн Hook гэта кропка, у якой мы атрымліваем асноўныя арыенціры магутнасці, і мы гандлюем для скачка, штурхання або выкліку для нашай здольнасці.

Прызначаюць чытання: праца сістэмы Windows, дадаткова падмацоўвае крапежную API. Мы павінны ведаць, як функцыянуе API зачэпліваецца Windows?

выпадак Hooking

Распрацоўка праграмнага забеспячэння - Што такое крук - крук метаду Кропка 3As адвязаць стабільныя інтэрфейсы і паводзіны эстраднага прасторы, якое можа ўзнікнуць з асобніка прыкладання для канкрэтнай ўстаноўкі адбываецца реверсирование кіравання. Аб'екты Нагода апрацоўшчыкі змены падрыхтоўкі крокаў. У канцы дня, калі падзея адбываецца, апрацоўшчык рэагуе чараваць стратэгіі гаплікаў на папярэдне залічаныя аб'ектах, якія выконваюць канкрэтныя выпадак падрыхтоўкі мерапрыемстваў. Выпадкі выпадкаў: акно паведамленняў, пучкі пасадкі з завочных партоў.

Ўнутры IAT перакінуўшы

Распрацоўка праграмнага забеспячэння - Што такое Hook - Кропка 4Each працэсу ў Windows, ёсць табліца пад назвай Import Address Table (IAT), які захоўвае паказальнікі на магутнасці, разасланы бібліятэк DLL кожнай працэдуры. Гэтая табліца запаўняецца паступова з адрасам з элементаў бібліятэкі DLL падчас выканання.

Выкарыстанне пэўных магчымасцяў, мы можам зрабіць табліцу даступнага для запісу IAT, быўшы мажліва, каб змяніць свой адрас, адрас заказны магутнасці, зноў пазначыўшы табліцу для чытання проста пасля гэтага змены. У той момант, калі працэдура спрабуе выклікаць патэнцыял, яго адрас атрымаў у табліцы IAT, і вяртаецца паказальнік. Як відаць з табліцы IAT была змененая, звычай ёмістасць дастаўленага створана першай ёмістасці і код ўліваецца ў працэдуры атрымліваў.

Netfilter кручок

Распрацоўка праграмнага забеспячэння - Што такое Hook - кропка 5Netfilter з'яўляецца часткай падсістэмы Linux больш характэрна, чым 2.4. Ён адказвае расслаенне падзяляе, NAT, брандмаўэр, пераадрасацыя, сярод іншых. Netfilter выключна пашыраецца, і яго дакументацыя скончаная. Гэта пакідае верагоднасць выкарыстання Кручкоў у кодзе ядра, што робіць яго выкарыстанне надзвычай гнуткімі і, як правіла, атрыманай групай. Гэтыя гаплікі пакінуць некалькі мажлівых вынікаў і могуць запоўніць ў якасці трыгераў для канкрэтных выпадкаў.

Выснову:

Распрацоўка праграмнага забеспячэння - Што такое Hook - conclusionThe працэдура падлучэння праграмавання з'яўляецца эфектыўнай і адкрыць сферу магчымых вынікаў для распрацоўшчыкаў праграмнага забеспячэння, аднак яно павінна быць выкарыстана з баявой гатоўнасцю, так як яны ўключаюць у сябе больш прыкметную заблытанасць ў патоку працэдур і змяніць першае правядзенне аперацыйнай сістэмы, прыкладанняў або іншых сегментаў праграмнага забеспячэння, што робіць яго цяжка зразумець абгрунтаванне праграмнага забеспячэння. Акрамя таго, як паказана перад ў гэтым артыкуле, выкарыстанне гэтых сістэм без парадыгмы можа зняважыць выкананне прыкладанняў.

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