Selam
@99 :=)
[CODE highlight="5"]KERNEL_SECURITY_CHECK_FAILURE (139)
A kernel component has corrupted a critical data structure. The corruption
could potentially allow a malicious user to gain control of this machine.
Arguments:
Arg1: 0000000000000003, A LIST_ENTRY has been corrupted (i.e. double remove).
Arg2: ffffc90e8426ee60, Address of the trap frame for the exception that caused the BugCheck
Arg3: ffffc90e8426edb8, Address of the exception record for the exception that caused the BugCheck
Arg4: 0000000000000000, Reserved
[/CODE]
İstisna kaydını görüyorsun,
Kod:
EXCEPTION_RECORD: ffffc90e8426edb8 -- (.exr 0xffffc90e8426edb8)
ExceptionAddress: fffff8020386fd35 (nt!ExInterlockedInsertTailList+0x000000000014f945)
ExceptionCode: c0000409 (Security check failure or stack buffer overrun)
ExceptionFlags: 00000001
NumberParameters: 1
Parameter[0]: 0000000000000003
Subcode: 0x3 FAST_FAIL_CORRUPT_LIST_ENTRY
nt!ExInterlockedInsertTailList fonksiyonu, bir
listenin kuyruğuna
atomik olarak bir öğe eklemek için kullanılır. "Locked" terimi, yürütülen işlemin locked bir işlem gerçekleştirdiğini, yani atomik olarak yürütüldüğünü ve başka bir iş parçacığı tarafından kesintiye uğratılamadığını anlatıyor. ve ek senkronizasyon mekanizmaları gerektirmeden çok iş parçacıklı bir ortamda iş parçacığı güvenli olmasını sağladığını ima ediyor... Güvenli olmasından kastımız İşlem locked olduğundan, bir güvenlik açığı veya veri bozulması riski olmadan çok iş parçacıklı senaryolarda güvenle kullanılabildiği anlamına geliyor ya da gelmek istiyor. Listeye ekleme mevzusu da ilk kod içine aldığım kısımda da görüldüğü gibi listenin sonuna yeni bir öğe (LIST_ENTRY) ekler. Bu işlem, listenin bütünlüğünü korumak için listenin mevcut son elemanının ve yeni elemanın işaretçilerinin güncellenmesini içeriyor. Yenisi geldi; artık en son eleman, en son eleman olmayacak gibi söylenebilir.
Bir fast fail ve onun yanında da kuyruğu gibi gezen
c0000409. Çünkü bu hızlı hataların nerdeyse hepsinde bir buffer taşması var, bu da genelde sistemde güvenlik açığı yaratacak cinsten oluyor.
Kod:
ExceptionCode: c0000409 (Security check failure or stack buffer overrun)
ExceptionFlags: 00000001
NumberParameters: 1
Parameter[0]: 0000000000000003
Subcode: 0x3 FAST_FAIL_CORRUPT_LIST_ENTRY
nt!ExInterlockedInsertTailList komutunun yürütüldüğü adres int 29h çökmesi ile sonuçlanmış.
Kod:
TRAP_FRAME: ffffc90e8426ee60 -- (.trap 0xffffc90e8426ee60)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffffc90e8426ef01 rbx=0000000000000000 rcx=0000000000000003
rdx=ffff8005d8ff7388 rsi=0000000000000000 rdi=0000000000000000
rip=fffff8020386fd35 rsp=ffffc90e8426eff0 rbp=ffff8005e625a3b0
r8=ffff8005e625a3b0 r9=0000000000000f63 r10=0000000069757262
r11=0000000000001001 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up di ng nz na pe cy
nt!ExInterlockedInsertTailList+0x14f945:
fffff802`0386fd35 cd29 int 29h
Resetting default scope
Şöyle diyelim;
Kod:
2: kd> k
# Child-SP RetAddr Call Site
00 ffffc90e`8426eb38 nt!KeBugCheckEx << mavi ekran
01 ffffc90e`8426eb40 nt!KiBugCheckDispatch+0x69 << mavi ekran için bir rapor
02 ffffc90e`8426ec80 nt!KiFastFailDispatch+0xd0 << Fastfail mevzusu
03 ffffc90e`8426ee60 nt!KiRaiseSecurityCheckFailure+0x323 << Çökme
04 ffffc90e`8426eff0 nt!ExInterlockedInsertTailList+0x14f945 << Ekleme işlemi
05 ffffc90e`8426f020 SMIksdrv+0x5338 <<< Suçlu dediğin eleman
06 ffffc90e`8426f028 0xffff8005`dc814000
Görüyorsun sıralamasını. Listeye eklenen sürücü ne?
SMIksdrv.sys bu nedir?
| Çöken modül | Nedir? |
|---|
| SMIksdrv.sys | Lenovo Easy Camera sürücüsü |
Kamera sürücüsü, kamera modülleri için bir kernel bir aygıt sürücüsüdür. Tıpkı yapboz gibi düşün:
Kernel sürücülerinin sıraladığı kuyruk erişimlerinde bir hata olması Microsoft tarafından affı olmayan bir durumdur. Hata olursa
int 29 kesmesiyle sistem fast fail durumuna düşerek bir sonuç oluşturur.
İnt 29h ise özellikle MS-DOS bağlamında oluşundan dolayı kritik bir hatanın kesmesine bağlıdır. Bu kesme, sıfıra bölme veya
geçersiz belleğe erişim gibi kritik bir hata oluştuğunda çağrılan bir kesme
oluyor bu noktada.
TRAP'e dönüp bakarsak bu listeye ekleme işleminin eriştiği adresin
0000000000000003 olduğunu görürüz.
Kod:
TRAP_FRAME: ffffc90e8426ee60 -- (.trap 0xffffc90e8426ee60)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffffc90e8426ef01 rbx=0000000000000000 rcx=0000000000000003
rdx=ffff8005d8ff7388 rsi=0000000000000000 rdi=0000000000000000
rip=fffff8020386fd35 rsp=ffffc90e8426eff0 rbp=ffff8005e625a3b0
r8=ffff8005e625a3b0 r9=0000000000000f63 r10=0000000069757262
r11=0000000000001001 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up di ng nz na pe cy
nt!ExInterlockedInsertTailList+0x14f945:
fffff802`0386fd35 cd29 int 29h
Resetting default scope
Peki bu adresin mevcut durumu nedir?
Kod:
3: kd> !pte 0000000000000003
VA 0000000000000003
PXE at FFFFB7DBEDF6F000 PPE at FFFFB7DBEDE00000 PDE at FFFFB7DBC0000000 PTE at FFFFB78000000000
contains 0A0000032BF4D867 contains 0000000000000000
pfn 32bf4d ---DA--UWEV contains 0000000000000000
not valid
Geçersiz.
En başında da dediğimiz gibi
int 29h kesmesi bu gibi durumlarda çağrılıyor. Bu hatayı
amcap.exe kullanırken almışsın. Bu da kendini videoya almanı sağlayan bir programmış. Kamerayı kullanmışsın yani
Record your PC’s screen effortlessly
amcap.en.softonic.com
Buna ek olarak, ses sürücülerini de güncelle. İyi günler dilerim.