Mi a kódbefecskendezés a Windows rendszeren?
A kódolás a Windows rendszerben gyakori. Alkalmazásaik „saját” kódjuk darabjait egy másik futó folyamatba futtatják a viselkedésének módosításához. Ezt a technikát lehet használni jó vagy gonosz, de mindkettő problémákat okozhat.
A kódbefecskendezést általában DLL-injekciónak is nevezik, mivel az injektált kód gyakran DLL (dinamikus linkkönyvtár) fájl formájában van. Az alkalmazások azonban más típusú kódokat is injektálhatnak, amelyek nem egy DLL-t tartalmaznak egy folyamatba.
Milyen kód-befecskendezést használnak
A kód befecskendezéssel mindenféle trükköt és funkcionalitást érhet el a Windows rendszeren. Bár a törvényes programok használják, azt a rosszindulatú programok is használják. Például:
- A víruskereső programok gyakran kódolnak webböngészőkbe. Használhatják például a hálózati forgalom megfigyelésére és a veszélyes webtartalom blokkolására.
- A rosszindulatú programok kódot adhatnak hozzá a böngészőhöz, hogy jobban nyomon kövesse a böngészést, ellopja a védett információkat, például a jelszavakat és a hitelkártyaszámokat, és módosítsa a böngésző beállításait.
- A Stardock WindowBlinds-je, amely az asztalt ábrázolja, kódot ad be az ablakok rajzolásának módosításához.
- A Stardock kerítései kódot adnak be, hogy megváltoztassák a Windows asztalának működését.
- Az AutoHotkey, amely lehetővé teszi szkriptek létrehozását és rendszerszintű gyorsbillentyűk hozzárendelését, ezt a kódot adja meg.
- A grafikus illesztőprogram olyan, mint az NVIDIA a DLL-eket, hogy különféle grafikus feladatokat hajtson végre.
- Egyes programok a DLL-eket további menüpontok hozzáadásához használják.
- A PC-s játék csalóeszközök gyakran kódolnak játékba, hogy módosítsák a viselkedésüket, és méltánytalan előnyt szerezzenek a többi játékossal szemben.
A kód befecskendezése rossz?
Ezt a technikát folyamatosan használja a Windows számos alkalmazásának. Ez az egyetlen igazi mód a különböző feladatok elvégzésére. Egy modern mobil platformhoz képest, mint az Apple iOS vagy a Google Android, a Windows asztal olyan erős, mert ha ilyen rugalmasságot kínál a fejlesztőknek.
Természetesen minden hatalommal veszélybe kerül. A kódbevitel problémákat és hibákat okozhat az alkalmazásokban. A Google azt mondja, hogy a Chrome-böngészőbe befecskendezett Windows-felhasználók 15% -kal nagyobb valószínűséggel tapasztalják meg a Chrome-összeomlásokat, ezért a Google ennek ellenére dolgozik. A Microsoft megjegyzi, hogy a rosszindulatú alkalmazások a kódbefecskendezést használhatják a böngészőbeállítások módosítására, ami az egyik oka annak, hogy az Edge már letiltott..
A Microsoft még útmutatást is nyújt annak ellenőrzésére, hogy a harmadik féltől származó DLL-ek betöltődnek-e a Microsoft Outlook programba, mivel olyan sok Outlook összeomlást okoz.
Mivel a Microsoft alkalmazottja egy 2004-es fejlesztői blogba helyezte:
A DLL injekció soha nem biztonságos. Beszélsz a kódolásról a folyamatra, amelyet soha nem terveztek, nem építettek vagy teszteltek a folyamat szerzője, és nem választott, vagy létrehozott egy szálat a kód futtatásához. Fennáll annak a kockázata, hogy időzítést, szinkronizálást vagy erőforrás-problémákat hoz létre, amelyek nem voltak ott, vagy ott súlyosbították azokat a problémákat, amelyek ott voltak.
Más szóval, a kód injekció egy piszkos hack. Egy ideális világban biztonságosabb módja lenne ennek elérésére, ami nem okozhat esetleges instabilitást. A kódbevitel azonban csak egy normális része a Windows alkalmazásplatformnak. Folyamatosan a háttérben fut a Windows PC-n. Lehet, hogy ez egy szükséges gonosz.
Hogyan kell ellenőrizni az injektált DLL-eket
A Microsoft erőteljes Process Explorer alkalmazásával ellenőrizheti, hogy a rendszeren van-e injekció kód. Ez alapvetően a Feladatkezelő fejlett változata, amely további funkciókat tartalmaz.
Töltse le és futtassa a Process Explorer programot, ha ezt szeretné. Kattintson a Nézet> Alsó panel nézet> DLL-ekre, vagy nyomja meg a Ctrl + D billentyű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 „Vállalat neve” oszlop hasznos listát ad a lista szűréséhez.
Például, normális, ha itt a „Microsoft Corporation” által készített különböző DLL-eket látják, mivel azok a Windows részei. Az is normális, hogy ugyanaz a cég DLL-t készít, mint a szóban forgó folyamat - „Google Inc.” a Chrome esetében az alábbi képernyőn..
Itt találhatunk néhány DLL-t is, amelyeket az „AVAST Software” készített. Ez azt jelzi, hogy a rendszerünkben található Avast antimalware szoftver olyan kódot injektál, mint a "Avast Script Blocking filter library" a Chrome-ba.
Nem sok a teendő, ha a rendszeroldali kód befecskendezését a program injekciós kódjának eltávolításával találja meg, hogy megakadályozza a problémák okozását. Ha például a Chrome rendszeresen összeomlik, érdemes lehet látni, hogy vannak-e olyan programok, amelyek kódot futtatnak a Chrome-ba, és eltávolítja azokat, hogy megakadályozzák a Chrome folyamatainak módosítását.
Hogyan működik a Code Injection?
A kódbevitel nem módosítja a lemezen található alkalmazást. Ehelyett arra vár, hogy az alkalmazás fusson, és további kódot fecskendez be a futó folyamatba annak működésének megváltoztatásához.
A Windows számos alkalmazásprogramozási felületet (API-t) tartalmaz, amelyek a kódbevitelhez használhatók. A folyamat egy célfolyamathoz kapcsolható, memóriát rendelhet, DLL-t vagy más kódot írhat 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 futó folyamatok ily módon zavarják egymást.
További technikai információkért olvassa el ezt a blogbejegyzést, amelyben elmagyarázza, hogy a fejlesztők hogyan tudnak befecskendezni a DLL-eket, és nézd meg más típusú kód injekciókat a Windows rendszeren.
Bizonyos esetekben valaki megváltoztathatja az alapul szolgáló kódot a lemezen - például egy olyan DLL-fájl cseréjével, amely egy módosított számítógépes játékkal érkezik a csalás vagy a kalózkodás érdekében. Ez technikailag nem „kódbefecskendezés”. A kódot nem futtatják egy futó folyamatba, hanem a programot egy másik, ugyanolyan nevű DLL betöltésekor becsapják.
Képhitel: Lukatme / Shutterstock.com.