Yazar, Windows'ta C/C++ geliştiricileri için harika bir sıcak yeniden yükleme (hot-reload) çözümü olan Live++'ı çok sevdiğini belirtiyor. Ancak macOS kullanıcısı olduğu için Live++'ın bu platformda çalışmaması onu kendi çözümünü araştırmaya itiyor. Tatildeyken, çalışan bir sürece kod enjekte etmenin ne kadar zor olduğunu merak ediyor ve bu konuyu eğlenceli, küçük bir proje olarak ele alıyor. Amacı, Live++ gibi kapsamlı bir araç yaratmak değil, sadece macOS'te kod enjeksiyonunun temel prensiplerini anlamak.
Makale, basit bir C test programı kullanarak kod enjeksiyonunun nasıl yapılabileceğini gösteriyor. Bu test programında, bir data değişkeni ve bu değişkenin değerini döndüren foo() adında bir fonksiyon bulunuyor. Yazarın hedefi, çalışan bu test programına bağlanarak data değişkeninin değerini değiştirmek ve foo() fonksiyonunu tamamen yeni bir fonksiyonla anında değiştirmek. Bu sayede, programın çıktısının çalışma zamanında nasıl etkilendiği gözlemlenecek.
Bu işlemi gerçekleştirmek için macOS'e özgü Mach API'lerinin, özellikle task_for_pid() gibi fonksiyonların kullanılacağı belirtiliyor. Yazar, internette bu konuda doğrudan ve anlaşılır bir makale bulamadığı için kendi deneyimlerini paylaşmaya karar vermiş. Makale, CMake kurulumu ve kod enjeksiyon programının diğer süreçleri değiştirebilmesi için gerekli olan yetkilendirmeler (entitlements) gibi teknik detaylara da değiniyor. Projenin tam kaynak koduna GitHub üzerinden erişilebileceği bilgisi de veriliyor.
Bu çalışma, macOS'te çalışan süreçlere dinamik olarak müdahale etme ve belleklerini değiştirme yeteneğini göstererek, geliştiricilere hata ayıklama, güvenlik araştırmaları veya özel araçlar geliştirme konularında yeni kapılar açıyor.