return-oriented programming
-
bounds checking hak getire olduğunda stack buffer overrun anomalisi barındıran programın call stack'inin manipüle edilip subroutine'lerin doğal nesting'inden (örn. d(c(b(a())))) faydalanılarak çalışan subroutine'in b yerine ahmetmehmet'e dönmesini sağlayan bir control flow hijacking tekniği. şayet program libc'ye dinamik linkliyorsa, buradaki ahmetmehmet system(3) gibi shell komutu çalıştırmaya yarayan bir prosedür de olabilir (bkz: return-to-libc attack). shadow stack (intel için linux desteği 6.6'da merge edildi), stack canary (return address'in overwrite edilmesi için bir önceki adresin de aynı şekilde overwrite edilmesi gerektiği için program başında belirlenen bir sayının orada olup olmadığını kontrol etmeye dayanıyor), executable space protection ve address space randomization gibi önleme yöntemleri mevcut.
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap