Główna » jak » Co to jest wtrysk kodu w systemie Windows?

    Co to jest wtrysk kodu w systemie Windows?

    Wstrzykiwanie kodu jest powszechne w systemie Windows. Aplikacje "wstrzykują" fragmenty własnego kodu do innego działającego procesu, aby zmodyfikować jego zachowanie. Technika ta może być użyta dla dobra lub zła, ale tak czy inaczej może powodować problemy.

    Wstrzyknięcie kodu jest również powszechnie nazywane wstrzykiwaniem DLL, ponieważ wstrzyknięty kod jest często w postaci pliku biblioteki DLL (biblioteki dynamicznej). Jednak aplikacje mogą również wprowadzać do procesu inne typy kodu, które nie są bibliotekami DLL.

    W jaki sposób stosuje się wtrysk kodu dla

    Wstrzykiwanie kodu służy do wykonywania różnych sztuczek i funkcji w systemie Windows. Podczas gdy legalne programy używają go, jest on również wykorzystywany przez złośliwe oprogramowanie. Na przykład:

    • Programy antywirusowe często wprowadzają kod do przeglądarek internetowych. Mogą go używać do monitorowania ruchu sieciowego i blokowania na przykład niebezpiecznych treści internetowych.
    • Złośliwe programy mogą dodawać kod do przeglądarki internetowej, aby lepiej śledzić przeglądanie, wykradać zabezpieczone informacje, takie jak hasła i numery kart kredytowych, oraz zmieniać ustawienia przeglądarki.
    • Stardock WindowBlinds, który motywuje twój pulpit, wstrzykuje kod, aby zmodyfikować sposób rysowania okien.
    • Stardock's Fences wstrzykuje kod, aby zmienić sposób działania pulpitu Windows.
    • AutoHotkey, który pozwala tworzyć skrypty i przypisać do nich systemowe skróty klawiszowe, wstrzykuje kod, aby to osiągnąć.
    • Sterowniki graficzne są podobne do bibliotek DLL NVIDII, aby wykonywać różnorodne zadania związane z grafiką.
    • Niektóre programy wprowadzają biblioteki DLL, aby dodać dodatkowe opcje menu do aplikacji.
    • Narzędzia do oszukiwania w grach komputerowych często wprowadzają kod do gier, aby zmodyfikować ich zachowanie i uzyskać nieuczciwą przewagę nad innymi graczami.

    Czy wtrysk kodu jest zły?

    Ta technika jest stale używana przez wiele różnych aplikacji w systemie Windows. To jedyny prawdziwy sposób na wykonanie różnorodnych zadań. W porównaniu z nowoczesną platformą mobilną, taką jak Apple iOS czy Google Android, pulpit Windows jest tak potężny, ponieważ jeśli oferuje taką elastyczność programistom.

    Oczywiście przy całej tej sile pojawia się pewne niebezpieczeństwo. Wstrzykiwanie kodu może powodować problemy i błędy w aplikacjach. Google twierdzi, że użytkownicy systemu Windows, którzy mają kod wstrzyknięty do przeglądarki Chrome, są o 15% bardziej narażeni na awarie Chrome, dlatego Google pracuje nad tym blokowaniem. Microsoft zauważa, że ​​złośliwe aplikacje mogły wykorzystać wtrysk kodu do manipulowania ustawieniami przeglądarki, co jest jednym z powodów, dla których jest już zablokowany w Edge.

    Firma Microsoft udostępnia nawet instrukcje sprawdzania, czy pliki DLL firm trzecich są ładowane do programu Microsoft Outlook, ponieważ powodują tak wiele awarii programu Outlook.

    Jako pracownik Microsoft umieścił go na blogu programisty od 2004 roku:

    Wtryskiwanie DLL nigdy nie jest bezpieczne. Mówisz o wciągnięciu kodu do procesu, który nigdy nie był zaprojektowany, zbudowany ani przetestowany przez autora procesu i nie został użyty ani nie utworzył wątku do uruchomienia tego kodu. Występuje ryzyko związane z synchronizacją lub problemami z zasobami, których wcześniej nie było lub zaostrzało problemy, które tam występowały.

    Innymi słowy, wstrzyknięcie kodu jest rodzajem brudnego hacka. W idealnym świecie istnieje bezpieczniejszy sposób osiągnięcia tego, który nie spowodowałby potencjalnej niestabilności. Jednak wstrzyknięcie kodu jest dziś normalną częścią platformy aplikacji Windows. To ciągle dzieje się w tle na twoim komputerze z Windows. Możesz nazwać to złem koniecznym.

    Jak sprawdzić wstrzykiwane biblioteki DLL

    Możesz sprawdzić wstrzykiwanie kodu w swoim systemie dzięki zaawansowanej aplikacji Process Explorer firmy Microsoft. Jest to w zasadzie zaawansowana wersja Menedżera zadań z dodatkowymi funkcjami.

    Pobierz i uruchom Process Explorer, jeśli chcesz to zrobić. Kliknij kolejno Widok> Lower Pane View> DLL lub naciśnij Ctrl + D.

    Wybierz proces w górnym okienku i spójrz na dolny panel, aby zobaczyć załadowane biblioteki DLL. Kolumna "Nazwa firmy" zapewnia przydatny sposób filtrowania tej listy.

    Na przykład normalne jest wyświetlanie wielu bibliotek DLL utworzonych przez "Microsoft Corporation" tutaj, ponieważ są one częścią systemu Windows. Normalne jest również wyświetlanie plików DLL utworzonych przez tę samą firmę, co omawiany proces - "Google Inc." w przypadku Chrome na zrzucie ekranu poniżej.

    Możemy również znaleźć kilka bibliotek DLL utworzonych przez "Oprogramowanie AVAST" tutaj. Oznacza to, że oprogramowanie Avast do ochrony antymalware w naszym systemie wstrzykuje kod, taki jak "biblioteka filtrowania blokującego skrypt Avast Script" w Chrome.

    Niewiele możesz zrobić, jeśli znajdziesz wtrysk kodu w swoim systemie - oprócz odinstalowania kodu wstrzykiwania programu, aby zapobiec powodowaniu problemów. Jeśli na przykład Chrome regularnie się zawiesza, możesz sprawdzić, czy w Chrome są jakieś programy wstrzykujące kod i odinstalować je, aby zapobiec manipulowaniu procesami Chrome.

    Jak działa iniekcja kodu?

    Wstrzyknięcie kodu nie modyfikuje podstawowej aplikacji na dysku. Zamiast tego oczekuje na uruchomienie tej aplikacji i wprowadza dodatkowy kod do uruchomionego procesu, aby zmienić jego działanie.

    System Windows zawiera wiele interfejsów programowania aplikacji (API), które można wykorzystać do wprowadzania kodu. Proces może dołączyć się do procesu docelowego, przydzielić pamięć, napisać bibliotekę DLL lub inny kod do tej pamięci, a następnie nakazać procesowi docelowemu wykonanie kodu. System Windows nie zapobiega takiemu zakłócaniu procesów na komputerze.

    Aby uzyskać więcej informacji technicznych, sprawdź ten wpis na blogu, wyjaśniając, w jaki sposób programiści mogą wstrzykiwać biblioteki DLL, a także zobacz, jak inne rodzaje wstrzykiwania kodu działają w systemie Windows.

    W niektórych przypadkach ktoś może zmienić kod źródłowy na dysku - na przykład, zastępując plik DLL dołączony do gry na komputerze zmodyfikowanym, aby umożliwić oszustwo lub piractwo. To technicznie nie jest "wstrzyknięcie kodu". Kod nie jest wstrzykiwany do działającego procesu, ale program jest zamiast tego oszukiwany w ładowaniu innej biblioteki DLL o tej samej nazwie.

    Image Credit: Lukatme / Shutterstock.com.