بررسی شیوهی نگهداری اطلاعات پروسهها در کرنل ویندوز
از دید کرنل ویندوز، هر پروسه دارای یک شی از ساختار EPROCESS بوده و اطلاعات پروسهها در یک لیست پیوندی حلقوی دو طرفه نگهداری میشود. متغیر سراسری PsActiveProcessHead اشارهگری به اولین و آخرین پروسه داشته «به خاطر دوطرفه بودن لیست پیوندی دارای دو اشارهگر Flink/Blink میباشد» و به کمک آن میتوان لیست را پیمایش کرد.
برای ایجاد لیست پیوندی، هر شی EPROCESS به کمک آیتمی به اسم ActiveProcessLinks که آن هم دو بخش Flink/Blink دارد پروسهها را به یکدیگر متصل کرده و به Offsetای از ساختار EPROCESS که مربوط به ActiveProcessLinks میباشد اشاره میکند. در این روند Flink به Offset پروسهی بعدی و Blink به Offset پروسهی قبلی اشاره میکند.
در این ویدئوی کوتاه که بخشی از کلاسهایم است به کمک WinDbg این لیست بررسی شده و اطلاعات پروسهها از آن استخراج میشود.
لینک ویدئو در یوتیوب:
https://youtu.be/zLxAtROZJWo
لینک ویدئو در آپارات:
https://aparat.com/v/iq3Xy
#ShortWinInternals #windows #internals #EPROCESS #WinDbg #ActiveProcessLinks
Post #114
4.28K