Yazar ve Destek Ekibi Alımları Aktif!
Merhaba Ziyaretçi!, Forumumuzun yazar ve destek ekibine katılmak ister misiniz? Yetkili market, yetkili sistemi ve başvuru formu gibi birçok bilgiye ulaşmak için buraya tıklayın.
Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Bir plugin yapıyorum ve bunu etrafa yaymayı düşünüyorum içine bir lisans sitemi ekleyeceğim ama alanlar decompile edip düzeltip kullanabilirler bunu nasıl engellerim, birazcık araştırdım internette bütün obf leri decompile edebilen uygulamalar var neredeyse bütün obf leri çözdüklerini iddia ediyolar, bunu profesyoneller nasıl engelliyorlar bilen birisi yardımcı olursa sevinirim.
"bunu profesyoneller nasıl engelliyorlar" engelleyemiyorlar, yapabildikleri sadece kod okunabilirliğini en aza indirmek kadar. sende istediğin kadar şifrele, zaten lisans sınıfın sırıtacaktır :D karşı taraf bunu bulup direk müdahale edip uygulamaya/eklentiye tam erişim sağlar.
örneğin adobe, image line'ın fruity loops (fl studio, hem de eklentileriyle beraber), cubase, logic pro, auto cad, microsoft uygulamaları... her biri crackleniyor.
ayrıca "bir plugin yapıyorum ve bunu etrafa yaymayı düşünüyorum" açık kaynak olmayan eklentilere kullanıcılar pek yanaşmazlar, belki içine onların anlamayacağı gizli op komutu falan koyacaksın :D? ya da satış yapacak olsan bile yine de yukarıda söylediklerim geçerli olur. her sürümde farklı yöntemler/sınıflar kullanarak belki işleri yavaşlatabilirsin ama işin sonu her zaman aynı yere varır.
"bunu profesyoneller nasıl engelliyorlar" engelleyemiyorlar, yapabildikleri sadece kod okunabilirliğini en aza indirmek kadar. sende istediğin kadar şifrele, zaten lisans sınıfın sırıtacaktır :D karşı taraf bunu bulup direk müdahale edip uygulamaya/eklentiye tam erişim sağlar.
örneğin adobe, image line'ın fruity loops (fl studio, hem de eklentileriyle beraber), cubase, logic pro, auto cad, microsoft uygulamaları... her biri crackleniyor.
ayrıca "bir plugin yapıyorum ve bunu etrafa yaymayı düşünüyorum" açık kaynak olmayan eklentilere kullanıcılar pek yanaşmazlar, belki içine onların anlamayacağı gizli op komutu falan koyacaksın :D? ya da satış yapacak olsan bile yine de yukarıda söylediklerim geçerli olur. her sürümde farklı yöntemler/sınıflar kullanarak belki işleri yavaşlatabilirsin ama işin sonu her zaman aynı yere varır.
o zaman soruyu nasıl engellerim şeklinde değil nasıl yapmalarını zorlaştırırım şeklinde sorsam daha iyi olur mesela cracklemeyi çalışanlar uğraşacaklar uğraşacaklar her zaman bir yerden bir şekilde hata vercek veya çok uzun sürcek hangi obf leri nasıl kullanmalıyım lisans sistemini nasıl yapmalıyım vs.
o zaman soruyu nasıl engellerim şeklinde değil nasıl yapmalarını zorlaştırırım şeklinde sorsam daha iyi olur mesela cracklemeyi çalışanlar uğraşacaklar uğraşacaklar her zaman bir yerden bir şekilde hata vercek veya çok uzun sürcek hangi obf leri nasıl kullanmalıyım lisans sistemini nasıl yapmalıyım vs.
yapabileceğin en etkili yöntem şudur (fat jar & shading & obfuscation):
- eklentine depend kütüphaneler eklediysen onları compile (<scope>compile</scope>) olarak ekle, eklentinin içine doğrudan yerleşecekleri için biraz karmaşık görünmesini sağlayabilirsin.
- eklediğin o kütüphaneleri shading yap, bu eklentilerin kullandığı aynı kütüphanelerde çakışmayı engellemek için kullanılan bir yöntemdir, yapacağın şey, kütüphanenin belirli paketlerini kendi paketinin içinde göstermek.
örnekte gösterdiğim gibi, benim kütüphanemi kendi paketinin içinde tanımlayabiliyorsun. bu sayede eklentiyi decompile eden kişi direk kütüphaneyi de içeriye aktaracak (onların senin sınıfın olduğunu düşünecek) ve biraz karmaşa yaratacak.
- eklentinde ki utils sınıfları ve ana sınıfının dışında her bir paketi/sınıfı farklı kütüphane paketlerinin içinde dağıt.
mesela net.anemys.commonlib paketini oluştur ve bazı sınıflarını/paketlerini oraya aktar. eklenti build edildiğinde, bu paketler ile kütüphane paketleri birleşecektir. senin sınıfların/paketlerin artık kütüphanenin bir parçası olacak. decompile eden kişi bunun sadece net.anemys.commonlib kütüphanesi olduğunu düşünecek, ancak senin paketlerin/sınıflarının orada olup olmadığına pek bakmaz. çünkü senin paketine odaklanacaktır.
- maven bağımlılıklarını build sonrası temizle, eğer temizlemezsen eklentiyi altın tepside sunmuş olacaksın. build bittikten sonra eklentinde yer alan bütün maven bağımlılıklarını (pom.xml dosyaları vs) temizle.
- en sonunda obfuscation'u uygula, tavsiyem proguard.
gerçek senaryo:
- eklenti decompile tool açılır / gerekli lisans anahtar kelimeleri aranır. (link, senin api sunucunun adı vs...)
- aramada çıkan sonuçta ki sınıfların isimleri bir not defterinde tutulur ya da her işi aynı anda yapanlar varsa buna ihtiyaç duymaz.
- yönteme bağlı ide açılır ve sınıflar teker teker projeye dahil edilir ta ki eklentiyi kendisinin build edebilmesine kadar.
- daha önceden bulduğu lisans sınıfında modifiye yapıp eklentiyi rebuild eder.
- isteğe bağlı kötü yazılımı da içine eklemeyi ihmal etmez.
yani javadan yarım yamalak anlayan birisi bu engelleri geçemeyebilir ancak çok basit işlemlerdir. hatta sırf bunu yapacak decompile ve deobfuscation araçlar bile var. yaptığı tek şey anahtar sınıfı bulmak, gerekli kısımları editlemek ve kaydetmek.
yani evet, bir bakıma obfuscate etmek işleri zorlaştırsa da bypass edilebiliyor, bütün kodu okuyup incelemesine bile gerek yok neticede, eklentiyi açmayı engelleyen sınıfı modifiye etmek yeterlidir.
NOT: Leak eklenti kullanmayın, az önce de anlattığım gibi kötü yazılımları eklentiye eklemek çocuk oyuncağı. kötüye kullanılacak sınıfların sunucunuza ne tür zararlar vereceğini asla bilemezsiniz. belki x adına sahip bir oyuncu sunucuya girince otomatik op verebilir ? op koruma eklentileriniz varsa onları kapatabilir / bütün eklentilerinizi devre dışı bırakabilir ve bütün bunları sunucunuza girmeden bile yapabilir. github gibi mock api kullanacak bir sitede bi' json dosyası tanımlar ve eklenti arada bir onu checkler; tıpkı lisans/version kontrol etme sistemi gibi... eklenti jsonda verilen değerin "true" olduğunu görür görmez sunucunuza geçmiş olsun diyebilirsiniz. Kullanmayın/kullandırtmayın.
Bir plugin yapıyorum ve bunu etrafa yaymayı düşünüyorum içine bir lisans sitemi ekleyeceğim ama alanlar decompile edip düzeltip kullanabilirler bunu nasıl engellerim, birazcık araştırdım internette bütün obf leri decompile edebilen uygulamalar var neredeyse bütün obf leri çözdüklerini iddia ediyolar, bunu profesyoneller nasıl engelliyorlar bilen birisi yardımcı olursa sevinirim.
bre ilk önce skid basarsın üstüne zkmyi basıp bozarında crasheri basınca gaymak gibi calısıyor lisansıda tek sınıfa değil tüm sınıflardan çektirip her sınıfda çağırtırsın 2fa gibi bir sınıf düşerse diğer sınıf devam eder gaymak gibi