Negatif Sayıların Bitsel Organizasyonu

Eğer daha önce verilerle bitsel düzeyde işlem yaptıysanız yahut ikili sayı sistemine aşinalığınız varsa verilerin bilgisayar sistemlerinin çalıştığı binary (ikili) sistemde nasıl tutulduğunu ve bu verilerin bizlerin anlayabileceği decimal (onluk) yahut bu değerlere karşılık gelen karakter setleriyle olan ilişkilerini biliyorsunuzdur. Verilerin tutulduğu 8 bitlik öbeklerden oluşan byte’lar işaretsiz veri öbekleridir. Bu sebepten her ne kadar…

Read more...

Meltdown Zafiyeti ve İstismar Edilmesi

Bu yazımda Meltdown güvenlik zafiyetinin ne olduğunu, nasıl exploit edildiğini ve geliştirdiğim bir proof of concept ile nasıl işletim sisteminde gizli kalması gereken bilgilerin çalınabileceğini detaylı olarak anlatmaya ve göstermeye çalışacağım. Öncesinde bu konunun çıkışı ve yankıları üzerine birkaç şey söyleyerek başlayayım. Malum, bilişim ve teknoloji dünyası yaklaşık son 3-4 hafta içerisinde büyük etki yaratan…

Read more...

Concurrent (Eszamanlı) Programlama ve Race Condition Tehlikesi

Programlama ve programlama tekniklerinin gelişimi, teknolojinin gelişimiyle doğru orantılı olarak değişim göstermiştir. Kullanılan donanımlar daha güçlü özellikler sundukça bu onların tasarımlarını da komplike bir hale getirmiş ve bu donanımlar üzerinde çalışan yazılımların da ona uygun şekilde yeniden tasarlanmalarını zorunlu kılmıştır. Örneğin bugün multi-core yahut multi-processor (İkisi arasında fiziksel fark mevcuttur. Multiprocessor birden fazla fiziksel işlemciyi…

Read more...

API Hooking (Yönlendirme, Araya Girme) Nedir ve Nasıl Yapılır?

Merhaba Uzunca süredir biraz detaylı bir yazı yazmayı planlıyordum. Takip edenler bilir Buffer Overflow konusunun 2. bölümünü yazmayı planlıyordum. Ancak kısa kesmemek ve oldukça detaylandırmak istediğimden ve bunun için de biraz fazlaca boş zaman olması gerektiğinden ikisini birbirine denk getirip konuyu içime sinecek şekilde yazamamıştım. Bu sürede konuyu vakit buldukça hazırlıyordum elbette. Ancak bir talihsizlik…

Read more...

C# ve Statik Arayüz (Static Interface)

Merhaba, Başlığı gören deneyimli programcılar durumu garipseyecektir. Çünkü bilirler ki bir arayüz’ün (interface) kullanım amacı statik olmayan (non-static) bir nesne’nin (object) sağlaması zorunlu/gerekli üye fonksiyon ve özelliklerinin tanımlanması ve ilgili sınıf’ın (class) türünden ve hiyerarşisinden bağımsız kullanılabilmesini amaçlar. hiyerarşiden bağımsız olması abstract class (özet sınıf)’dan ayrılmasını sağlar. Arayüzler bu amacı güttüğü için bir instance’a sahip…

Read more...