- 8 Nis 2020
- 218
- 72
CR4, Control Register 4'ün kısaltmasıdır ve x86 işlemci mimarisinde kullanılan özel bir kayıttır. Bu kayıt, işlemcinin çalışma şeklini etkileyen çeşitli kontrol bitlerini içerir.
CR4 kaydının bazı önemli bitleri şunlardır:
Windows kernel, CR4 kaydını çeşitli amaçlarla kullanır. Örneğin, SMEP ve SMAP mekanizmalarını etkinleştirmek için CR4 kaydını kullanır. Ayrıca, PCE ve PSE mekanizmalarını etkinleştirmek için de CR4 kaydını kullanır.
Ek Bilgiler:
1. Supervisor Mode Execution Prevention (SMEP):
1. AC (Access Control) Bayrağı:
CR4 kaydının bazı önemli bitleri şunlardır:
- Bit 20 (SMEP): Supervisor Mode Execution Prevention (SMEP) mekanizmasını etkinleştirir.
- Bit 21 (SMAP): Supervisor Mode Access Prevention (SMAP) mekanizmasını etkinleştirir.
- Bit 4 (PCE): Page Cache Extension (PCE) mekanizmasını etkinleştirir.
- Bit 5 (PSE): Page Size Extension (PSE) mekanizmasını etkinleştirir.
- Bit 10 (VME): Virtual Machine Extensions (VME) mekanizmasını etkinleştirir.
Windows kernel, CR4 kaydını çeşitli amaçlarla kullanır. Örneğin, SMEP ve SMAP mekanizmalarını etkinleştirmek için CR4 kaydını kullanır. Ayrıca, PCE ve PSE mekanizmalarını etkinleştirmek için de CR4 kaydını kullanır.
Ek Bilgiler:
- CR4 kaydı 32 bitlik bir kayıttır.
- CR4 kaydına erişim, işletim sisteminin izin vermesi gerekir.
- CR4 kaydını yanlış şekilde değiştirmek sistemin kilitlenmesine veya çökmesine neden olabilir.
1. Supervisor Mode Execution Prevention (SMEP):
- Windows 8 ile birlikte tamamen uygulanmıştır.
- Kernel modu kodunun kullanıcı modu kodunu yürütmesini engeller.
- CPU, kullanıcı modu adresindeki bir kodu çalıştırmaya çalışırsa istisna fırlatır.
- CR4 kaydınının 20. biti durumunu gösterir.
- Ret2usr saldırılarını hafifletir.
- Windows 10 1903 sürümünde kısmen uygulanmıştır.
- Kernel modu kodunun kullanıcı modu verilerine erişmesini kısıtlar.
- EFLAGS kaydının AC biti setlenmemişse erişim/yazma engellenir.
- stac ve clac talimatları AC bitini ayarlar ve sıfırlar.
- Sayfa tablosu girişlerindeki "Owner" bayrağı, sayfanın kullanıcı modu mu yoksa kernel modu mu olduğunu belirtir.
- Bu bayrağın değiştirilmesi saldırganların kullanıcı modu verilerine erişmesine veya onları yürütmesine izin verebilir.
- SMAP 1903 sürümünde kısmi olduğundan AC biti açık olsa da bazı dolaylı bellek erişimleri hala korunur.
- CR4 kaydının 21. biti durumunu gösterir.
1. AC (Access Control) Bayrağı:
- Bu bayrak, SMAP'ın veri erişimi kısıtlamalarını kontrol eder.
- AC bayrağı setlendiğinde (1), kernel modu kodu kullanıcı modu verilerine erişemez.
- AC bayrağı sıfırlandığında (0), kernel modu kodu kullanıcı modu verilerine erişebilir.
- Bu bayrak, SMAP'ın etkin olup olmadığını kontrol eder.
- SMAP bayrağı setlendiğinde (1), SMAP etkindir ve kernel modu kodu kullanıcı modu verilerine erişemez.
- SMAP bayrağı sıfırlandığında (0), SMAP devre dışıdır ve kernel modu kodu kullanıcı modu verilerine erişebilir.
- Bu bayrak, SMEP'in etkin olup olmadığını kontrol eder.
- SMEP bayrağı setlendiğinde (1), SMEP etkindir ve kernel modu kodu kullanıcı modu kodunu çalıştıramaz.
- SMEP bayrağı sıfırlandığında (0), SMEP devre dışıdır ve kernel modu kodu kullanıcı modu kodunu çalıştırabilir.