Arkadaşlar bu başlıkta blogumda yazdığım bir yazı dizisini paylaşacağım, sorularınız olursa buradan yanıtlayabilirim, yorum olarak da sorabilirsiniz.
Yazılım Sanallaştırmaya ve API Hookinge Giriş
Alıntı
Merhaba arkadaşlar,
Bu yazım ve bundan sonra gelecek bir kaç yazımda Türkiye’de hiç itibar görmeyen, ancak bulut bilişim, yazılım geliştirme araçları ve güvenlik araçlarının vazgeçilmez bir parçası olan API Hooking ve Yazılım sanallaştırma işleminden bahsedeceğim.
Uygulama sanallaştırma işlemi, çalışan bir process’in, aslında gerçek kaynaklara (dosya sistemi, kayıt defteri, sistem değişkenleri, process listesi, donanımlar vb) ulaşmaya çalışırken bu uygulamaya müdahele etmek ve programın istediği kaynaktan başka bir kaynağa ulaştırmaktan ibarettir.
Yazı dizisi boyunca adım adım tüm bu kaynaklara nasıl ulaşıldığını inceleyeceğiz ve istediğimiz kaynakları manipüle edeceğiz. Ancak bu işlemleri gerçekleştirebilmemiz için API Hooking ve DLL Injection gibi konularda bir miktar bilgiye sahip olmamız gerekiyor. Eğer bu konularda bilginiz varsa doğrudan 2. yazıya atlayabilirsiniz, zira bu yazıda çok detaylı olmasa da temel bilgilerle başlayacağım.
NEDEN
Günümüzde .Net ve Java gibi üst düzeyli diller ile neredeyse herkes kolaylıkla kendi ihtiyaçlarını giderecek kadar programlama yapabiliyor, internetteki kaynaklar, kitaplar programlama konusunda son derece detaylı bilgi ve örnek kodlar sağlıyor. Ancak, sadece üst düzeyli dillerle çalışmak işimizi son derece kolaylaştırsa da ek bir çaba harcamadıkça sistemlerin çalışma mantıkları hakkında çok sınırlı bilgi ediniyoruz, pek çok bilgisayar mühendisi bile sınavları geçmeye yetecek kadar bilgi öğreniyor ve kısa zamanda bu bilgileri unutuyor. Kurumsal uygulamalarda da üretim hızı ve kolaylık bakımından üst düzey diller kullanıldığı için, günümüzdeki işletim sistemlerinin çalışma mantığı küçük bir kitlenin, 10-15 yıllık makale ve kaynaklardan öğrenebildiği bir alan haline geliyor.
Dosya Sistemi Sanallaştırma
Alıntı
Merhaba arkadaşlar,
Geçmiş yazımda yazılım sanallaştırmanın temel nedenleri ve yöntemlerinden bahsetmiştim.
Yazı dizisinin bu bölümünde ise dosya sistemlerinin sanallaştırılmasından bahsedeceğiz. Peki dosya sistemini sanallaştırmadan kastımız nedir? Yapacağımız işlem kısacası, seçtiğimiz bir programın hangi dosyalara ulaşıp ulaşamayacağına karar vermek, ve eğer ulaşabilekse de bu ulaşıma müdahele etmek olacak.
Yani dosya sistemi sanallaştırmadan kastım üstteki videoda görebileceğiniz gibi, seçtiğimiz bir uygulama, örneğin “x.txt” dosyasına ulaşmaya çalışırken, programa enjekte ettiğimiz DLL bu API çağrısını yakalıyor ve programa “y.txt” dosyasını döndürüyor. Ancak program hala “x.txt” dosyasına ulaştığını sanıyor ve buna göre işlem yapıyor.
NEDEN
Gelelim bunu neden yapıyoruz, uygulama sanallaştırma işleminde dosya sisteminin sanallaştırması konusu önemli bir rol oynuyor, zira uygulamalar ayarlarını ve kayıtlarını basit dosyalarda tutuyorlar, biz bu dosya ulaşımlarına müdahele ederek, programın istediğimiz ayarlarda çalışmasını sağlayabiliyor, hatta üzerinde çalışılacak dosyayı başka bir dosyayla değiştirebiliyoruz.
İlk Bölümün Tamamı:
http://blog.fatihbakir.net/yazilim-sanallastirma/
İkinci Bölümün Tamamı:
http://blog.fatihbakir.net/yazilim-sanallastirma-2-dosya-sistemi-sanallastirma/