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.
- Tersine Mühendislik
- Ghidra
- Assembly
Blog
Sistem mimarisi, tersine mühendislik ve yazılım geliştirmenin o güzel karmaşası üzerine derinlemesine yazılar.
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.
Formül ezberlemekten değil, analitik kası geliştirmekten bahsediyorum. Bence matematiği bilmek, iyi bir geliştiriciyi sadece kod yazan birinden ayıran şeydir.
Bellek yönetiminden derleyici felsefesine kadar, her ikisini de günlük olarak kullanan biri olarak Rust ve C++'ın nerede ayrıştığını açıklıyorum.
Kaynak kodu olmadan bir binary dosyasında nasıl güvenlik açığı bulduğumu ve neden hâlâ manuel yama uygulamayı öğrendiğimi anlatıyorum.
Mobil cihazlardan sunuculara kadar, bu iki mimarinin komut setlerinde, yazmaç yapısalında ve tasarım felsefelerinde nasıl farklılaştığını inceliyorum.
Büyük ölçekli projelerde doğru mimari kararların nasıl alınacağı. Sistemleri modüler, dayanıklı ve yüksek performanslı hale getirmenin temel kurallarını açıklıyorum.
Java veya React Native uygulamalarının aksine, Flutter binary'leri standart statik analize direnir. Dart'ın AOT derlemesini, özel nesne düzenlerini ve geleneksel araçların neden kutudan çıktığı gibi çalışmadığını inceliyorum.
DLL injection genellikle kara büyü olarak görülür. Yabancı bir süreci kendi rastgele kodunuzu yüklemeye zorlamak için gereken Win32 API çağrılarını parçalara ayırıyorum.
Yazılım mühendisliği bir kimlik krizi yaşıyor. Makine ve inşaat mühendisliğinden ilkeleri benimsemenin neden daha dayanıklı yazılım mimarları yarattığını tartışıyorum.