İPUCU

Tersine Mühendislik Reverse Engineering ve Cracking ile ilgili dökümanları bulabileceğiniz bölüm.

Seçenekler

C# | dnlib With StringDecryption/Encryption (dnlib ile String Koruması) - Tersine Mühendislik #1

22-03-2019 19:49
#1
Phemis - ait Kullanıcı Resmi (Avatar)
Junior Hunter
Üyelik tarihi:
12/2017
Mesajlar:
2.251
Teşekkür (Etti):
873
Teşekkür (Aldı):
610
Konular:
153



DNLİB : Bize .NET uygulamalarında ve modüllerinde okuma ve yazma işlemi veren bir modül.


Bugün ki konumuz dnlib With StringDecryption/Encryption
Yani dnlib'i kullanarak String şifreleme ve çözme işlemi yapacağız.




Öncelikle bu işlemi yapabilmek için VisualStudio üzerinde bir C# Console project oluşturup içerisine dnlib.dll ' i dahil etmemiz gerekmekte..

Bunu nuGet package manager kullanarak yapacağız.
Ben bu işlem için dnlib 3.1.0 sürümünü tercih ettim.

Dnlib NuGet Link için Tıkla



Projemizi oluşturduktan sonra yukarıda bulunan Project seçeneğine tıklayalım.
Daha sonrasında açılır menü üzerinde Manage NuGet Packages... seçeneğine tıklayalım


Project > Manage NuGet Packages...



Karşımıza bu şekilde gelecek olan ekrandan sağ üst köşedeki search ' ı kullanarak "dnlib" ' i aratalım.

Ve çıkan ilk sonucu install edip bitmesini bekleyelim.



Install işlemi bittiğinde Install buttonu yerine bu yeşil tiki bırakacaktır



Sağdaki Solution Explorer'e de bakarsak dnlib'in references kısmına geldiğini göreceğiz.



KODLAMAYA GEÇELİM / StringEncryption


Öncelikle kod kütüphanemize gerekli kütüphaneleri ekleyelim.




Kod:
using dnlib.DotNet;
using dnlib.DotNet.Emit;


Daha sonrasında Main Kısmına kodlarımızı yazabiliriz.
KODLAR İÇİN TIKLA !






AÇIKLAMALAR
1 : StringEncryption işlemine tabi tutacağımız uygulamayı programa yüklüyoruz.
*args[0] ne oluyor ?
args[0] programın üstüne sürükle bırak ile yükleyeceğimiz uygulamadır.
2 : Kodlar içerisinde bulunan değerlerin içerisinde String Seçimi yaptığımız kısımdır.
3 : oldString değişkenine Seçili String değerini atıyoruz

Buradaki old kodların şifrelenmediği anlamına geliyor.
4 : newString değerine Seçili eski String değerinin base64 ile şifrelenmiş halini atıyoruz.
5 : Programdaki Stringler cryptlendikten sonra ŞifrelenmişUygulama çıktımızı alıyoruz.


Kullanım
Sağda Solution Explorer kısmında bulununan Solutionumuza sağ tıklayıp open folder browser... seçeneğine basalım



Daha sonrasında bin > debug yolunu takip ederek exe dosyamızın bulunduğu yere gelelim.



Dosyamız bu şekilde.
Şimdi örnek bir uygulama ile şifreleme işlemi gerçekleşiyor mu ona bakacağız.



String işlemleri diye bir exe oluşturdum.
Exe'mizin şifrelenmemiş hali bu şekilde :



Sürükle - Bırak mantığı ile Stringislemleri adlı exe dosyamızı StringEncryption'un üzerine sürüklüyorum.



Sürükle - Bırak yaptıktan sonra SifrelenenUygulama diye bir exe dosyası oluştuğunu görüyoruz.
(Program neredeyse çıktı oraya oluşturulur)



SifrelenenUygulama'nın kodlarını dnSpy yardımı ile inceleyelim.

Evet görüyoruz ki stringler base64 ile şifrelenmişler.
Hepsini decode etmeden okuyamayız..





KODLAMAYA GEÇELİM / StringDecryption

Yukarıdaki işlemlerin aynısını StringDecryption adlı projemiz için de yapıyoruz.
1) StringDecryption adlı bir C# Console Project oluşturalım. (İsim isteğe bağlı)
2) NuGet Manager kullanarak dnlib ' i dahil edelim.
3) İndirme işlemi bittikten sonra kütüphanelerimizi projeye dahil edelim.




KODLAR İÇİN TIKLA

AÇIKLAMALAR
1 : Programa Sürükle - Bırak mantığı ile uygulama yükledik.
2 : Programdaki string sayısı kadar dönecek bir döngü ayarladık
3 : Seçili string değerini oldString değişkenine attık (Şifrelenmiş String)
4 : oldString yani şifrelenmiş string değerini base64 decode ederek data adlı bir hafıza kutucuğuna attık
5 : decodedString adlı değişkene data adlı hafıza kutucuğumuzdaki decode edilmiş değerleri string türünde yazdırdık.
6 : Kullanıcı için şifrelenmiş ve şifrelenmemiş arasındaki farkı gösterdik


Kullanım
Kullanım yine aynı şekilde Şifrelenmiş uygulamamızı Sürükle - Bırak mantığı ile StringDecryption adlı dosyamızın üstüne bıraktığımız zaman Console penceresinde bize sonuçları gösterecektir.






Bu konumuz burada sona ermiştir.
Tersine Mühendislik serisine devam edeceğiz.
Merak ettiğiniz bir konu var ise bana bunu özelden veyahut konu yorum kısmından belirtebilirsiniz.

23-03-2019 17:54
#2
CambazZz03 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Mesajlar:
28
Teşekkür (Etti):
12
Teşekkür (Aldı):
3
Konular:
4
Kardeşim ben yapamadım yardımcı olur musun?
Visual Studio da C# konsol uygulamasını oluşturdum dnlibi ekledim. Program.cs e kodları ekledim. Derlemede hata almıyorum ama Şifrlenmesini istediğim programımı üzerine sürüklediğimde işlenmemiş özel durum oluştu hatası oluyor.
Kullanıcı İmzası
İntikam Geçerli Bir Hamle Değil, Duygusal Bir Tepkidir...
23-03-2019 17:56
#3
Phemis - ait Kullanıcı Resmi (Avatar)
Junior Hunter
Üyelik tarihi:
12/2017
Mesajlar:
2.251
Teşekkür (Etti):
873
Teşekkür (Aldı):
610
Konular:
153
Alıntı:
CambazZz03´isimli üyeden Alıntı Mesajı göster
Kardeşim ben yapamadım yardımcı olur musun?
Visual Studio da C# konsol uygulamasını oluşturdum dnlibi ekledim. Program.cs e kodları ekledim. Derlemede hata almıyorum ama Şifrlenmesini istediğim programımı üzerine sürüklediğimde işlenmemiş özel durum oluştu hatası oluyor.

Aldığınız hatanın ekran alıntısını da ekleyebilirseniz yardımcı olabilirim veya hatayı kaçıncı satırda verdiği ?
23-03-2019 18:18
#4
BatHero - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Nereden:
Space
Mesajlar:
198
Teşekkür (Etti):
52
Teşekkür (Aldı):
16
Konular:
36
bunu video olarak çekersen daha kolay anlaşılabilecek gibi duruyor yinede baya emek vermişsin teşekkürü hak ettin
Kullanıcı İmzası
Hedef gelecek.
23-03-2019 18:34
#5
bergeNN - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2019
Nereden:
İzmir
Mesajlar:
17
Teşekkür (Etti):
2
Teşekkür (Aldı):
1
Konular:
0
video olsaydı daha iyi olabilirdi yeni gelen arkadaşlar için
Konu Tegin tarafından (25-03-2019 12:36 Saat 12:36 ) değiştirilmiştir.
23-03-2019 21:58
#6
CambazZz03 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Mesajlar:
28
Teşekkür (Etti):
12
Teşekkür (Aldı):
3
Konular:
4
Alıntı:
Phemis´isimli üyeden Alıntı Mesajı göster
Aldığınız hatanın ekran alıntısını da ekleyebilirseniz yardımcı olabilirim veya hatayı kaçıncı satırda verdiği ?
Ekran Görüntüsü
Kullanıcı İmzası
İntikam Geçerli Bir Hamle Değil, Duygusal Bir Tepkidir...
23-03-2019 22:14
#7
Phemis - ait Kullanıcı Resmi (Avatar)
Junior Hunter
Üyelik tarihi:
12/2017
Mesajlar:
2.251
Teşekkür (Etti):
873
Teşekkür (Aldı):
610
Konular:
153
Alıntı:
CambazZz03´isimli üyeden Alıntı Mesajı göster
Ekran Görüntüsü

Satır 38 ' de oluşan hata dosya yolu ile alakalı bir sıkıntıdır.
Satır 38 ' e bakarsanız göreceksiniz ki SifrelenenUygulama output'unu veriyor.
Dosya konumu içerisinde SifrelenenUygulama Adlı başka bir uygulama olabilir.
Şifreleyeceğiniz uygulama ile StringEncryption ' u aynı dosyada tutarak deneyin bir de ve üstteki maddeyi dikkate alarak.
24-03-2019 10:43
#8
CambazZz03 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Mesajlar:
28
Teşekkür (Etti):
12
Teşekkür (Aldı):
3
Konular:
4
Alıntı:
Phemis´isimli üyeden Alıntı Mesajı göster
Satır 38 ' de oluşan hata dosya yolu ile alakalı bir sıkıntıdır.
Satır 38 ' e bakarsanız göreceksiniz ki SifrelenenUygulama output'unu veriyor.
Dosya konumu içerisinde SifrelenenUygulama Adlı başka bir uygulama olabilir.
Şifreleyeceğiniz uygulama ile StringEncryption ' u aynı dosyada tutarak deneyin bir de ve üstteki maddeyi dikkate alarak.
Aynı klasöre atıp denedim yine aynı hatayı verdi ve klasörün içinde SifrelenenUygulama adında bir program yok. Videolu şekilde anlatabilir misiniz? Nerede hata yaptığımı anlayamadım.
Kullanıcı İmzası
İntikam Geçerli Bir Hamle Değil, Duygusal Bir Tepkidir...
24-03-2019 11:30
#9
Tochza - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
07/2017
Nereden:
/index.php
Mesajlar:
148
Teşekkür (Etti):
10
Teşekkür (Aldı):
43
Konular:
35
Çok iyi ben önceden kendi encryption algoritmamı yazmıştım biraz dandikdi bu biraz daha seri olucak gibi gözüküyor
Kullanıcı İmzası

Vаtаn için ölmek de vаr, fаkаt borcun yаşаmаktır.
28-03-2019 03:32
#10
Scortex - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
10/2018
Mesajlar:
8
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Konular:
2
Derlenmiş hali yok mu?

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı