Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Uygulamaları TERS MÜHENDİSLİK uygulamalarına dayanıklı mı?
#11
Çalışan uygulama kırılır. Kimisi çabucak, kimisinin kırılması zaman alır. Bu konuda hem fikiriz.

- Sizin için bir senaryo üretelim;

* Henüz lisans alınmamış bir proje açıldı, başlıkta lisans yok mesajı görüldü. Bu mesajın görüldüğü yerden hareket ile nereye bakılacağı konusunda hedef bizatihi proje yazarı tarafından verilmiş oldu.

* Bunun tersine, aslında başlıkta varsayılan olarak bir "Lisanslı Değil" mesajı olduğu biliniyor olsun. Bu defa lisanslı bir proje açıldı ve bu başlığın değiştiği nokta araştırıldı. Yine bizatihi proje yazarı tarafından nereye bakılacağı konusunda hedef verilmiş oldu.

- Bu iki satırı neden yazdım. Tersine mühendislik yapan kişi kısıtlamanın devreye girdiği veya devreden çıktığı noktaya odaklanmaya çalışacaktır. O noktada seri no karşılaştırması, uzak sunucu erişim / kontrol, dongle kontrolü vb. işlemi yaptığı yere odaklanmaya çalışacaktır. 

- Projede bir lisanslama sitemi olacaksa, tersine mühendislik erbabının canını sıkmaya çalışmak için strateji belirlemek lazım. Bir youtube videosu ile her önüne gelen değil nitelikli bir tersine mühendislik erbabının önüne gidecek kadar zorluk(lar) eklemek lazım. 

* Örneğin anlık değil de değişken zaman diliminde (bazen 1 saat bazen 1 gün sonra) lisans kontrolü sağlandığını düşünün. Hatta bir adım daha ileri gidelim, projenin işlevine yönelik işlem yapılmadığı sürece lisans kontrolü de yapılmasın mesela. Bu durumda tersine mühendislik erbabı projenizi öğrenmek usulüne uygun denemek zorunda da kalacaktır.  

Bunlar can sıkıcı olmayacak mıdır? Çünkü yapılan işlemin sonuç verip vermediği kontrolünü yapmak için bile zaman gerekecektir.   

- Geriye yazdığınız projenin piyasa değeri ile nitelikli tersine mühendislik erbabına verilecek paranın, atılan taş ürkütülen kurbağa hesabına dönecektir.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#12
Bir .NET uygulamasına nazaran, Bir Delphi uygulamasının tersine mühendislik operasyon işlemleri gerek zaman açısından, gerek emek açısından daha maliyetli olur. DLL çıktısı üreten dosyaların makine dilinden geri döndürülmesi oldukça pratik bir şekilde sağlanabilir ancak Delphi'nin kaynak kodlarına geri döndürülebilmesi o kadar da kolay değil. Belirli bir seviyede düşük seviye programlama bilgisi elzemdir. Buna ek olarak tersine mühendislikle ilgili gereken işlemleri doğru aşamalarda, doğru metodlarla sağlamak gerekir. Obfuscatory ve benzeri yaklaşımlar tam anlamıyla kodun okunaklılığını aradan çıkartan, kodu karmaşıklaştıran ek kütüphanelerden ibaret. Gitme yolunu gizlemiş olsanız da varış noktasından ayak izlerinizi ve sizi doğru analiz ederek, nereden geldiğinizi saptayabilir. Tabi bunun için de birçok parametre ve olay var.
Cevapla
#13
Bir zamanlar Tersine Mühendislik işleriyle eskiden uğraşmışlıpım vardı.
Zaten Kırılmayacak, Seriali bulunmayacak program yoktur, Sadece bu iş zaman alır.
Bazı crackcılar bu işlerle o kadar haşir neşir olmuşlar ki neredeyse Disassembler Dahi kullanmaya gerek görmüyorlar, (editplus, w32dasm, DeDe, winhex,ollydbg debugger gibi) Shift Text Asm dönüşümlü Hex editörde bir kaç sayfa kurcaladıktan sonra gözüne aşina olduğu text bloğunun içindeki 75 = jne, 74=je, Nop=90, gibi gördüğü yerleri değiştirip 2 dakikada kırabilir duruma gelmişler, tabi bu packer ile kullanılmayanlarda yapılıyor. Sıkıştırıcı ve Paketleyici ile kullanılanlarda ise bunu Ram çöplüğünden ayıklayıp ramda çalışan exe yi harddiske indiren scriptler de üretmişler (quickunpack, peid gibi)
olayı anlamak açısından öğrendiğim bir konu daha var serial bulmaca, Bu seriali bulmak asm bilen biri için patch yapmaktan daha eğlenceli, o da yazılımınızın kodları asm ye çevrilince serial ile ilgili asm kodu ollydbg de yavaş yavaş trace ediliyor seriali hesaplayan asm kod döngüsü masm (makro asm) de serial için  hazırlanmış minik bir masm projesinin içine implemente edilip derleniyor ve ortaya bir keygen çıkıyor
Ben de bunlara karşı sağlam bir korunma yöntemi bulamadım.
Timer kontrollü yada random timing kontrolü de çok hoş ve mantıklı, veya benim aklımda dummy serial hata mesajı göstererek crackeri yüzlerce dummy mesaja (shomessage) yönlendirip oralarda bocalayıp durmasını sağlamak, gerçek serial kontrolünü ise serial kontrolünü yapan bir fonksiyon /prosedür yazarak ve fonksiyon/ prosedür içinde çok sayıda sahte serial hesaplama gibi görünen karışık işlemler if else while repeat bir sürü eşit değilse tarzında işlemler yapıp asıl serial kodunuzu buraya sıkıştırıp sessiz sedasız random timing ile webden de karşılaştırmak veya programın 3.4.5.ci açılışlarında işler hale getirmek
Crackeri yorar bu, ama yinede bir şekilde, apilerle, handle no larla, modül dallanmalarıyla, call, jump to offset değerleriyle buluyorlar, 30 günlük demo süre bitince ortaya serial isteyen nag ekranını, skip ettiren programın main formu olan açılış ekranına yamayan ve ömür boyu doğrudan çalışan entry pointi main forma bağlayan start offset jump to mainform offset kaynaklama yöntemlerinden tutun, duyarsızlaştırma (nop'lama=90) her türlü yöntem kullanılıyor
Bir yol daha var yazmadan geçmeyelim, o da dll içinde serial hesaplatın, bu da düşük  seviye crackerlere itici gelir, iter ama üst seviyeciler için tereyağlı ekmektir.
Universal GENERIC Cracking denen kalıplaşmış Efsane bir yöntem görmüştüm, Adobenin neredeyse tüm versiyonlarına, yan ürünlerine de oluyordu, After Effects 4. 0 ü için yazılmış bir crack, Adobenin 6.0, hatta Çok çok sonraları üretilmiş başka Photoshop veya Farklı bir firmanın herhangi bir Yazılımlarına da oluyordu her birinde kullanılan serialleri farklı olmasına rağmen Universal Generic Patch içine kodlanmış Standart Asm dizileri ile kırılacak exe, dll içinde ilgili sabit operatörleri bulup değiştirilip yazılım kırılıyordu. (bunun nedeni o firmanın yazılımcıları, aynı serial algoritmasını kullanan  komponentleri tüm projelerinde kullanmalarıydı turbopower gibi) asm de comparate (şartlı eşitleme) yapılacak offsete artık bakılmadan exeyi sanki sabit boyutlu bir veritabanıymış gibi kullanan bu yönteme (generic patching'e) ben SROP diyordum, Bu patcher, exe içinde ne kadar değişilmesi gereken hex tipinde type case sensitive şeklinde exe içinde bulduğu hex dizisini seek ediyor yani veritabanında nasılki (UPDATE TABLO SET ADISOYADI = 'MAHO', ADISOYADI ='BİLO' ) gibi eski hex veriyi yeni hex verisiyle değiştime yönteminin aynısıdır. Her ikisi de dosya içinde byte uzunluğuğu kadar seeking find and replacing writing closefile gibi basit dosya işlemleri gibi okuma bulma edit yazma, dosyayı kapama ile iş bitirilir
En Kolay kırılan kolaydan zora => C++, C# Ve Delphidir, VisualBasic Windows Dll Library (örn:msvbvm40. dll gibi) kullandığından Patchde Çok gıcıktır ve çok uğraştırır, ama Serial bulmada Basit ramı okuyan Winhex editörü vbasic ürününün hakkından geliyor.
Phyton da vbasic gibi kırılması zordur, bunu hiç denemedim ve crackingi burada bitirdim bir daha uğraşmadım, yazılıma yöneldşm, fakat farklı araçlar kullanıldığını okumuştum, Dikkatimi çeken şey C++ ve Delphi asm de birbirine çok benzer jumper ağırlıklıdır, C# ve VisualBasic ile kodlanmış exeler de asm de birbirine benzer ve bunda ise Call ağırlıklıdır.

Meraktan birtane dUP patcher (diablo2oo2 patcher) yapıp, içinde basitçe if else karşılaştırması yapan (Search and Replace operatin SROP) asm kodları olan bir patch derleyip exelerin içinde belli yerlerdeki if else then not goto or gibi belirlediğim (kafadan sallamadığım) yanyana bulunan conditional jumper ve comparate yapan bir kaç operatörü içeren Herşeye ters mühendislik uyguluyordum, bazen exe ler sakatlanabiliyorlardı hatta bi ara tesadüfen, ekrana ikide bir rastgele çıkan ücretli nag ekran salgılayan bir exeye gömülü komponenti kırmıştım, Bunun bpl sine de uygulayınca o da full oldu, halen arşivimde duruyor.
Yani kısacası ne yaparsak yapalım kırıyorlar, o kadar emek verdik yazılıma Vicdonsız Nommıssız Qıbraq Zalımlar siziBig Grin
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 10.4.2 de apple ios ekran sorunu tayipk 4 465 03-04-2021, Saat: 15:39
Son Yorum: Abdullah ILGAZ
  Delphi Admob Failed to load 3 hatası çözümü hakanharbeli 1 1.362 02-03-2021, Saat: 19:38
Son Yorum: gbg
  FGX Delphi 10.4.1 Edit Repack atilim07 7 1.321 10-01-2021, Saat: 22:36
Son Yorum: Mr.Developer
  Delphi FMX Android, Form Görüntüleme Sorunu. hayalyilmaz43 3 875 26-12-2020, Saat: 04:58
Son Yorum: hayalyilmaz43
  delphi 10.4.1 desteği ile rtmp live camera componenti. fkork 2 682 16-12-2020, Saat: 09:16
Son Yorum: RAD Coder



Konuyu Okuyanlar: 1 Ziyaretçi