Projede .net gizleyici kullanıldığı için, Dotfuscator, xeoncode, foxit gibi birçok model çevrimiçi olarak aranmaktadır.
Ama çoğu ücret elbette kırılmış versiyonlar var ve şirket, korsan yazılımların kullanılamayacağını şart koşuyor.
Uzun aradıktan sonra sonunda ConfuserEX'i buldum ve kullanımı uygundu, bu yüzden hızlıca çıkarıp sizinle paylaştım.
İnternette Çince tanıtımlar çok az olduğundan, size göstermek için burada bir test yapacağım:
1. Yeni bir C# sınıf kütüphanesi oluşturun, adını değiştirmeyeceğim, sadece ClassLibrary1 adını vereceğim ve Class1.cs sınıfının altına basit bir metod ekleyeceğim:
2. Başka bir konsol uygulaması ConsoleTest oluşturun, bir referans ClassLibrary1.dll ekleyin ve ClassLibrary1.Class1'de test metodunu Ana yöntemde çağırın:
Derledikten sonra, ILSpy ile ConsoleTest.exe açın ve aşağıda gösterildiği gibi kaynak kodunu görebilirsiniz:
3, Şimdi ConfuserEx ile karıştırmaya çalışalım:
ConfuserEx'i indirdikten sonra, aşağıdaki şekilde ConfuserEx.exe açarak fermuarını açın:
4. "Buraya giriş modüllerini sürükle" komutunu görüyor musunuz?
Sonra ConsoleTest.exe hemen koyun, aşağıdaki resimde gösterildiği gibi:
5. Ayarlara Tıklayın
- Select Packer
- Modüller->ConsoleTest.exe
- Kurallar için + işaretine tıklayın, doğru
Aşağıda gösterildiği gibi:
6. Protesto Et!->Koruma! , başarılı dışa aktarma önerisi (Confused dizininde),
7. ILspy ile başla... Kafanız karıştı, kaynak koduna ConsoleTest.exe bakın:
Yöntem boşsa, ConsoleTest.exe bağımlılıklarının ClassLibrary1.dll'sini Confused dizinine kopyalayın, Run ConsoleTest.exe'a tıklayın ve doğru sonucu verin.
Not
8. Sadece exe dosyasını karıştırırsanız sorun yok, dll dosyasını karıştırırsanız aşağıdaki hatayı göreceksiniz:
Hata: Çalıştırılabilir modül yok, çalıştırılabilir gövde yok mu?
Exe dosyası yok mu? Hadi ConsoleTest.exe koyalım ve ClassLibrary1.dll ile karıştıralım, bak.
9. Önceki yönteme göre, ConsoleTest.exe ve ClassLibrary1.dll'yi ConfuserEx'e sürükleyip bırakıp karıştırdım.
Aşağıda gösterildiği gibi:
Hızlı başarı.
10. Ama tekrar açtık... Kafam karışık, sadece ConsoleTest.exe dosyaları karışmış buldum, nereye ClassLibrary1.dll?
DLL dosyasını karıştıramaz mısın?
Merak etme, tıklayalım ConsoleTest.exe deneyelim, ah, gidiyorum, başarılı çalışıyor, aşağıdaki resimde gösterildiği gibi:
Buradaki tek açıklama, ConfuserEx'in dll'yi exe'ye gömmesidir.
Şimdi kafa karıştırılmış ConsoleTest.exe 17KB, orijinal ConsoleTest.exe 5KB ve ClassLibrary1.dll da 5KB.
11. ILSpy kullanarak ConsoleTest.exe ve ClassLibrary1.dll karıştırdıktan sonra oluşan ConsoleTest.exe görelim.
Metodu göremiyorum, referans verilen dll dosyasını da göremiyorum.
Bugün bu kadar.
Eklenmiş: Öğle saatlerinde dll'yi ayrı ayrı karıştırmanın bir yolunu bulamadığım için, bu öğrenci öğleden sonra @四毛的家 bir yol buldu ve dll'yi ayrı ayrı karıştırmanın yolunu ekleyeceğim.
8. adıma göre, dll'i EXE yöntemine göre karıştırırken bir hata bildirildiğini tespit ettik ve aşağıdaki adımları takip etmeliydik:
DL'yi ConfuserEx'e sürükledikten sonra, Ayarlar'da Packer seçemezsiniz, ancak aşağıda gösterildiği gibi sağdaki kalem tuşuna tıklayabilirsiniz.
Kalem tuşuna tıkladıktan sonra Düzenle kuralı diyalog kutusu açılıyor, Preset'ten bir öğe seç, burada Maksimum'u seçiyorum ve aşağıdaki "+" butonuna tıklıyorum, anti ildasm seçiyorum (sanırım IL üzerinden derlemeyi önlemek için), ve ardından ihracat başarılı oluyor.
ILSpy kullanıyoruz, aşağıdaki şekilde gösterildiği gibi az önce karıştırılan ClassLibrary1.dll kontrol ediyoruz,
Hiçbir şey görünmüyor.
Mevcut gizlenmiş dll'yi test etmek için obfuscated olmayan ConsoleTest.exe ve gizlenmiş ClassLibrary1.dll'i tek bir dizine koydum, Run ConsoleTest.exe'a tıkladım ve başarılı oldum.
|