Apa itu Injeksi Kode pada Windows?
Injeksi kode umum di Windows. Aplikasi “menyuntikkan” potongan kode mereka sendiri ke dalam proses yang sedang berjalan untuk mengubah perilakunya. Teknik ini dapat digunakan untuk kebaikan atau kejahatan, tetapi apa pun itu dapat menyebabkan masalah.
Injeksi kode juga biasa disebut injeksi DLL karena kode yang disuntikkan seringkali dalam bentuk file DLL (dynamic link library). Namun, aplikasi juga bisa menyuntikkan jenis kode lain yang bukan DLL ke dalam suatu proses.
Untuk Apa Kode Injeksi Digunakan
Injeksi kode digunakan untuk menyelesaikan segala macam trik dan fungsionalitas pada Windows. Sementara program yang sah menggunakannya, itu juga digunakan oleh malware. Sebagai contoh:
- Program antivirus sering menyuntikkan kode ke browser web. Mereka dapat menggunakannya untuk memantau lalu lintas jaringan dan memblokir konten web berbahaya, misalnya.
- Program jahat dapat menambahkan kode ke peramban web Anda untuk melacak penelusuran Anda dengan lebih baik, mencuri informasi yang dilindungi seperti kata sandi dan nomor kartu kredit, dan mengubah pengaturan peramban Anda.
- Stardock's WindowBlinds, yang tema desktop Anda, menyuntikkan kode untuk mengubah cara windows ditarik.
- Pagar Stardock menyuntikkan kode untuk mengubah cara kerja desktop Windows.
- AutoHotkey, yang memungkinkan Anda membuat skrip dan menetapkan hotkey seluruh sistem, menyuntikkan kode untuk melakukan ini.
- Driver grafis seperti NVIDIA menyuntikkan DLL untuk menyelesaikan berbagai tugas terkait grafis.
- Beberapa program menyuntikkan DLL untuk menambahkan opsi menu tambahan ke aplikasi.
- Alat curang permainan PC sering menyuntikkan kode ke dalam game untuk mengubah perilaku mereka dan mendapatkan keuntungan yang tidak adil atas pemain lain.
Apakah Injeksi Kode Buruk?
Teknik ini digunakan terus-menerus oleh berbagai macam aplikasi pada Windows. Ini satu-satunya cara nyata untuk menyelesaikan berbagai tugas. Dibandingkan dengan platform seluler modern seperti Apple iOS atau Google Android, desktop Windows sangat kuat karena jika menawarkan fleksibilitas semacam ini kepada pengembang.
Tentu saja, dengan semua kekuatan itu ada beberapa bahaya. Injeksi kode dapat menyebabkan masalah dan bug dalam aplikasi. Google mengatakan bahwa pengguna Windows yang memiliki kode yang disuntikkan ke browser Chrome mereka 15% lebih mungkin mengalami crash Chrome, itulah sebabnya Google berupaya memblokir ini. Microsoft mencatat bahwa injeksi kode dapat digunakan oleh aplikasi jahat untuk merusak pengaturan browser, yang merupakan salah satu alasan itu sudah diblokir di Edge.
Microsoft bahkan memberikan instruksi untuk memeriksa apakah DLL pihak ketiga dimuat di Microsoft Outlook, karena menyebabkan banyak crash di Outlook.
Sebagai karyawan Microsoft, masukkan ke blog pengembang sejak 2004:
Injeksi DLL tidak pernah aman. Anda berbicara tentang menyemprotkan kode ke dalam proses yang tidak pernah dirancang, dibuat, atau diuji oleh penulis proses, dan mengkooptasi atau membuat utas untuk menjalankan kode itu. Anda berisiko membuat waktu, sinkronisasi, atau masalah sumber daya yang tidak ada sebelumnya atau memperparah masalah yang ada di sana.
Dengan kata lain, injeksi kode adalah jenis peretasan yang kotor. Di dunia yang ideal, akan ada cara yang lebih aman untuk mencapai hal ini yang tidak menyebabkan ketidakstabilan potensial. Namun, injeksi kode hanyalah bagian normal dari platform aplikasi Windows saat ini. Itu terus-menerus terjadi di latar belakang pada PC Windows Anda. Anda mungkin menyebutnya kejahatan yang perlu.
Cara Memeriksa DLL Suntikan
Anda dapat memeriksa injeksi kode pada sistem Anda dengan aplikasi Process Explorer Microsoft yang kuat. Ini pada dasarnya versi lanjutan dari Task Manager yang dilengkapi dengan fitur tambahan.
Unduh dan jalankan Process Explorer jika Anda ingin melakukan ini. Klik Tampilan> Tampilan Panel Bawah> DLL atau tekan Ctrl + D.
Pilih proses di panel atas dan lihat di panel bawah untuk melihat DLL yang dimuat. Kolom "Nama Perusahaan" menyediakan cara yang berguna untuk memfilter daftar ini.
Sebagai contoh, itu normal untuk melihat berbagai DLL yang dibuat oleh "Microsoft Corporation" di sini, karena mereka adalah bagian dari Windows. Juga normal untuk melihat DLL yang dibuat oleh perusahaan yang sama dengan proses yang dimaksud - "Google Inc." dalam kasus Chrome pada tangkapan layar di bawah ini.
Kami juga dapat melihat beberapa DLL yang dibuat oleh "Perangkat Lunak AVAST" di sini. Ini menunjukkan bahwa perangkat lunak antimalware Avast di sistem kami menyuntikkan kode seperti "pustaka filter Pemblokiran Avast Script" ke Chrome.
Tidak banyak yang dapat Anda lakukan jika Anda menemukan kode injeksi pada sistem Anda-selain dari menghapus program kode injeksi untuk mencegahnya menyebabkan masalah. Misalnya, jika Chrome mogok secara berkala, Anda mungkin ingin melihat apakah ada program yang menyuntikkan kode ke Chrome dan mencopotnya untuk mencegahnya merusak proses Chrome..
Bagaimana Cara Kerja Injeksi Kode?
Injeksi kode tidak mengubah aplikasi yang mendasarinya pada disk Anda. Sebaliknya, ia menunggu aplikasi itu untuk menjalankan dan menyuntikkan kode tambahan ke dalam proses yang berjalan untuk mengubah cara kerjanya.
Windows mencakup berbagai antarmuka pemrograman aplikasi (API) yang dapat digunakan untuk injeksi kode. Suatu proses dapat melampirkan dirinya ke proses target, mengalokasikan memori, menulis DLL atau kode lain ke memori itu, dan kemudian menginstruksikan proses target untuk mengeksekusi kode. Windows tidak mencegah proses di komputer Anda mengganggu satu sama lain seperti ini.
Untuk informasi teknis lebih lanjut, lihat posting blog ini menjelaskan bagaimana pengembang dapat menyuntikkan DLL dan ini melihat jenis injeksi kode lain pada Windows.
Dalam beberapa kasus, seseorang mungkin mengubah kode yang mendasarinya pada disk-misalnya, dengan mengganti file DLL yang datang dengan game PC dengan yang dimodifikasi untuk mengaktifkan kecurangan atau pembajakan. Secara teknis ini bukan "injeksi kode." Kode tidak disuntikkan ke dalam proses yang sedang berjalan, tetapi program ini malah diperdaya untuk memuat DLL yang berbeda dengan nama yang sama.
Kredit Gambar: Lukatme / Shutterstock.com.