Belirli bir güvenlik açığından etkilenen kod için arabellek taşma saldırısı yapmaya çalışıyorum. Ama yanlış görünüyor gibi görünüyor, Her ne kadar benim istismar dizeleri yığın bozuk değil, ben (benim istismar gömülü gömülü) benim derleme kodumu hiç işe yaramaz.Seçilen fonksiyon için program sayacını içermiyor
Saldırmak istediğim programın 'ret' talimatının uygulanmasından önceki bellek değerlerinin bir kısmı. o yığını pop ve attı değere% eip noktasını yapamaz çünkü bu noktada
0x55683984: 0x5568398c 0x...(old r.a) 0x68e322a1 0x0000c31c
0x55683994: 0xf7fa9400 0x0804a3d7 0x556839c0 0xf7e518d0
, şeyler ters gidebilir? Bu nedenle, benim istismar derleme kodum çalışmıyor. (0x68e322a1 0x0000c31c) Gdb diyor Seçili çerçeve için hiçbir program program sayacını içermiyor. ve hata ayıklama olmadan çalıştırmayı denediğimde, bir segmentasyon hatasına neden olur.
Bu sorunun derlememin uzunluğuyla ilgili bir ilgisi var mı? (bu durumda 6)?
Program received signal SIGSEGV, Segmentation fault.
0x5568398c in ??()
(gdb) x 0x5568398c
0x5568398c: 0x68e322a1
Bu, segfault neden olan adresin içinde ne olduğunu görebildiğimde nasıl olur?
Sen 'disassemble' kullanabilirsiniz çağrı yığını. Çalıştırmaya çalıştığınız kodu gösterdiğinizde yardımcı olmak daha kolay olacaktır (Eğer 68 e3 ise, gömülü bir sıfır bayt içerir). BTW, eğer bu ev ödevi içinse, bu şekilde işaretlemelisiniz. – user786653
Neler olup bittiğini görmek için düzen asmını kullandım. Ayrıca, şimdi benim exploit kodum bir c3 (ret komutu anlamına gelir) ile sona erdi, başıboş sıfır bayt sorun değil. Burada önemli olan nokta yanlışlıkla yanlışlıkla tanımlanmamış bir hafıza adresine ulaşmaya çalışmaktır. – bfaskiplar