Tersine Mühendisliğe Giriş: Bir Yazılım Nasıl Parçalanır?↗
Ghidra ve IDA Pro kullanarak derlenmiş bir C++ uygulamasının arka planında dönen montaj (assembly) kodlarını ve bellek yönetimini nasıl inceleyebileceğinizi anlatıyorum.
Yazılım geliştirmeyi sadece teknik bir iş olarak değil; psikoloji ve sosyoloji ile harmanlanmış bir disiplin olarak görüyorum. Amacım, insan zihnini ve davranışlarını anlayan, yaşayan yazılımlar üretmek.
Bir projeye başlamadan önce, teknolojilerin eksilerini ve artılarını tartarak, ileride karşılaşabileceğim zorlukları en aza indiriyorum.
Modern full-stack mimariler, gizlilik ağları ve ölçeklenebilir backend çözümleri.
Modern ve performans odaklı mimari. Frontend'de Next.ts ve Nuxt.ts ile güçlü tip güvenliği, Backend'de Rust (Actix) ve sunucu yönetiminde Nginx ile yüksek hızlı veri akışı sağlıyorum.
Modern ve tip güvenli arayüzler için React.ts ve Vue.ts. Daha hafif yapılar için Svelte.js. Görsellik ve mantığı TypeScript ve JavaScript temelleriyle harmanlıyorum.
C++ (Boost) ve Rust: Sunucu/sistem seviyesinde optimizasyon ve tam kontrol için. C#: Hızlı proje çıktısı için. Go: Mikroservisler için.
İlişkisel veriler için PostgreSQL ve MySQL. Doküman tabanlı işler için MongoDB. Mobil/Web için Firebase. Lokal ve gömülü sistemler için SQLite ve RocksDB.
Standart web'in ötesinde; Tor Onion ve Lokinet ağlarında çalışan gizlilik odaklı servisler. C++ ve Rust kullanarak doğrudan bellek üzerinden 'Dynamic HTML' oluşturma teknikleri.
Çapraz platform masaüstü araçları, oyun motorları, mobil uygulamalar ve paketleme.
UI tarafında Vanilla JS, React veya Svelte kullanmak için Tauri ve Electron. Qt ve GTK sevsem de, arayüze fazla odaklanmadan geliştirme yapmak için web tabanlı çözümleri tercih ediyorum.
Flutter: Build kolaylığı ve Dart'ın C++ benzeri yapısı nedeniyle tercihim. Flutter üzerinde fan uygulamaları geliştirmeyi seviyorum.
Rust (Bevy) ile veri odaklı oyun geliştirme. Küçük çaplı, mobil ya da VR odaklı projeler için Unity. Yüksek grafik gereksinimleri için Unreal Engine 5 deneyimi.
Birden fazla programı (frontend, backend, mikro işlemci) taşımak zor olduğu için Xix Toolset ile setup dosyaları oluşturuyorum.
API tabanlı servis botları ve kullanıcı emülasyonu yapan gelişmiş self-bot mimarileri.
Telegram ve Discord gibi platformların resmi API'leri üzerinden ölçeklenebilir servisler. Etkileşim için JS (Node.js), yüksek performans ve güvenli işlem kuyrukları için Rust kullanıyorum.
Resmi API'lerin ötesinde; Twitter ve Kick gibi platformlarda proxy ağları üzerinden çalışan, insan davranışlarını (tıklama, izleme, mesaj) birebir taklit eden Python ve Go tabanlı gelişmiş otomasyonlar.
Veri kazıma, makine öğrenmesi entegrasyonları, sistem otomasyonları ve scripting.
Karmaşık hesaplamalar ve performans kritik mantıksal döngüler için bellek güvenliği sunan Rust ve donanım seviyesinde kontrol sağlayan C++ tercih ediyorum.
Python ve Go mimarileriyle, HTTP/1.1 ve HTTP/2 protokolleri üzerinden ham veri çekme (Scraping), paket manipülasyonu ve yüksek hızlı veri parsing işlemleri.
Tekrarlayan iş akışlarını ve sistem görevlerini otomatize etmek için Python ve Go kullanıyorum. Web test otomasyonları ve sunucu taraflı scriptler geliştiriyorum.
Tek seferlik görevler için Python. Arka planda sürekli çalışacak uygulamalar için Rust veya C++. Hızlıca uygulama çıkarıp paylaşmak için C#.
Python’un geniş ekosistemi büyük avantaj. Ancak uygulamaya hızlı entegre etmek gerektiğinde C# kullanıyorum.
Tersine mühendislik, ağ trafiği analizi ve güvenlik protokolü denetimi.
Uygulama mimarilerini analiz etmek için Ghidra kullanıyorum. Android JAR paketleri, x86-64 ve x86-32 mimarileri üzerinde zafiyet tespiti ve çalışma mantığı analizi yapıyorum.
Uygulamaların ağ davranışlarını anlamak için Wireshark ile paket analizi yapıyor, internet trafiğini ve güvenlik protokollerini denetliyorum.
API testing ve uygulama kontrolleri için C++ ve PowerShell (ps1) scriptleri yazıyorum. Uygulama davranışlarını test etmek için özel araçlar geliştiriyorum.
Donanıma yakın sistem programlama, mikro işlemciler ve grafik motorları.
İşletim sistemine yakın çalışabilmeleri ve düşük seviyeli olmaları nedeniyle optimizasyon açısından güçlü diller. Gayette yeterliler ve daha yüksek seviyeli diller kullanıp hem alandan hem de RAM'den kaybetmeye gerek görmüyorum.
C++ & Rust: Optimize ve düşük seviyeli erişim için ideal. C#: Kullanım kolaylığı sunduğu ve hızlı geliştirme sağladığı için tercih ediyorum.
Python yerine C++ tercih ediyorum. Görsel işleme ve grafik motoru optimizasyonlarında C++ (OpenGL/DirectX) ile doğrudan bellek yönetimi sağlıyorum.
C, C++ ve C# projelerinde güçlü derleme araçları ve kütüphane desteği için birincil tercihim.
Minimal arayüz, düşük kaynak tüketimi ve klavye odaklı hızlı geliştirme ortamım.
Python projelerinde sunduğu refactoring ve debugging araçları ile makine öğrenmesi süreçlerini hızlandırır.
JSON yapılandırması, geniş eklenti desteği ve hafifliği sayesinde çok yönlü geliştirmeler için ideal.
Sistem mimarisi ve düşük seviyeli programlama üzerine karalamalarım.
Yazılım dünyasına, "insanların hayatlarına dokunmak" vizyonuyla adım attım. Sadece teknik bir zihin değil; Psikoloji, Sosyoloji ve Felsefe disiplinleriyle beslenen bir bakış açısına sahibim.
Dünyada bir uyum olduğunu hissettirdiği için Felsefe ve Psikoloji ile ilgileniyorum. Tiyatro eserleri okuyarak ruhumu dinlendiriyor, yeni insanlarla tanışarak farklı bakış açıları kazanıyorum.
Yazdığım kodları insanlar kullansın diye açık kaynak paylaşırım. Kötüye kullanım riski olan kısımları (örn. virüs analiz araçları) ya düzenler ya da gizli tutarım.