Mi a Code Injection a Windows rendszerben?

Tartalomjegyzék:

Mi a Code Injection a Windows rendszerben?
Mi a Code Injection a Windows rendszerben?

Videó: Mi a Code Injection a Windows rendszerben?

Videó: Mi a Code Injection a Windows rendszerben?
Videó: Hide Apps on iPhone - YouTube 2024, November
Anonim
A kód befecskendezése gyakori a Windows rendszerben. Az alkalmazások "befecskendezik" saját kódjuk egy részét egy másik folyamathoz, hogy megváltoztassák a viselkedését. Ez a technika használható a jó vagy a rossz, de mindegy, hogy ez okozhat problémákat.
A kód befecskendezése gyakori a Windows rendszerben. Az alkalmazások "befecskendezik" saját kódjuk egy részét egy másik folyamathoz, hogy megváltoztassák a viselkedését. Ez a technika használható a jó vagy a rossz, de mindegy, hogy ez okozhat problémákat.

A kód injekciót általában DLL-beadásnak is nevezik, mivel az injektált kód gyakran DLL (dynamic link library) fájl formájában található. Az alkalmazások azonban másfajta kódokat is befecskendezhetnek, amelyek nem DLL-ek egy folyamatba.

Mi a kódbevitelt használják

A kódbevitel mindenféle trükköt és funkciót valósít meg a Windows rendszeren. Bár a törvényes programok ezt használják, a rosszindulatú programok is használják. Például:

  • A víruskereső programok gyakran injektálják a kódot a webböngészőkbe. Használhatják például a hálózati forgalom megfigyelésére és a veszélyes webes tartalmak blokkolására.
  • A rosszindulatú programok kódot adhatnak hozzá böngészőjéhez, hogy jobban nyomon követhessék a böngészést, ellopjanak védett adatokat, például jelszavakat és hitelkártyaszámokat, és módosítsák a böngésző beállításait.
  • A Stardock's WindowBlinds, amely az asztal témáit tünteti fel, injektál kódot az ablakok rajzolásának módosítására.
  • A Stardock's Kerítések injektálják a kódot, hogy megváltoztassák a Windows asztal működését.
  • Az AutoHotkey, amely lehetővé teszi szkriptek létrehozását és rendszerszintű gyorsbillentyűket hozzárendel, végrehajtja ezt a kódot.
  • A grafikus illesztőprogramok, mint például az NVIDIA DLL-ek, befecskendezik a különböző grafikai feladatokat.
  • Egyes programok befecskendezik a DLL-ket, hogy további funkciókat adjanak hozzá egy alkalmazáshoz.
  • A PC-s játékcsaló eszközök gyakran injekciózzák a kódot játékba, hogy megváltoztassák viselkedésüket, és tisztességtelen előnyhöz jussanak más játékosok ellen.

A kód-befecskendezés rossz?

Ezt a technikát folyamatosan a Windows számos alkalmazásán használja. Ez az egyetlen igazi módja a különböző feladatok elvégzésének. Összehasonlítva egy modern mobil platformmal, mint az Apple iOS vagy a Google Android, a Windows asztal annyira hatalmas, mert ha ezt a fajta rugalmasságot kínálja a fejlesztőknek.

Persze, minden erővel jön valami veszély. A kódbetöltés problémákat és hibákat okozhat az alkalmazásokban. A Google azt állítja, hogy a Chrome böngészőjébe beírt kóddal rendelkező Windows felhasználók 15% -kal nagyobb eséllyel tapasztalhatják meg Chrome összeomlását, ezért a Google ezt blokkolja. A Microsoft megjegyzi, hogy a rosszindulatú alkalmazások a kód befecskendezését használhatják a böngészőbeállítások módosításához, ami az egyik oka annak, hogy az már blokkolt az Edge-ben.

A Microsoft még útmutatást ad annak ellenőrzésére is, hogy harmadik féltől származó DLL-eket betöltött-e a Microsoft Outlook programba, mert ilyen sok Outlook összeomlást okoznak.

A Microsoft alkalmazottai 2004-ben fejlesztői blogként tüntették fel:

DLL injection is never safe. You’re talking about squirting code into a process that was never designed, built, or tested by the process’s author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren’t there before or exacerbating issues that were there.

Más szóval, a kód injekció piszkos hack. Ideális világban biztonságosabb módon lehetne elérni ezt, ami nem okozott potenciális instabilitást. Azonban a kód befecskendezése csak egy normális része a Windows alkalmazásplatformnak. Ez folyamatosan történik a háttérben a Windows PC-n. Ezt szükségszerű gonosznak nevezheted.

Az injektált DLL-ek ellenőrzése

A Microsoft hatékony Process Explorer alkalmazásával ellenőrizheti a rendszeren történő kódbeillesztést. Alapvetően a Task Manager fejlett verziója tele van kiegészítő funkciókkal.

Töltse le és futtassa a Process Explorer programot, ha ezt szeretné tenni. Kattintson a Nézet> Alsó sávnézet> DLL elemekre, vagy nyomja meg a Ctrl + D billentyűkombinációt.

Válasszon ki egy folyamatot a felső ablaktáblában, és nézze meg az alsó ablaktáblában a betöltött DLL-eket. A "Cégnév" oszlop hasznos módon szűrheti ezt a listát.
Válasszon ki egy folyamatot a felső ablaktáblában, és nézze meg az alsó ablaktáblában a betöltött DLL-eket. A "Cégnév" oszlop hasznos módon szűrheti ezt a listát.

Például, normális, ha a "Microsoft Corporation" által készített különböző DLL-eket látja itt, mivel ezek a Windows részei. Ugyancsak normális, ha a kérdéses folyamatban ugyanazt a vállalatot készítette el, mint a "Google Inc.", a Chrome esetében az alábbi képernyőképen.

Az "AVAST Software" által készített néhány DLL-t is itt találhatjuk. Ez azt jelzi, hogy a rendszerünkben található Avast antimalware szoftvere az "Avast Script blokkoló szűrőkönyvtár" kódját injektálja a Chrome-ba.

Nem sok mindent tehetünk, ha kódot fecskendezünk a rendszeren - a program befecskendező kód eltávolításán kívül, nehogy problémákat okozzunk. Ha például a Chrome rendszeresen összeomlik, érdemes megnézni, vannak-e olyan programok, amelyek kódot futtatnak a Chrome-ba és eltávolítják őket, hogy megakadályozzák őket a Chrome folyamatainak manipulálásával.
Nem sok mindent tehetünk, ha kódot fecskendezünk a rendszeren - a program befecskendező kód eltávolításán kívül, nehogy problémákat okozzunk. Ha például a Chrome rendszeresen összeomlik, érdemes megnézni, vannak-e olyan programok, amelyek kódot futtatnak a Chrome-ba és eltávolítják őket, hogy megakadályozzák őket a Chrome folyamatainak manipulálásával.

Hogyan működik a kódbevitel?

A kódbevitel nem módosítja a lemezen található alapul szolgáló alkalmazást. Ehelyett arra vár, hogy az alkalmazás fusson, és injektál további kódot a futási folyamatba annak megváltoztatásához, hogyan működik.

A Windows számos alkalmazási programozási interfészt (API-t) tartalmaz, amelyeket a kód injektálásához használhat. A folyamat magába foglalhatja a célfolyamatot, eloszthatja a memóriát, írhat DLL-t vagy más kódot a memóriába, majd utasíthatja a célfolyamatot a kód végrehajtására. A Windows nem akadályozza meg, hogy a számítógépen zajló folyamatok ne befolyásolják egymást.

További technikai információkért nézze meg ezt a blogbejegyzést, amely megmagyarázza, hogy a fejlesztők milyen módon tudják beadni a DLL-eket, és ez a másfajta kód-befecskendezés Windows rendszeren történő megvizsgálása.

Bizonyos esetekben valaki megváltoztathatja a lemezen található alapul szolgáló kódot - például egy olyan PC-játékhoz mellékelt DLL fájl cseréjével, amelynek módosítása lehetővé teszi a csalást vagy a kalózkodást.Ez technikailag nem "kód befecskendezés". A kódot nem futtatja be egy futó folyamatba, hanem a programot úgy becsapják, hogy egy másik azonos nevű DLL-et töltenek be.

Ajánlott: