IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   C printf() ile bellekten veri çekilmesi (https://www.ircforumlari.net/c-ve-c/656984-c-printf-ile-bellekten-veri-cekilmesi.html)

SeckiN 03 Aralık 2014 15:18

C printf() ile bellekten veri çekilmesi
 
C’dilinde stdio.h kütüphanesi ile gelen printf() fonksiyonunu hepiniz biliyorsunuz.Bu fonksiyonun iki işlevi vardır birincisi :
len=printf("12345678") ;
len değişkenine 8 değeri dönecektir.

Bizim ilgilendiğimiz ise ikinci işlevi olan ekrana yazı bastırması:

printf("Merhaba!") ;

ekrana "Merhaba!" yazacaktır.Ayrıca değişkenleri de kullanabilirsiniz.Örneğin ;

int a=5 ;
printf("Merhaba! %d",a) ;
"Merhaba 5" ekrana yansıyacaktır.

peki
printf("%d") ;
sizce ne olacaktır?Deneyelim bakalım ne olacak:

-1079828124

Yazılıma bir değişken sunamadığımız için yüzde(%) işaretini kullandığımızda yığından bir veri göstermemiz lazım ki o da onu görüntülesin fakat biz herhangi bir değişken söylemiyoruz.O da stacktaki rasgele(!) bir veriyi çekiyor.Acaba gerçekten rasgele mi?

Daha iyi güncellemek için şu konsol yazılımını yazalım:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

ve derleyelim.Derlerken verilen uyarıyı görüyorsunuz güvenlik açısından sorun teşkil ediyor tabiyiki bu durum derleyicimiz de bizi uyarıyor.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Evet belki bu yazılımımızın gerçek kullanımı ama biz daha fazlasını istiyoruz.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Bir de hex olarak bakalım:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Şimdi python’un güzelliğini kullanalım:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Bu kodu bir değişkene atıp çalıştırmayı deneyebilirsiniz .Bakalım neler bulacaksınız .Belleği anlamak istiyorsanız bunlar üzerine düşünmenizi tavsiye ederim .

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 11:21.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk