Process, Virtual Memory, dan Thread
Process
Process adalah representasi dari suatu program yang berjalan di memori sekaligus sebuah struktur data yang menyimpan semua informasi terkait program yang sedang dieksekusi. Informasi yang disimpan mencakup:
- Virtual Memory
- DLL yang diimpor
- File yang digunakan
- Socket yang dibuka
- Daftar thread yang dijalankan pada proses tersebut
- Process ID (PID)
- dan lain-lain
Virtual Memory
Salah satu perbedaan utama antara Windows modern dengan pendahulunya (seperti MS-DOS) adalah konsep virtual memory . Setiap proses memiliki virtual memory-nya sendiri yang digunakan untuk menyimpan library, stack, dan heap. Dengan adanya virtual memory ini, Windows memungkinkan eksekusi banyak proses secara paralel tanpa terjadi bentrokan antar proses.
Virtual memory dalam sistem operasi modern dipetakan ke physical memory melalui mekanisme memory mapping , yang memungkinkan setiap proses memiliki ruang alamat virtualnya sendiri tanpa langsung berinteraksi dengan alamat fisik di RAM. Tidak semua halaman dalam virtual memory harus berada di physical memory secara bersamaan, karena sistem operasi dapat menyimpan halaman yang tidak aktif ke disk dalam bentuk paging atau swap file .
Setiap halaman virtual yang dipetakan ke physical memory diberikan izin akses tertentu, seperti:
- READ → hanya bisa dibaca
- READWRITE → bisa dibaca dan ditulis
- READEXECUTE → bisa dibaca dan dieksekusi
- READWRITEEXECUTE → bisa dibaca, ditulis, dan dieksekusi
Sistem operasi menggunakan izin ini untuk memastikan keamanan dan mencegah eksploitasi, misalnya dengan membatasi eksekusi kode di area memori yang seharusnya hanya digunakan untuk penyimpanan data.
Dalam Windows, executable file ( PE file ) memiliki segmen memori dengan izin berbeda, seperti:
- .text → hanya bisa dibaca dan dieksekusi
- .data → bisa dibaca dan ditulis tetapi tidak dieksekusi
Dengan sistem ini, virtual memory memberikan efisiensi dalam manajemen memori, memungkinkan banyak proses berjalan secara bersamaan, serta meningkatkan keamanan dibandingkan sistem lama seperti MS-DOS yang tidak menggunakan virtual memory.
Thread
Thread adalah unit eksekusi dalam sebuah proses. Setiap proses minimal memiliki satu main thread , tetapi bisa memiliki banyak thread tambahan yang berjalan secara bersamaan ( multithreading ). Selain itu, thread juga menyimpan status eksekusi seperti register, stack, dan error.
Windows memberikan setiap thread waktu eksekusi tertentu. Setelah waktu eksekusi berakhir, thread akan menyimpan snapshot berupa register, stack, instruction pointer, dll., agar bisa dilanjutkan kembali oleh thread lain.
Satu proses dapat memiliki lebih dari satu thread, dan semua thread dalam satu proses akan berbagi resource yang sama, seperti:
- Virtual memory
- File
- Socket
- DLL
- dan lainnya
Dengan konsep ini, Windows memungkinkan program untuk menjalankan banyak tugas secara bersamaan dalam satu proses, meningkatkan efisiensi dan performa sistem.
TIB, TEB, dan PEB
Struktur data seperti TIB (Thread Information Block), TEB (Thread Environment Block), dan PEB (Process Environment Block) adalah bagian dari memori proses yang menyimpan informasi penting tentang proses dan thread yang sedang berjalan. Struktur ini memungkinkan program untuk mengakses informasi terkait proses dan thread dengan mudah, seperti nama file eksekusi, DLL yang diimpor, dan detail lainnya.
- TIB (Thread Information Block) → Menyimpan informasi dasar terkait thread, termasuk daftar fungsi untuk menangani error dan beberapa data penting untuk eksekusi thread.
- TEB (Thread Environment Block) → Struktur yang lebih lengkap tentang thread, mencakup Thread ID , pointer ke PEB , dan informasi lainnya. (TIB merupakan bagian dari TEB).
- PEB (Process Environment Block) → Menyimpan informasi lengkap tentang proses yang berjalan dalam sebuah thread, seperti nama proses , Process ID (PID) , daftar DLL , dan data terkait lainnya.
Process Hacker
Process Hacker (process informer) adalah sebuah tool open-source seperi Task manager tetapi lebih advanced dan menampilkan informasi yang jauh lebih lengkap dari task manager bawaan windows seperti:
- Detail Proses yang Lebih Dalam – Menampilkan semua proses yang berjalan, termasuk hidden processes dan malware yang mungkin disembunyikan.
- Informasi Thread & Handles – Bisa melihat Thread ID , status thread, serta Handles seperti file, registry, atau objek lainnya yang dipakai oleh proses tertentu.
- DLL & Memory Mapping – Bisa melihat DLL yang di-load oleh suatu proses dan alamat memori di mana proses tersebut dieksekusi. Ini berguna untuk reverse engineering dan malware analysis .
- Monitoring I/O & Network – Bisa melihat aktivitas disk I/O, registry access, dan network connections dari tiap proses.
Process Hacker sudah built-in di FlareVM, tapi kalau mau install bisa download di https://systeminformer.sourceforge.io/downloads
