Шта је ињекција кода у оперативном систему Виндовс?
Ињекција кода је уобичајена за Виндовс. Апликације „убризгавају“ делове сопственог кода у други текући процес да би модификовале његово понашање. Ова техника се може користити за добро или зло, али у сваком случају може изазвати проблеме.
Ињекција кода се такође обично назива ДЛЛ ињекција јер је ињектовани код често у облику датотеке ДЛЛ (динамиц линк либрари). Међутим, апликације могу да убаце и друге типове кода који нису ДЛЛ-ови у процес.
За шта се користи ињекција кода
Ињекција кода се користи за постизање свих врста трикова и функционалности на Виндовсу. Док га користе легитимни програми, користи га и злонамерни софтвер. На пример:
- Антивирусни програми често убацују код у веб претраживаче. Они га могу користити за надгледање мрежног саобраћаја и блокирање, на пример, опасног веб садржаја.
- Злонамерни програми могу да додају код у ваш веб прегледач да би боље пратили ваше претраживање, украли заштићене информације као што су лозинке и бројеви кредитних картица и променили поставке прегледача.
- Стардоцк-ов ВиндовБлиндс, који тематизира вашу радну површину, убризгава код за измјену нацрта прозора.
- Стардоцк'с Фенцес убацује код да би променио начин рада Виндовс радне површине.
- АутоХоткеи, који вам омогућава да креирате скрипте и доделите им вруће тастере на нивоу система, убризгава код да би то постигао.
- Графички управљачки програми попут НВИДИА ињектирају ДЛЛ-ове за извршавање разних задатака везаних за графику.
- Неки програми убацују ДЛЛ-ове да би додали додатне опције менија апликацији.
- Алати за варање рачуналних игара често убацују код у игре како би модификовали њихово понашање и добили неправедну предност у односу на друге играче.
Да ли је кодирање лоше??
Ова техника се стално користи у широком спектру апликација на Виндовс-у. То је једини прави начин за остваривање разних задатака. У поређењу са модерном мобилном платформом као што је Апплеов иОС или Гооглеов Андроид, Виндовс радна површина је толико моћна, јер ако нуди ову врсту флексибилности програмерима.
Наравно, уз сву ту силу долази нека опасност. Ињекција кода може изазвати проблеме и грешке у апликацијама. Гоогле каже да ће корисници Виндовса који имају ињекцију кода у свој Цхроме прегледач имати 15% већу вероватноћу да ће доживјети падове Цхроме-а, због чега Гоогле ради на томе да то блокира. Мицрософт напомиње да убризгавање кода може да се користи од стране злонамерних апликација да се манипулише подешавањима претраживача, што је један од разлога због којих је већ блокиран у Едге-у.
Мицрософт чак обезбеђује упутства за проверу да ли се ДЛЛ-ови трећих страна учитавају у Мицрософт Оутлооку, јер они изазивају толико падова у програму Оутлоок.
Као што је Мицрософт запосленик ставио на блог програмера од 2004. године:
ДЛЛ ињекција никада није безбедна. Говорите о избацивању кода у процес који никада није дизајниран, изграђен или тестиран од стране аутора процеса, и кооптирање или креирање нити за покретање тог кода. Ризик сте стварања времена, синхронизације или проблема са ресурсима који нису постојали прије или су погоршали проблеме који су постојали.
Другим речима, ињекција кода је нека врста прљавог хака. У идеалном свету, постојао би сигурнији начин да се то постигне, што није изазвало потенцијалну нестабилност. Међутим, ињекција кода је само нормалан део платформе Виндовс апликација данас. Стално се дешава у позадини вашег Виндовс ПЦ-ја. Можете то назвати нужним злом.
Како проверити убризгане ДЛЛ-ове
Можете да проверите убризгавање кода на свом систему помоћу Мицрософтове моћне апликације Процесс Екплорер. То је у основи напредна верзија Таск Манагер-а са додатним функцијама.
Преузмите и покрените Процесс Екплорер ако желите да то урадите. Кликните на Виев> Ловер Пане Виев> ДЛЛс или притисните Цтрл + Д.
Изаберите процес у горњем окну и погледајте у доњем окну да бисте видели ДЛЛ-ове који су учитани. Ступац „Назив компаније“ пружа користан начин филтрирања ове листе.
На пример, нормално је да овде видите разне ДЛЛ-ове направљене од "Мицрософт Цорпоратион", пошто су оне део Виндовса. Такође је нормално видети ДЛЛ-ове које је направила иста компанија као што је процес у питању - "Гоогле Инц." у случају Цхроме-а на слици испод.
Овде такође можемо уочити неколико ДЛЛ-ова направљених од стране "АВАСТ Софтваре". Ово указује да Аваст антималваре софтвер на нашем систему убацује код као што је “Аваст Сцрипт Блоцкинг филтер либрари” у Цхроме.
Нема много тога што можете да урадите ако пронађете ињекцију кода на вашем систему, осим да деинсталирате програмски ињектујући код да бисте спречили да изазове проблеме. На пример, ако се Цхроме редовно руши, можда ћете желети да видите да ли у Цхромеу постоје програми који убацују код и да их деинсталирате да бисте спречили њихово мешање у Цхромеове процесе.
Како ради ињектирање кода?
Ињекција кода не мења основну апликацију на вашем диску. Уместо тога, он чека да се апликација покрене и убаци додатни код у тај покренут процес да би променио како функционише.
Виндовс обухвата мноштво интерфејса за програмирање апликација (АПИ) који се могу користити за убацивање кода. Процес се може придружити циљном процесу, додијелити меморију, написати ДЛЛ или други код у ту меморију, а затим упутити циљни процес на извршавање кода. Виндовс не спречава да се процеси на рачунару међусобно ометају на овај начин.
За више техничких информација, прочитајте овај пост у блогу објашњавајући како програмери могу да убризгавају ДЛЛ-ове, а овај поглед на друге типове ињекције кода на Виндовс-у.
У неким случајевима, неко може да промени основни код на диску - на пример, заменом ДЛЛ датотеке која долази са ПЦ игром са модификованом како би омогућила варање или пиратерију. Ово технички није "ињекција кода". Код се не убризгава у текући процес, већ се програм преваром учитава другачији ДЛЛ са истим именом..
Имаге Цредит: Лукатме / Схуттерстоцк.цом.