Tersine Mühendisliğe Giriş: Bir Programı Parçalarına Ayırmak↗
Derlenmiş bir C++ uygulamasının arkasındaki assembly kodunu ve bellek yönetimini Ghidra ve IDA Pro kullanarak nasıl incelediğimi anlatıyorum.
Yazılım geliştirmeyi sadece teknik bir zanaat olarak değil; psikoloji ve sosyolojiyle şekillenen bir disiplin olarak görüyorum. Amacım, sadece makineyi değil, insan zihnini de anlayan yazılımlar inşa etmek.
Modern full-stack mimariler, gizlilik ağları ve ölçeklenebilir backend çözümleri.
Tip güvenli React/Vue arayüzlerini, yüksek veri verimi sağlayan Rust backend'leri ile eşleştirmek.
İş mantığını sunucuda tutarak istemciyi hafifleten; Virtual DOM maliyetlerinden arındırılmış Svelte veya tip güvenli React/Next.js tabanlı minimalist arayüz mimarileri.
İş yükünün karakteristiğine göre şekillenen; saf CPU gücü için C++/Rust, yüksek eşzamanlılık (concurrency) için Go kullanarak inşa ettiğim darboğazsız sunucu altyapıları.
İş yükünün I/O paternine göre seçilen; PostgreSQL'in ACID kurallarından, RocksDB'nin mikrosaniye seviyesindeki önbellekleme gücüne uzanan optimize veri katmanları.
Operasyonel güvenliği (OpSec) merkeze alarak; standart protokolleri aşan, dosya sistemini atlayıp doğrudan RAM üzerinden hizmet veren Tor ve Lokinet tabanlı deanonimizasyon ağları.
Çapraz platform masaüstü araçları, oyun motorları, mobil uygulamalar ve paketleme.
Electron'un RAM sömüren yapısından kaçınarak, işletim sistemi API'lerine doğrudan erişen; Tauri, C# (WPF) ve C++ tabanlı ultra hafif native istemciler.
Geleneksel WebView hantallığını reddeden; Dart'ın gücü ve AOT derleme mimarisiyle doğrudan makine dilinde koşan yüksek performanslı çapraz platform çözümleri.
Klasik nesne yönelimli mimarilerin hantallığını reddeden, doğrudan veri yönelimli tasarım (DOD) ve ECS mimarisiyle yüksek performansı garanti eden simülasyonlar.
Bağımsız modülleri hedef işletim sistemine uygun, deterministik ve izole bir şekilde derleyerek sorunsuz dağıtım sağlayan CI/CD hatları.
API tabanlı servis botları ve kullanıcı emülasyonu yapan gelişmiş self-bot mimarileri.
Platformların API kısıtlamalarını (rate-limit) akıllı kuyruk mimarileriyle aşan, hafif istekleri Python/Node ile karşılayıp ağır veri yükünü Rust'a devreden dağıtık etkileşim katmanları.
Modern WAF ve anti-bot sistemlerini atlatmak için TLS parmak izlerini maskeleyen, başsız (headless) tarayıcılarla kusursuz insan davranışı simüle eden hayalet ağlar.
Veri kazıma, makine öğrenmesi entegrasyonları, sistem otomasyonları ve scripting.
Teorik karmaşıklıktan (Big-O) ziyade donanım gerçeklerini (Cache Miss, bellek tahsisi) merkeze alan, Rust ve C++ tabanlı sıfır maliyetli özel veri yapıları.
Basit HTML ayrıştırmanın ötesine geçerek; HTTP/2 framing ve dinamik TLS parmak izi yönetimiyle en sert güvenlik duvarlarını aşan yüksek verimli veri madenciliği.
İnsan faktörünün yarattığı operasyonel yavaşlığı ve hata payını sıfıra indiren; sunucu yapılandırmasından CI/CD süreçlerine kadar her katmanı yöneten otonom betikler.
Sistemleri birbirine bağlayan veri boru hatlarından (pipeline), anlık konsept doğrulamalarına (PoC) kadar hızla sahaya sürülen taktiksel kod blokları.
Özel mimarilerle sıfırdan model eğitmekten, bu modelleri C++ ve TensorRT ile milisaniyelik çıkarım (inference) motorlarına dönüştürmeye uzanan uçtan uca AI boru hatları.
Tersine mühendislik, ağ trafiği analizi ve güvenlik protokolü denetimi.
Kaynak kodu kapalı sistemlerin anatomisini Ghidra ile sökerek, x86/ARM mimarisinde Assembly seviyesinde statik analiz ve yama (patching) işlemleri.
Yazılımın ağ üzerindeki gerçek davranışını teşhis etmek için Wireshark/PCAP ile TCP/UDP paketlerinin bayt seviyesinde incelenmesi ve şifreli protokollerin çözümlenmesi.
Hazır framework'lerin dışına çıkarak; sistemin sınırlarını, yük kapasitesini ve bellek sızıntılarını tespit eden özel C++ tabanlı stres (fuzzing) testleri.
Donanıma yakın sistem programlama, mikro işlemciler ve grafik motorları.
Hazır soyutlamaları ve çöp toplayıcıları (GC) reddederek; işlemci döngüleri, CPU önbelleği ve bellek yönetimi üzerinde mutlak tahakküm kurduğum donanım seviyesi mimariler.
Kilobaytlarla ölçülen kısıtlı bellek alanlarında, işletim sistemi soyutlaması olmadan donanım yazmaçlarına doğrudan hükmeden bare-metal C/C++ ve Rust mimarileri.
Oyun motoru katmanlarını tamamen aradan çıkararak, doğrudan donanımla aynı dili konuşan C++ tabanlı saf DirectX, OpenGL ve OpenCV görüntü işleme hatları.
C, C++ ve C# projelerindeki ağır silahım. Sunduğu hata ayıklama (debugging) araçları ve derleyici entegrasyonu rakipsiz.
Çünkü bazen sadece minimal bir arayüze, sıfır fazlalığa ve klavye üzerinden uçarak kod yazmaya ihtiyacınız olur.
Sahip olduğu kusursuz refactoring yetenekleriyle makine öğrenimi ve betik (script) iş akışlarımı inanılmaz hızlandırıyor.
Çok yönlü web geliştirme için günlük favorim. Hafif, kişiselleştirilebilir ve işi her zaman layığıyla yapıyor.
Sistem mimarisi, düşük seviyeli diller ve kodun ardındaki felsefe üzerine düşünceler.
Yazılım dünyasına aslında insanların hayatlarına gerçekten dokunan şeyler inşa etmek istediğim için girdim. Masaya sadece teknik bir zihniyet getirmiyorum; bakış açım Psikoloji, Sosyoloji ve Felsefe tarafından güçlü bir şekilde şekilleniyor.
Felsefe ve Psikolojiye çekiliyorum çünkü kaotik bir dünyaya belirli bir tutarlılık getiriyorlar. Koyu renkli bir terminale bakmadığım zamanlarda zihnimi tiyatro oyunları okuyarak dinlendiriyor ve yeni insanlarla sohbet ederek farklı perspektifler kazanıyorum.
İnşa ettiğim araçları başkalarının da öğrenebilmesi için açık kaynak yapmaya inanıyorum. Tabii ki kötüye kullanılma potansiyeli yüksek olan bileşenler (bazı tersine mühendislik veya ağ araçları gibi) güvenli bir şekilde özel (private) depolarda tutuluyor.