Şifrelenen (.exe .dll .vb) Yazılımların Kaynak Kodlarını Bulma

MR_burak01

Kilopat
Katılım
27 Aralık 2015
Mesajlar
146
Daha fazla  
Cinsiyet
Erkek
.EXE, .DLL ve Setup yazılımlarının şifrelenmesi ile ilgili internette geniş çağlı araştırma yaptım. Fakat hala anlamadığım bir kaç sorum var. Bu konu hakkında tecrübeli ve deneyimli kişilerin eğer vakti varsa şu sorulara bir göz atmasını rica ediyorum. :)
  1. Obfuscator ve buna benzer işlemler ile şifrelenen bir setup, .dll yada .exe gibi uygulamaların kaynak kodlarını tekrar okunabilir ve anlaşılabilir halde nasıl dönüştürebilirim?
  2. Obfuscator yönteminden daha üst, programın kırılmasını saatler harcatacak başka bir yöntem var mıdır?
  3. Peki bu şifreleme işlemleri nasıl bir sistem ile kodların okunabilirliğini zorlaştırıp farklı sembollere çeviriyor?
  4. Bu semboller dilin biçimi değiştiği halde nasıl okunabiliyor?
  5. Açtığım bazı .exe uygulamaların kodlarının Obfuscator edilmiş ve karışmış şekilde değilde, hiç gözükmediğini ve "Desteklenmiyor" şeklinde bir çok Decompiler programında hata verdiğini gördüm. Bu gibi yazılımların hiç açılmamasının sebebi nedir? Özel bir işlem mi kullanılmıştır?

8584.png
794975645.png
975645756.png


NOT: Obfuscator ve daha farklı yöntemler hakkında geniş çaplı bilgisi olan arkadaşların yazdığım sorular dışında da bilgiler vermesini rica ederim. Google'da bu konuda araştırma yapan arkadaşlara da yardımımız dokunmuş olur. Bu konular hakkında ayrıntılı makalelerin linklerini de yorumlara yazabilirsiniz. Teşekkür Ederim.
 
Son düzenleyen: Moderatör:
Şimdi bu konu için diyeceklerim çok fazladır.
En azından şunu söyleyeyim "Obfuscator" yaptığı şey sadece kodları karıştırmak. Tabi karıştırılan kodlarda bazı "Deobfuscator" araçları ile temizleyebiliriz.

Örnek olarak : GitHub - 0xd4d/de4dot: .NET deobfuscator and unpacker. gibi.
Bu dediğim dışında çok iyi programlama bilmemiz lazım ki neye müdahale yaptığımızı bilelim.

NOT: Bu dediğim yöntem yalnızca ".NET" ile yazılmış programlarda geçerlidir.
 
Şimdi bu konu için diyeceklerim çok fazladır.
En azından şunu söyleyeyim "Obfuscator" yaptığı şey sadece kodları karıştırmak. Tabi karıştırılan kodlarda bazı "Deobfuscator" araçları ile temizleyebiliriz.

Örnek olarak : GitHub - 0xd4d/de4dot: .NET deobfuscator and unpacker. gibi.
Bu dediğim dışında çok iyi programlama bilmemiz lazım ki neye müdahale yaptığımızı bilelim.

NOT: Bu dediğim yöntem yalnızca ".NET" ile yazılmış programlarda geçerlidir.

Peki bu bahsettiğiniz "Deobfuscator" işlemi hangi tip şifreleri çözebilir? Her şifreyi çözebilir mi?
 
Dediğim "Deobfuscator" desktekleri saymakla bitmez. En azından şunu söyleyeyim "Decompiler" için koruma alan neredeyse tüm "Obfuscator " sürümlerinde geçerlidir. Yalnız "Confuser" gibi "Obfuscator" türlerinin sadece kodlarını temizler eğer içinde şifrelenmiş sonradan belleğe yüklenen DLL, EXE, OCX, SCR varsa bu türleride "Unpack" yazılımlarıyla "Unpack" edebilirsiniz. Dediğim gibi bu konu üzerinde çok söylenecek bilgi vardır. Kısmen söyleyebileceklerim bunlardır.
 
Dediğim "Deobfuscator" desktekleri saymakla bitmez. En azından şunu söyleyeyim "Decompiler" için koruma alan neredeyse tüm "Obfuscator " sürümlerinde geçerlidir. Yalnız "Confuser" gibi "Obfuscator" türlerinin sadece kodlarını temizler eğer içinde şifrelenmiş sonradan belleğe yüklenen DLL, EXE, OCX, SCR varsa bu türleride "Unpack" yazılımlarıyla "Unpack" edebilirsiniz. Dediğim gibi bu konu üzerinde çok söylenecek bilgi vardır. Kısmen söyleyebileceklerim bunlardır.
Dediklerini tam anlayamadım.
"Decompiler" için koruma alan neredeyse tüm "Obfuscator " sürümlerinde geçerlidir
Derken?
Bide şu Unpack olayını ilk defa duydum.
Ayrıca yukarıdaki sorularıma açıklamalı olarak cevap verebilir misin?
Yazabileceğiniz ne varsa yazın. :) Ben bu postu o yüzden açtım. Kısa açıklamalar olmasın lütfen hani... yazabilecek olanlar yazsın. :)

Bir çok kişi gördüğü halde kimse cevap vermemiş. :) Hani en azından araştırabileceğim kaynak gösterin. İngilizce, Türkçe fark etmez varsa tabi Türkçe olsun. Bilgilerinizi paylaşın bekliyorum. :D

Bir bakarsanız sevinirim.
@Recep Baltaş @Ali Güngör @THE_MILLER
 
  • Obfuscator ve buna benzer işlemler ile şifrelenen bir setup, .dll yada .exe gibi uygulamaların kaynak kodlarını tekrar okunabilir ve anlaşılabilir halde nasıl dönüştürebilirim?
  • Yazılım VB.NET ile yapılmışsa ulaşırsınız, C++ ise kaynak kodlara ulaşma şansınız yok.

  • Obfuscator yönteminden daha üst, programın kırılmasını saatler harcatacak başka bir yöntem var mıdır?
  • Elbette, VMProtect, Themida gibi yazılımlar buna ön ayak oluyor.

  • Peki bu şifreleme işlemleri nasıl bir sistem ile kodların okunabilirliğini zorlaştırıp farklı sembollere çeviriyor?
  • Kendi dilleri mevcut bunu açıklamak basit bir şey değil, kendi alfabenizi oluşturup o alfabede günlük tutuyormuşsunuz gibi düşünün, sadece siz anlayabilirsiniz. :)

  • Bu semboller dilin biçimi değiştiği halde nasıl okunabiliyor?
  • Yukarıda belirttiğim gibi.

  • Açtığım bazı .exe uygulamaların kodlarının Obfuscator edilmiş ve karışmış şekilde değilde, hiç gözükmediğini ve "Desteklenmiyor" şeklinde bir çok Decompiler programında hata verdiğini gördüm. Bu gibi yazılımların hiç açılmamasının sebebi nedir? Özel bir işlem mi kullanılmıştır?
  • Bunun sebebi ekran görüntüsündeki programın sadece VB.Net altyapısını kırabildiğinden. Mesela oraya C++ program koyarsanız desteklenmiyor hatası alırsınız. Veya unpack edilmemiş bir program atarsanız yine aynı şekil uyarı alırsınız. Yani buradaki temel etken programın obfuscate ediliş yöntemini tespit edip deobfuscate etmek. Şifrelemeyi tespit etmek için PID adlı programı kullanabilirsiniz.
 
  • Obfuscator ve buna benzer işlemler ile şifrelenen bir setup, .dll yada .exe gibi uygulamaların kaynak kodlarını tekrar okunabilir ve anlaşılabilir halde nasıl dönüştürebilirim?
  • Yazılım VB.NET ile yapılmışsa ulaşırsınız, C++ ise kaynak kodlara ulaşma şansınız yok.

  • Obfuscator yönteminden daha üst, programın kırılmasını saatler harcatacak başka bir yöntem var mıdır?
  • Elbette, VMProtect, Themida gibi yazılımlar buna ön ayak oluyor.

  • Peki bu şifreleme işlemleri nasıl bir sistem ile kodların okunabilirliğini zorlaştırıp farklı sembollere çeviriyor?
  • Kendi dilleri mevcut bunu açıklamak basit bir şey değil, kendi alfabenizi oluşturup o alfabede günlük tutuyormuşsunuz gibi düşünün, sadece siz anlayabilirsiniz. :)

  • Bu semboller dilin biçimi değiştiği halde nasıl okunabiliyor?
  • Yukarıda belirttiğim gibi.

  • Açtığım bazı .exe uygulamaların kodlarının Obfuscator edilmiş ve karışmış şekilde değilde, hiç gözükmediğini ve "Desteklenmiyor" şeklinde bir çok Decompiler programında hata verdiğini gördüm. Bu gibi yazılımların hiç açılmamasının sebebi nedir? Özel bir işlem mi kullanılmıştır?
  • Bunun sebebi ekran görüntüsündeki programın sadece VB.Net altyapısını kırabildiğinden. Mesela oraya C++ program koyarsanız desteklenmiyor hatası alırsınız. Veya unpack edilmemiş bir program atarsanız yine aynı şekil uyarı alırsınız. Yani buradaki temel etken programın obfuscate ediliş yöntemini tespit edip deobfuscate etmek. Şifrelemeyi tespit etmek için PID adlı programı kullanabilirsiniz.
Cevaplarınız çok güzel. Bu işi geçici olarak ara verdim. Tekrar döndüğümde konu hakkında sorularıma devam edeceğim. Teşekkürler. :D
 

Yeni konular

Geri
Yukarı