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

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
chORKL.png


Q7cBIz.png

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.


H5GOf7.png


Ö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

9ZHHtn.png


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...

xQQSfm.png


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.

AXV8te.png


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

BKSbta.png


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

H5GOf7.png


KODLAMAYA GEÇELİM / StringEncryption


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


N3dsZA.png


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


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



zRKxX7.png



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


abef8g.png

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

qFz4wG.png


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

5Ba36T.png


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



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

txWBwW.png


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)
hskWWv.png



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

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



H5GOf7.png


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.


SOLjRG.png


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.


GB7uWg.png




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.
 

CambazZz03

Yeni üye
24 Mar 2018
30
0
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.
 

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
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 ?
 

BatHero

Üye
26 Mar 2018
236
1
Space
bunu video olarak çekersen daha kolay anlaşılabilecek gibi duruyor yinede baya emek vermişsin teşekkürü hak ettin
 

bergeNN

Yeni üye
17 Mar 2019
29
0
İzmir
video olsaydı daha iyi olabilirdi yeni gelen arkadaşlar için
 
Moderatör tarafında düzenlendi:

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
Ekran Görüntüsü
zjo0gB.jpg


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.
 

CambazZz03

Yeni üye
24 Mar 2018
30
0
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.
 

Tochza

Üye
30 Tem 2017
146
0
/index.php
Çok iyi ben önceden kendi encryption algoritmamı yazmıştım biraz dandikdi bu biraz daha seri olucak gibi gözüküyor
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.