Obfuscate nedir?

Katılım
10 Mart 2022
Mesajlar
1.195
Çözümler
46
Merhabalar, karşıma "Obfuscate" terimi çıktı ve kabaca araştırdığımda bir kodun okunurluğunu "gizlediğini ve zorlaştırdığını" gördüm.

Bunun ne olduğu hakkında, nasıl olduğu hakkında, nasıl yapıldığı hakkında ve nasıl kırılacağı hakkında bilgi sahibi olmamı sağlayacak bir kaynak var mı? (İngilizce olabilir sıkıntı olmaz.)
(Kendim de biraz baktım fakat tam anlamadım.. Fikirlerinizi ve önerilerinizi merak ediyorum.)

Sorum ve soru şeklim yanlış ise bunun hakkında da bilgilendirirseniz sevinirim.

@Vavien. @Eray T @Ecmel Rahatsızlık veriyorsam kusura bakmayın.
 
Son düzenleme:
İlk defa duydum. İşim olduğu için araştıramayacağım. Google amca make obscure, unclear, or unintelligible. dedi. Aklıma sitelerin JavaScript kodlarını ufaltması (değişkenlerin hepsini tek harf yapıp tüm dosyayı tek satırda yapmak) geldi. Neden yapıldığını tam olarak bilmiyorum. Muhtemelen birden fazla sebebi vardır.
 
Merhabalar, karşıma "Obfuscate" terimi çıktı ve kabaca araştırdığımda bir kodun okunurluğunu "gizlediğini ve zorlaştırdığını" gördüm.

Bunun ne olduğu hakkında, nasıl olduğu hakkında, nasıl yapıldığı hakkında ve nasıl kırılacağı hakkında bilgi sahibi olmamı sağlayacak bir kaynak var mı? (İngilizce olabilir sıkıntı olmaz.)
(Kendim de biraz baktım fakat tam anlamadım.. Fikirlerinizi ve önerilerinizi merak ediyorum.)

Sorum ve soru şeklim yanlış ise bunun hakkında da bilgilendirirseniz sevinirim.

@Vavien. @Eray T @Ecmel Rahatsızlık veriyorsam kusura bakmayın.
Obfuscate, bir kodu şifrelemekdir. En basiti Python'daki "pyarmor". Bunları kırmak biraz zor.
 
İşim olduğu için araştıramayacağım.
Problem değil, mesajınız için teşekkürler. :)

Obfuscate, bir kodu şifrelemekdir. En basiti Python'daki "pyarmor". Bunları kırmak biraz zor.
Öğrenebileceğim, araştırabileceğim güzel bir kaynak biliyor musunuz? Teşekkürler..
(Daha çok JavaScript üzerine düşünüyorum fakat eğer ki hepsi aynı mantıksa bir problem yok, hepsine açığım. :))
 
Problem değil, mesajınız için teşekkürler. :)


Öğrenebileceğim, araştırabileceğim güzel bir kaynak biliyor musunuz? Teşekkürler..
(Daha çok JavaScript üzerine düşünüyorum fakat eğer ki hepsi aynı mantıksa bir problem yok, hepsine açığım. :))
Kaynak olarak bildiğim pek yok, anlatan da çok yok zaten. Genel mantığını ve kullanılan terimleri biliyorum.
 
Obfuscate şifeleme değildir, karıştırma'dır.

Özellikle high level diller ile kullanılıyor. Örnek vereyim;

C# dili ile yazılan bir yazılım dotPeek yazılımı ile kaynak kodları okunabilir.

Ancak Obfuscate uygulanmış bir yazılım kaynak kodu doğrudan okunamaz. Sanki Not Defteri ile DLL açmış gibi düşünün. Karışık tuhaf yazılar çıkar.

Class isimleri, resim isimleri vb. tüm içerik karıştırılır. Bu sayede ilgili programın içerisinde ne varsa karışır.

Bu sayede doğrudan okumak engelleniyor. Ancak program olduğu gibi çalışmaya devam ediyor. Onfuscate yapan programlar, yazdığınız yazılımın meta veri kimliğini üzerinde değişiklik yapıyor.

O yüzden Anti-Virüs yazılımları tarafından zararlı olarak algılanabiliyor.
 
Son düzenleme:
Obfuscate şifeleme değildir, karıştırma'dır.

Özellikle high level diller ile kullanılıyor. Örnek vereyim;

C# dili ile yazılan bir yazılım dotPeek yazılımı ile kaynak kodları okunabilir.

Ancak Obfuscate uygulanmış bir yazılım kaynak kodu doğrudan okunamaz. Sanki Not Defteri ile DLL açmış gibi düşünün. Karışık tuhaf yazılar çıkar.

Bunu şöyle yapıyor; Kodların salt metin olarak tutulduğu ve çalıştığı 2 katman var.

Salt metin katmanı Obfuscate ile karıştırılıyor. Bu sayede doğrudan okumak engelleniyor. Ancak program olduğu gibi çalışmaya devam ediyor. Onfuscate yapan programlar, yazdığınız yazılımın meta veri kimliğini değiştiriyor.

O yüzden Anti-Virüs yazılımları tarafından zararlı olarak algılanabiliyor.
Ne kadar ilginç şeyler.. Vakit ayırdığınız için teşekkürlerimi iletiyorum. :)
 
Genelde Obfuscation yazılan kodun çalınmaması için yapılır.

Java'dan örnek verecek olursak diyelim bir uygulama geliştirip bunu .jar dosyası hâlinde sattınız. Java programları Compile edildiği için Bytecode'a yani .class dosyalarına dönüştürüldü. Bytecode direkt olarak anlaşılamaz ama bir Decompiler yardımıyla son yapılan Compilation işlemi geri sarılıp okunabilir hâle getirilebilir. Bunu engellemek ve kodunun çalınmasını önlemek için de geliştiriciler Obfuscation'a başvurur.

Değişkenlerin, classların ve bir çok objenin isimleri anlaşılamaz şekilde Obfuscation araçları vasıtasıyla Compile edilmeden önce değiştirilir. Böylece .jar dosyası elinde olsa da koda erişmek isteyenler koddan hiçbir şey anlayamaz.

Soldaki kod, geliştirici tarafından yazılan orijinal kod. Gayet anlaşılır ve okunabilir. Ancak Obfuscate edilmiş sağdaki versiyonu a, b gibi anlamsız değişkenlerle anlaşılmaz duruma getirilmiş.

1678563992558.png
 

Yeni konular

Geri
Yukarı