2009-02-09 24 views
5

Bir ders atamasının bir parçası olarak, arabellek taşmasına neden olmak ve yığınta bulunan kodu yürütmek için bir yarar kodu yazmam gerekir.yığın yürütme koruması ve ubuntu üzerinde rasgeleleştirme

aşağıdaki komutla yığın randomiztion kapattık: sysctl -w kernel.randomize_va_space = 0 Ancak, ben yığın yürütme korumasını kapatmak için bir yol bulamıyorum. Ubuntu'da bazı stack exec korumasının olup olmadığından emin değilim ... bu yüzden ilk sorum ubuntu 8.10'da kırmızı şapkadaki exec-shield gibi bir şey olup olmadığı ve eğer varsa nasıl kapatabiliriz.

Arabellek taşmasına neden oluyor ve yığındaki yönergeleri çalıştırmaya çalışıyorum, ancak bunu yapmaya çalıştığımda bana bir seg hatası veriyor.

ubuntu'yu 8.10 64 bit, HOWEVER, program im hata ayıklama bir yığın koruma korumalı bir i386 makinesinde derlenmiştir.

+0

* lol * kraker karşı savaş ticareti öğrenmek için beyaz şapka durduruluyor. Belki onlar nasıl yaptıklarını bilmediğimizde suçlular kaçacak mı? ;) –

+0

[bu bağlantı] (http://pwet.fr/man/linux/administration_systeme/execstack) yardımcı olur mu? – jpalecek

cevap

5

Muhtemelen ile birlikte, GCC derleme içinde -z execstack bayrağıyla derlemek istiyoruz -fno-stack-protector (GCC en SSP/Propolice yığını korumasını devre dışı bırakmak için), yani: muhtemelen bundan sonra Jake'i çıkmak gerekir

gcc -fno-stack-protector -z execstack -o vuln vuln.c 

her şey. sysctl -w kernel.randomize_va_space=0 adresinin yalnızca alan rasgelelemesi olduğunu ve her seferinde korumayı değil; çeşitli tekniklerin kullanılmasına karşı zorlanan kaba olabilir.