Блог

9 Вт 2017

Разработка на софтуер: Какво е кука?

/
Публикувано от

Разработка на софтуер: Какво е кука?

Трябва да знаем за няколко вида кука.

Какво е кука?В разработката на софтуер, Hooking е идея, която позволява промяна на провеждането на програма. Кодът на възможността ви предлага да промените първото поведение на нещо, без да променяте кода си на сравняващия клас. Това е завършено чрез презаписване на стратегиите за кука.

Този вид използване е изключително полезно за добавянето на нови функционалности към приложенията, като допълнително се насърчава съответствието между алтернативните процедури и съобщенията на системата. Куките са склонни да намаляват изпълнението на системата, като разширяват подготвителното натоварване, което системата трябва да изпълни за всяко съобщение. Тя трябва да се въведе само когато е необходимо и евакуирана при първа възможност.

Представете си, че използвате външна система за управление на клиенти (CMS) и може да искате супер изпълнителен директор да бъде предупреждаван по електронната поща всеки път, когато е раздадена друга публикация и че това поведение не е по подразбиране на устройството. Ще има няколко маршрута напред:

Промяна на CMS изходния код не е умна мисъл, в крайна сметка в следващото опресняване на устройството ще се изправи срещу трудността от загуба на вашата промяна или не са в състояние да продължи всичко освежени;

  • Направете свой собствен конкретен CMS е друга ужасна мисъл, всички неща, считани, нямате достатъчно енергия или достатъчно средства, за да направят нови неща или дори да поддържат това, което да произвеждат;
  • Проучете вероятността да използвате кука, т.е. проверете дали CMS изглежда във външни модули или модули за елементите на предлаганото име, които да бъдат изпълнени при желаната минута, за тази ситуация разпределението на нови публикации.
  • Частта от земята на използващите куки варира от устройство до инструмент. Принципното благоприятно положение на куките не е да променят първия код. Във всички страхотни наръчници на всички устройства с отворен код, които имат периодични актуализации, мантрата, която се презарежда, не променя центъра. Независимо от това, че освежавате невъобразимо, всяко лице, което идва по-късно да поддържа, няма да мисли за промяната, а човекът, който едва го обсъжда, е вие, а не апаратурата.

Разширяемостта е друга предпочитана гледна точка за използване на стратегии за кука, които позволяват на приложението да увеличи стабилните си интерфейси. Стратегиите за кука разединяват стабилни интерфейси и провеждане на разнообразно пространство, което може да излезе от създаването на приложение за конкретна настройка.

Иновативни технологични решения предлага обучение за софтуерно развитие в Гургаон, Делхи NCR в Индия.

Куки като дизайнерски модели

Интересно е да се отбележи, че многобройните (всички) очертания на дизайна илюстрират семантиката на куките. Те говорят как да изпълняват подсистеми на проблемни области. Някои от тях зависят от правилото за развитие на откъсване: резюме, фабрика, строител, командване, преводач, наблюдател, прототип, държава и стратегия.

Други в двата примера за обединяване и развитие на дялове: Метод на шаблона и мост.

Семантиката обикновено се съобщава в името на името на куката (например в командата стратегията се нарича execute ()).

 

Таблица на виртуалния метод

Разработка на софтуер - Какво е Хук - Точка 1Виртуалните техники се въвеждат в неразличим маршрут от статичните стратегии, но тъй като виртуалните техники могат да бъдат променени, компилаторът не знае адреса на конкретен виртуален капацитет, когато го наричате във вашия код. Компилаторът така съставя таблица с виртуални методи (VMT), която дава възможност за запитване до адресите на капацитета по време на изпълнение. Всяка отделна виртуална стратегия се активира по време на изпълнение чрез VMT. Въпросът за VMT съдържа всички виртуални стратегии за своите предшественици, а също така и тези, които прокламира. Следователно, виртуалните техники използват повече памет, отколкото стратегии за елементите, независимо от факта, че те работят по-бързо.

Тъй като VMT е таблица, съдържаща указатели с адреси на паметта за капацитета на интерфейса, това, което трябва да се направи, е да се замени първият адрес на паметта с адрес на законна работа с куки. В този ред, наречената техника ще бъде презаписана и ще бъде изпълнено новото желано поведение на капацитета.

 

Свързващ API

Разработка на софтуер - Какво представлява кука - точка 2The Hooking API процедурата наистина ви позволява да преоткриете елементите на работната система. С възможността да запишете такива такси, можете да промените параметрите им, като промените първоначално извършената дейност.

Възможно е, например, да се отстрани анулирането на конкретен запис, да се поддържа заявлението и да се изиска потвърждение от страна на клиента, за да се запази архив в кръга и т.н.

Всъщност, най-голямото намаляване на решението е в областта на сигурността, например антивирусните и антиспайуер продукти. Независимо от това, съществуват обстоятелства в нашето обикновено развитие, където може да бъде основният изход на приложния програмен интерфейс.

Интерфейс за програмиране В нашето специфично обстоятелство прикачването на приложния програмен интерфейс предполага получаването на приложния програмен интерфейс (API) от операционната система или от който и да е DLL и промяната на типичното му изпълнение до някъде другаде, още по-точно до друг капацитет. Има два принципа:

EAT и IAT: всички EXE / DLL съдържат API за импортиране и таксуване на таблици. Тези таблици съдържат указатели, които показват входната точка на приложния програмен интерфейс (API). Чрез промяната на тези указания, които ги карат да показват нашата обратна връзка, имаме кука. Например, ако този EXE / DLL не импортира API, тази стратегия няма да работи;

Просто презаписване на кода: Както беше казано по-рано, в случай, че е възможно да се добави обаждане към обратната ни връзка към началото на кода на приложния програмен интерфейс (API), можем да го "закачим". Независимо от това, има проблем: ако след обработката на кода ни трябваше да се обадим на първия API, щяхме да се отдръпнем от нашата обратна връзка и щяхме да създадем поток от стекове. Едно споразумение е да се фиксира куката, за да има капацитет да се обади на приложния програмен интерфейс (API), да се опита отново да се опита, след като бъде изпълнена. Независимо от това, на това централно място може да се направят няколко API обаждания и няма да изпълнят нашата обратна връзка;

Inline Hook е точката, в която получаваме основните насоки за капацитета, а ние търгуваме за Jump, Push или Call for our капацитет.

Предписано четене: Windows операционната система допълнително подсилва API за прикачване. Трябва да знаем как функциите на API на Windows се закачват?

 

Приключване на случаите

Софтуерно развитие - Какво е кука - Точка 3As кука техники отделяне на стабилни интерфейси и провеждане на разнообразие пространство, които могат да излязат от instantiation на приложение за определена настройка се случи обръщане на контрол. Обектите понякога ръководителите променят подготвителните стъпки. В края на деня, когато се случи случай, ръководителят реагира със стратегии за кука на предварително записани предмети, които изпълняват определени дейности по подготовка. Случаи на случаи: прозоречни съобщения, пакети за кацане от кореспондентски пристанища.

 

Вътре в IAT Hooking

Разработка на софтуер - Какво представлява процесът на Hook-Point 4Each в Windows има таблица, наречена Import Address Table (IAT), която съхранява указателите на капацитетите, изпратени от DLL-тата на всяка процедура. Тази таблица се попълва постепенно с адреса на елементите на DLL файловете по време на изпълнение.

Използвайки конкретни възможности, можем да направим таблицата IAT подлежаща на писане, като е възможно да промените адреса си с адрес на персонализиран капацитет, преименувайки таблицата като прочетена просто след тази промяна. В момента, в който процедурата се опитва да повика капацитета, адресът й се достига в таблицата с IAT и се връща курсор. Тъй като таблицата с IAT е била променена, персонализираният капацитет се довежда до настройване на първия капацитет и кодираният код в процедурата се получава.

 

Netfilter Hook

Софтуерно развитие - Какво представлява кука - Точка 5Netfilter е част от Linux част, по-забележителна от 2.4. Той отговаря за разделянето на пакета, NAT, защитната стена, пренасочването, между другото. Netfilter е изключително разширяем и документацията му е завършена. Това оставя вероятността да се използват "Куки" в кода на ядрото, което прави използването му изключително гъвкаво и обикновено се получава от групата. Тези куки оставят няколко възможни резултата и могат да се попълнят като задействащи за конкретни случаи.

 

Заключение:

Разработка на софтуер - Какво е кука - заключениеРазработващите процедури за програмиране са ефективни и отварят обхвата на възможните резултати за софтуерните инженери, но това би трябвало да се използва с предупреждение, тъй като те включват по-очевидна сложност в потока от процедури и променят първите поведение на операционната система, приложения или други софтуерни сегменти, което затруднява разбирането на обосновката на софтуера. Освен това, както е посочено по-горе в тази статия, използването на тези системи без парадигма може да подкопае изпълнението на заявленията.

Оставете коментар

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