Trang chủ » làm thế nào để » Code Injection trên Windows là gì?

    Code Injection trên Windows là gì?

    Mã tiêm là phổ biến trên Windows. Các ứng dụng đã tiêm các đoạn mã của riêng họ vào một quy trình đang chạy khác để sửa đổi hành vi của nó. Kỹ thuật này có thể được sử dụng cho mục đích tốt hoặc xấu, nhưng một trong hai cách có thể gây ra vấn đề.

    Mã tiêm cũng thường được gọi là tiêm DLL vì mã được tiêm thường ở dạng tệp DLL (thư viện liên kết động). Tuy nhiên, các ứng dụng cũng có thể đưa các loại mã khác không phải là DLL vào một quy trình.

    Mã tiêm được sử dụng để làm gì

    Mã tiêm được sử dụng để thực hiện tất cả các loại thủ thuật và chức năng trên Windows. Mặc dù các chương trình hợp pháp sử dụng nó, nó cũng được sử dụng bởi phần mềm độc hại. Ví dụ:

    • Các chương trình chống vi-rút thường tiêm mã vào trình duyệt web. Họ có thể sử dụng nó để giám sát lưu lượng mạng và chặn nội dung web nguy hiểm, ví dụ như.
    • Các chương trình độc hại có thể thêm mã vào trình duyệt web của bạn để theo dõi trình duyệt của bạn tốt hơn, đánh cắp thông tin được bảo vệ như mật khẩu và số thẻ tín dụng và thay đổi cài đặt trình duyệt của bạn.
    • Stardock's WindowBlinds, chủ đề máy tính để bàn của bạn, tiêm mã để sửa đổi cách các cửa sổ được vẽ.
    • Stardock's Fences tiêm mã để thay đổi cách thức hoạt động của máy tính để bàn Windows.
    • AutoHotkey, cho phép bạn tạo tập lệnh và gán các phím nóng trên toàn hệ thống cho họ, tiêm mã để thực hiện việc này.
    • Trình điều khiển đồ họa giống như các tệp DLL của NVIDIA để thực hiện nhiều tác vụ liên quan đến đồ họa.
    • Một số chương trình tiêm DLL để thêm tùy chọn menu bổ sung vào ứng dụng.
    • Các công cụ gian lận trò chơi trên PC thường tiêm mã vào các trò chơi để sửa đổi hành vi của họ và giành lợi thế không công bằng so với những người chơi khác.

    Mã tiêm có tệ không?

    Kỹ thuật này được sử dụng liên tục bởi rất nhiều ứng dụng trên Windows. Đó là cách thực sự duy nhất để hoàn thành một loạt các nhiệm vụ. So với một nền tảng di động hiện đại như iOS của Apple hay Android của Android, máy tính để bàn Windows rất mạnh bởi vì nếu cung cấp loại linh hoạt này cho các nhà phát triển.

    Tất nhiên, với tất cả sức mạnh đó có một số nguy hiểm. Mã tiêm có thể gây ra vấn đề và lỗi trong các ứng dụng. Google nói rằng người dùng Windows đã nhập mã vào trình duyệt Chrome của họ có khả năng gặp sự cố Chrome cao hơn 15%, đó là lý do tại sao Google đang nỗ lực ngăn chặn điều này. Microsoft lưu ý rằng việc tiêm mã có thể được sử dụng bởi các ứng dụng độc hại để giả mạo cài đặt trình duyệt, đó là một lý do khiến nó bị chặn trong Edge.

    Microsoft thậm chí còn cung cấp hướng dẫn để kiểm tra xem DLL của bên thứ ba có được tải trong Microsoft Outlook hay không, vì chúng gây ra rất nhiều sự cố Outlook.

    Là một nhân viên của Microsoft đưa nó vào blog của nhà phát triển từ năm 2004:

    DLL tiêm không bao giờ an toàn. Bạn đang nói về việc squirting code thành một quy trình không bao giờ được thiết kế, xây dựng hoặc kiểm tra bởi tác giả của quy trình và đồng chọn hoặc tạo một luồng để chạy mã đó. Bạn có nguy cơ tạo ra các vấn đề về thời gian, đồng bộ hóa hoặc tài nguyên không có ở đó trước hoặc làm trầm trọng thêm các vấn đề đã có.

    Nói cách khác, tiêm mã là một loại hack bẩn. Trong một thế giới lý tưởng, sẽ có một cách an toàn hơn để thực hiện điều này mà không gây ra sự bất ổn tiềm tàng. Tuy nhiên, tiêm mã chỉ là một phần bình thường của nền tảng ứng dụng Windows hiện nay. Nó liên tục xảy ra trong nền trên PC Windows của bạn. Bạn có thể gọi nó là một điều ác cần thiết.

    Cách kiểm tra DLL được tiêm

    Bạn có thể kiểm tra việc tiêm mã trên hệ thống của mình bằng ứng dụng Process Explorer mạnh mẽ của Microsoft. Về cơ bản, đây là phiên bản nâng cao của Trình quản lý tác vụ được tích hợp các tính năng bổ sung.

    Tải xuống và chạy Process Explorer nếu bạn muốn làm điều này. Nhấp vào Xem> Chế độ xem dưới> DLL hoặc nhấn Ctrl + D.

    Chọn một quá trình trong khung trên cùng và nhìn vào khung bên dưới để xem các DLL được tải. Cột Tên công ty cung cấp một cột hữu ích để lọc danh sách này.

    Ví dụ, thật bình thường khi thấy một loạt các DLL được tạo bởi Tập đoàn Microsoft Microsoft tại đây, vì chúng là một phần của Windows. Cũng rất bình thường khi thấy các DLL được tạo bởi cùng một công ty như quy trình trong câu hỏi - Google Google Inc., trong trường hợp Chrome trong ảnh chụp màn hình bên dưới.

    Chúng ta cũng có thể phát hiện ra một vài DLL được tạo bởi Phần mềm AVAST Phần mềm tại đây. Điều này cho thấy phần mềm chống phần mềm độc hại Avast trên hệ thống của chúng tôi đang tiêm mã như thư viện bộ lọc Chặn tập lệnh Avast Script vào Chrome.

    Bạn không thể làm gì nhiều nếu bạn tìm thấy mã tiêm trên hệ thống của mình - ngoài việc gỡ cài đặt mã tiêm chương trình để ngăn không cho nó gây ra sự cố. Ví dụ: nếu Chrome gặp sự cố thường xuyên, bạn có thể muốn xem liệu có chương trình nào tiêm mã vào Chrome hay không và gỡ cài đặt chúng để ngăn chúng giả mạo các quy trình của Chrome.

    Mã tiêm hoạt động như thế nào?

    Mã tiêm không sửa đổi ứng dụng cơ bản trên đĩa của bạn. Thay vào đó, nó chờ ứng dụng đó chạy và nó sẽ thêm mã vào quy trình đang chạy đó để thay đổi cách thức hoạt động của nó.

    Windows bao gồm nhiều giao diện lập trình ứng dụng (API) có thể được sử dụng để tiêm mã. Một tiến trình có thể tự gắn vào một tiến trình đích, phân bổ bộ nhớ, viết một DLL hoặc mã khác vào bộ nhớ đó và sau đó hướng dẫn quy trình đích thực thi mã. Windows không ngăn các tiến trình trên máy tính của bạn can thiệp lẫn nhau như thế này.

    Để biết thêm thông tin kỹ thuật, hãy xem bài đăng trên blog này giải thích cách các nhà phát triển có thể tiêm DLL và xem xét các loại tiêm mã khác trên Windows.

    Trong một số trường hợp, ai đó có thể thay đổi mã cơ bản trên đĩa - ví dụ: bằng cách thay thế tệp DLL đi kèm với trò chơi trên PC bằng mã đã được sửa đổi để cho phép gian lận hoặc vi phạm bản quyền. Về mặt kỹ thuật, đây không phải là mã tiêm mã .1. Mã không được đưa vào một quy trình đang chạy, nhưng thay vào đó, chương trình bị lừa để tải một DLL khác có cùng tên.

    Tín dụng hình ảnh: Lukatme / Shutterstock.com.