C# ile CodeDom kütüphanesi – Yazılıma Kod Entegrasyonu

0
Want create site? Find Free WordPress Themes and plugins.

Bu yazıda sizlere C# dili ile CodeDom kütüphanesini anlatacağım. Bu kütüphane ile yazılım içerisindeki kod yapısını veya istediğimiz bir alanı değiştirmeyi anlatacağım.

Şunu belirtmek isterim. Bu işlem tamamen legal olup her hangi bir hack işlemi değildir. Bu kütüphane windows tarafından programlarımızda execurable dosyası üzerinden kodları değiştirmemizi sağlar.

Öncelikle Codedom nedir ve nasıl çalışır bundan bahsedeyim sizlere:

Program içerisinde bildiğimiz bir kod alanını değiştirme ve yeniden yazmak için kullanılan bir kütüphanedir. Bu kütüphane ile yazılan bir program aracılığı ile başka yazdığımız bir programın exe dosyası üzerinden kaynak kodlarda istediğimiz değişkenleri veya fonksiyonları bulup değiştirerek yeniden yazma işlemi ile değiştirilmiş bir program ortaya çıkarırız.

Bu kütüphaneyi kullanacağımız programa aşağıdaki kütüphaneyi eklememiz gerekmektedir.


Bu kütüphane ile birkaç tane makale mevcut fakat onlar yeniden kod oluşturma üzerine kurulu makaleler. Biz bu yazıda var olan bir kodu değiştireceğiz ve programı yeniden yazdıracağız.

İşlemlerimizi yapacağımız kod bloğunu ilk olarak program içerisinde aratacağız ve ardından onlar üzerinde değişiklikler yapacağız.

Şimdi yazımıza başlayalım. İlk olarak basit bir console uygulaması yazalım ve daha sonra bu console uygulamasının kodlarını değiştirelim.


Yukarıdaki basit programı yazdığımıza göre şimdide değişim yaptıracağımız programa geçelim.

Burada program içerisinde yazdığımız kodu bir string ifadeymiş gibi aratacağız ve bulunduğunda yeni kodumuzuda bir string ifadeymiş gibi yer değiştirttireceğiz.

Bunun için CSharp NameSpace kısmından ir kaç nesneye ihtiyacımız olacak.

  • CodeCompiler nesnesi : Yeni Oluşturulan kodları tekrar derlemek için kulanacağımız nesnemiz. Bu nesnenin alt nesneleri ile yeni kodları oluşturacağız ve derleyeceğiz. Ardından yeni exemizi elde edeceğiz.
  • CSharpCodeProvider nesnesi ile yazdırılan kodların C# dilindeki assembly karşılığını getireceğiz ve yeni kodlarıjmızı Assembly olarak yazdıracağız.
  • CompilerParameters nesnesi ile programımıza yazdırdığımız yeni kodlarla çalışacak olan parametreleri oluşturup göndereceğiz.
  • CompilerSource nesnesinin alt nesnesi olan CompilerResults nesnesi ile ise en son programı içine gönderdiğimiz parametreler ve yukarıdaki Provider nesnesi ile oluşturduğumuz assembley kodlarını yeniden derleyeceğiz. Bu şekilde yeni oluşturulan programımızı geri döndüreceğiz.

Aşağıdaki kod bloğu ile programı derlemek ve assembly kodlarını oluşturmak için bir fonksiyon yazdık. Bu fonksiyon bize girilen kod ifadelerini assembly şeklinde geri döndürecek.


Yukarıdaki assembly kodlarını oluşturan fonksiyonu yazdığımıza göre sırada bu fonksiyonu kullanmamız gerekiyor. Aşağıdaki fonksiyon aracılığı ile yukarıdaki fonksiyonu çağıracağız ve kullanacağız.

Yukarıdaki kodu çalıştırdığımızda en üstteki yazdığımız fonksiyonu alttaki yazdığımız alan ile değiştiriyoruz. Yani kodları string olarak değiştiriyoruz.

Burada artık yukarıdaki programımız çalışmayacaktır. Çünkü derleme hatası olacaktır. Nendeni ise program çalıştığında TheCode classı içerisindeki yazdir fonksiyonunu çağırıyor. Fakat artık program içerisinde yazdir diye bir fonksiyon bulunmamaktadır. ununla birlikte TheCode diye bir classta bulunmamaktadır. Çünkü o verileri sildik ve yerine başka birşeyler yazdık.

Burada yeni oluşan assemly kodumuz bir nesnedir. Ondan dolayı object değişken türü olarak çağırdık.

Peki executable programımız üzerindeki değişikliği nasıl yapacağız. Bu konu ile ilgili bir örnek yapalım ve yazımızı bitirelim.

 

Aşağıdaki örnek ile Codedom Uygulaması yapacağız ve girilen exe üzerinde değişiklik yapacağız.


Yukadıdaki fonksiyonu çağıradağız ve seçtiğimiz exe yi dönüştüreceğiz ve yeniden bir exe dosyası oluşturacağız.

Fonksiyonuda aşağıdaki şekilde çağıralım. Bir form uygulaması olsun ve bu işlemi yapalım.


Bu şekilde yeniden hazırladığımız kodlarla exe dosyamızı yeniden oluşturduk ve programımızı yeniden yazmış olduk. Derleme ile ilgili herhangi bir hata almazsanız program başarılı bir şekilde derlenecektir. Ve exe dosyamız yazdığımız kodlarla yeniden oluşacaktır.

Tekrar söyleyeyim arkadaşlar bu işlem kesinlikle bir hack işlemi değildir. Microsoftun sağladığı kütüphaneler aracılığı ile exe dosyalarının içeriğini değiştiriyoruz ve yeniden oluşturuyoruz

Bu yazımızda bu kadar arkadaşlar — Takipte kalın

İyi Çalışmalar

Burak Hamdi Tufan

Did you find apk for android? You can find new Free Android Games and apps.
0%
0%
Awesome
Share.

About Author

Ben Kocaeli üniversitesi Uçak Elektrik Elektronik Bölümü Okuyorum. Bununla Birlikte 9 Yıldır yazılımcılık Yapıyorum. 12 Farklı Dilde ve 6 Farklı Platformda Profesyonel Yazılımlar Geliştirebiliyorum. Yazılım Benim için Hobi Değil Yasaşm Tarzıdır. Bu işten Para Kazanmak Değil Zevk Almak İçin Yapıyorum. Bu yüzden yazılım dünyasından ayrılmak istemiyorum.

Leave A Reply