Do -fstack-koruyucusu ve -fstack-koruyucusu-hepsi de yığın tabanlı bellek ayırmalarını ya da yalnızca yığın tabanlı olanları korur mu?-fstack-koruyucusu, -fstack-protector-all ve -fmudflap
İlk 2 ve -fmudlap arasındaki fark nedir?
Hata ayıklama konusunda daha iyi olan herhangi bir öneriniz var mı?
(gcc man page yeterince açık olup olmadığından emin değilim ya da ben sadece bunu anlamıyorum ...)
char foobar[10]; // stack-based
char *foobar = malloc(10); // heap-based
Amacınız nedir? Kodunuzun korunduğundan emin olmak ve onu neyin iyi koruduğunu açmak ister misiniz? Eğer durum buysa, gcc varsayılanı, tüm korumaların etkin olduğu durumlarda çoğunu derler (ör. Kanarya değeri-kanatlı koruyucunun etkin olduğu görülüyor). Hedefiniz kod mantığını takip etmeyi kolaylaştırmak için bir hata ayıklama durumunda seçici bir şekilde devre dışı bırakmaksa, kodun hangi bölümlerinin sadece korumaları kesmek zorunda kaldığını düşünmek zorunda kalıyorsanız, birçok korumayı devre dışı bırakabilirsiniz (bence ama tümüyle nx ayarı biraz fazla). Bu durumda, istediğiniz seçenek (diğerleri arasında) -fno-stack-protector olur. – gnometorule
Peki, bazı yönlendirme tablolarının yazılabilir olup olmadığını, imkansız olmasa bile devre dışı bırakmanın zor olduğunu düşündüğüm başkaları da var. – gnometorule
@gnometorule Hedefim mümkün olduğunca fazla koruma sağlamaktır. Ama bunun için, her birinin ne yaptığını ve yapmadığını anlamalıyım. –