CrâckMe Çözümlemeye Nereden Başlamalıyım?

cemojr

Gold Üye
Katılım
30 May 2020
Mesajlar
105
Beğeniler
20
Merhaba arkadaşlar,
CrâckMe kategorisine yeni adım attım ve bu alanda kendimi geliştirmek istiyorum. Ancak nereden başlayacağımı tam olarak bilemiyorum. Şimdiye kadar birkaç temel bilgiye sahibim ama profesyonel bir yaklaşım geliştirmek ve daha karmaşık seviyelere ulaşmak istiyorum. Bu yüzden size şu soruları sormak istiyorum:


1. CrâckMe Nedir ve Nasıl Çözülür?

Bu tür uygulamaları çözmeye başlamadan önce ne tür temel bilgilere sahip olmam gerekiyor? Programlama dillerinden hangileri bu süreçte faydalı olur? Ayrıca, bu alandaki temel mantığı anlamak için önerdiğiniz bir kaynak var mı? Ek olarak hali hazırda biraz PHP biraz Python biliyorum. Birazdan kastım temel kod terimlerinin tamamını biliyor ve ufak çaplı projeler ortaya koyabiliyorum.


2. Hangi Araçları Kullanmalıyım?

CrâckMe çözümlerinde yaygın olarak kullanılan araçlar nelerdir?

  • Debugger: Hangi debugger'ı kullanmamı tavsiye edersiniz? (x64dbg, OllyDbg gibi)
  • Disassembler: Ghidra ve IDA Pro arasındaki farklar nedir? Hangisini öğrenmek daha mantıklı?
  • Diğer Araçlar: Hex editörler, packet analyzer veya başka araçlar var mı?

Aşağıya bu işe başlamak için hazırladığım WM Makinemin ekran görüntüsünü koyuyorum tavsiyeleriniz burada çok önemli.

aeTCJRivv.png



3. Analiz Sürecine Nasıl Başlamalıyım?

Bir CrâckMe uygulamasını indirip çalıştırdıktan sonra adım adım nasıl bir analiz süreci izlemeliyim? Örneğin:

  • İlk önce programı çalıştırıp gözlem mi yapmalıyım?
  • Debugger ile kod akışını izlemek için hangi adımları takip etmeliyim?
  • Şifreleme algoritmalarını tanımak için nasıl bir yöntem izlemeliyim?

4. Kod ve Şifreleme Çözümleri İçin Tavsiyeler

Eğer CrâckMe içerisinde XOR, Base64 gibi algoritmalar varsa, bu tür şifreleme yöntemlerini anlamak ve çözmek için hangi kaynaklardan faydalanmalıyım? Ayrıca, bu algoritmaları çözümlerken kullandığınız püf noktalar var mı? CyberChef gibi toolları aktif olarak kullanıyorum bu yeterli midir ?


5. İleri Seviye İçin Nasıl Çalışmalıyım?

İleri seviyeye geçmek için kendimi nasıl geliştirebilirim? Daha karmaşık CrâckMe'leri çözmek için ne tür beceriler edinmeliyim? Örneğin:

  • Assembly öğrenmek bu süreçte ne kadar önemli?
  • Kod güvenliği veya tersine mühendislik alanında uzmanlaşmak için hangi konulara odaklanmalıyım?

6. Pratik ve Kaynak Önerileri

Son olarak, pratik yapabileceğim güvenilir ve başlangıç seviyesine uygun CrâckMe örneklerini nereden bulabilirim? Eğer bildiğiniz güzel bir kaynak veya forum varsa, paylaşırsanız çok sevinirim.


Benim şu anki bilgilerim şunlar:

  • Programlama Dilleri: Python biliyorum, biraz C ve C# bilgim var. Biraz PHP bilgimde var.
  • Araçlar: Hex editör kullanmayı az çok biliyorum. Ancak debugger ve disassembler konusunda pek deneyimim yok.
  • İlgim: Daha çok algoritmaların mantığını çözmek ve şifreleme yöntemlerini anlamak istiyorum. Aynı zamanda temel programları cracklemek ve bunların lisans mantığını kavrayıp bu işte uzmanlaşmak istiyorum.
Yardımlarınız için şimdiden teşekkür ederim! Eğer sizin de bu yolda tecrübeleriniz varsa, fikirlerinizi paylaşabilir misiniz? 😊
CemoJR...
 
Detaylı bir yazı yazacağım arkadaşım ;

1. CrâckMe Nedir ve Nasıl Çözülür?

Öncelikle bu soruyu biraz daha değiştirelim , "CrâckMe'yi neden çözeriz" bu sorunun yanıtını vermen gerekiyor cracklemek temel olarak revers. eng. tersine mühendislik gerektiren bir olay. Temel olarak üreticinin bir koruması vardır ve sen tersine mühendislik yaparak bu korumayı bypass edersin. Bu en çok game hacking alanında kullanılır eğer ki gameHacking ile ilgilenmiyorsan hemen şimdi CrâckMe gibi uygulamarı çözmeye çalışmayı bırakmalısın , eline ne geçecek internette gördüğün bir CrâckMe yi çözmek sana bişey kazandıracak mı ? sorular bunlar .

2. Hangi Araçları Kullanmalıyım?

OlyDBG ve IDA işini görecektir . Başlangıç düzeyde olduğunu varsaydığım için bu iki program hariç tüm programları tamamen bilgisayarından kaldır . Çok ileri düzeyde bile bu ikisi hariç nadiren diğer programlar kullanılır. Ayrıca yine başlangıç düzeyinde olduğunu varsayarak söylüyorum olydbg kullanımını bilmen önemlidir, 10 tane programın kullanımını öğrenmek yerine olyDBG'ı yalayıp yutmak sana çok daha fazla kazanç sağlar , bir programın çalışma zamanından sonlandırılma zamanına kadar ihtiyacın olan her şeyi sana listeler.

3. Analiz Sürecine Nasıl Başlamalıyım?

Burada tekrar belirtmek istiyorum , olaya sadece "CrâckMe" olarak bakıyorsun öncelikle bunu aklından çıkar. Bu işi öğrendikten sonra büyük oranda anti Cheat'ler ile çalışmaya başlayacaksın : "Bir CrâckMe uygulamasını indirip çalıştırdıktan sonra adım adım nasıl bir analiz süreci izlemeliyim?" bu cümlenin doğrusu "Bir anti cheati çalışma zamanında inceleyebilmek için neler yapmalıyım" olacak. Bu çok derin ve detaylı bir husus burada iki cümle ile anlatmaya çalışıp yanlış yönlendirme yapmak yada kafanı karıştırmak istemem.

4. Kod ve Şifreleme Çözümleri İçin Tavsiyeler

XOR genel olarak asm de şifreleme için kullanılır ve basit bir yöntemdir bu noktada doğrudan chatgpt ile işe başlayabilirsin chatgpt ye doğru soruları doğru cümlelerle sorarsan alamayacağın yardım yoktur. BKZ:

17A0FE30 - 00 34 00 - add [eax+eax],dh

eax kaydındaki değerin iki katına erişip o bellek adresine dh kaydındaki değeri ekler. buda bizi başka bir bellek adresine götürür , sonra o bellek adresinde de bir takım işlemler olur oda başka bir bellek adresine götürür buna genelde dallanma deriz , oldukça eski ve basit bir yöntemdir. bu yazımdan anlayacağın üzere kod şifreleme ve çözümleme işlemleri için öncelikle bellek yapısını bilmen gerekir write & read memory fonksiyonlarının ne amaçla kullanıldığını bilmen gerekir ayrıca üzerinde çalıştığın uygulama bu fonkları nerelerde neden kullanmış bilmen gerekir bunların temeli ASM öğrenmekten geçer.


5.İleri Seviye İçin Nasıl Çalışmalıyım?

Burada bu sorunu cevaplamaya gerek yok kendini belli bir seviyeye getirdikten sonra kafanda yarattığın bu "CrâckMe" algısı zaten yok olacak nerelere bakman gerektiğini anlayacaksın.

6. Pratik ve Kaynak Önerileri

tekrardan bu cümleyi kurmak isterim "CrâckMe" kelimesini tamamen kafandan sil at senin olayın tersine mühendislik bunun için en uygunu örneğin super mario oyununun atari versiyonunu bul ve indir oyunu olydbg ile aç ve incele C.E kullanarak bellek adreslerinde tutulan değerleri gör değiştirdiğinde neler olacak onu gözlemle bir yandanda c++ öğrendiğini varsayıyorum bu süreçte öğrendiğin c++ ile birlikte mario için küçük bir hile yapabilirsin sadece write and read mem fonksiyonlarını bilerek hemde .

  • Programlama Dilleri: C++ öğrenmen gerekiyor hatta istek değil %100 ihtiyaçtır.
umarım yorumlarım sana ve bu işe başlamak isteyen diğer arkadaşlara faydalı olur elimden geldiğince basit ve sade anlatmaya çalıştım , yazdıklarım hakkında aklına takılan bir şey olursa diğer arkadaşlar ve sen konu altında belirtebilirsiniz lütfen sorularınız özel mesaj atarak sormayın bu konu altında belirtin ki herkes faydalansın iyi forumlar
 
Detaylı bir yazı yazacağım arkadaşım ;

1. CrâckMe Nedir ve Nasıl Çözülür?

Öncelikle bu soruyu biraz daha değiştirelim , "CrâckMe'yi neden çözeriz" bu sorunun yanıtını vermen gerekiyor cracklemek temel olarak revers. eng. tersine mühendislik gerektiren bir olay. Temel olarak üreticinin bir koruması vardır ve sen tersine mühendislik yaparak bu korumayı bypass edersin. Bu en çok game hacking alanında kullanılır eğer ki gameHacking ile ilgilenmiyorsan hemen şimdi CrâckMe gibi uygulamarı çözmeye çalışmayı bırakmalısın , eline ne geçecek internette gördüğün bir CrâckMe yi çözmek sana bişey kazandıracak mı ? sorular bunlar .

2. Hangi Araçları Kullanmalıyım?

OlyDBG ve IDA işini görecektir . Başlangıç düzeyde olduğunu varsaydığım için bu iki program hariç tüm programları tamamen bilgisayarından kaldır . Çok ileri düzeyde bile bu ikisi hariç nadiren diğer programlar kullanılır. Ayrıca yine başlangıç düzeyinde olduğunu varsayarak söylüyorum olydbg kullanımını bilmen önemlidir, 10 tane programın kullanımını öğrenmek yerine olyDBG'ı yalayıp yutmak sana çok daha fazla kazanç sağlar , bir programın çalışma zamanından sonlandırılma zamanına kadar ihtiyacın olan her şeyi sana listeler.

3. Analiz Sürecine Nasıl Başlamalıyım?

Burada tekrar belirtmek istiyorum , olaya sadece "CrâckMe" olarak bakıyorsun öncelikle bunu aklından çıkar. Bu işi öğrendikten sonra büyük oranda anti Cheat'ler ile çalışmaya başlayacaksın : "Bir CrâckMe uygulamasını indirip çalıştırdıktan sonra adım adım nasıl bir analiz süreci izlemeliyim?" bu cümlenin doğrusu "Bir anti cheati çalışma zamanında inceleyebilmek için neler yapmalıyım" olacak. Bu çok derin ve detaylı bir husus burada iki cümle ile anlatmaya çalışıp yanlış yönlendirme yapmak yada kafanı karıştırmak istemem.

4. Kod ve Şifreleme Çözümleri İçin Tavsiyeler

XOR genel olarak asm de şifreleme için kullanılır ve basit bir yöntemdir bu noktada doğrudan chatgpt ile işe başlayabilirsin chatgpt ye doğru soruları doğru cümlelerle sorarsan alamayacağın yardım yoktur. BKZ:

17A0FE30 - 00 34 00 - add [eax+eax],dh

eax kaydındaki değerin iki katına erişip o bellek adresine dh kaydındaki değeri ekler. buda bizi başka bir bellek adresine götürür , sonra o bellek adresinde de bir takım işlemler olur oda başka bir bellek adresine götürür buna genelde dallanma deriz , oldukça eski ve basit bir yöntemdir. bu yazımdan anlayacağın üzere kod şifreleme ve çözümleme işlemleri için öncelikle bellek yapısını bilmen gerekir write & read memory fonksiyonlarının ne amaçla kullanıldığını bilmen gerekir ayrıca üzerinde çalıştığın uygulama bu fonkları nerelerde neden kullanmış bilmen gerekir bunların temeli ASM öğrenmekten geçer.


5.İleri Seviye İçin Nasıl Çalışmalıyım?

Burada bu sorunu cevaplamaya gerek yok kendini belli bir seviyeye getirdikten sonra kafanda yarattığın bu "CrâckMe" algısı zaten yok olacak nerelere bakman gerektiğini anlayacaksın.

6. Pratik ve Kaynak Önerileri

tekrardan bu cümleyi kurmak isterim "CrâckMe" kelimesini tamamen kafandan sil at senin olayın tersine mühendislik bunun için en uygunu örneğin super mario oyununun atari versiyonunu bul ve indir oyunu olydbg ile aç ve incele C.E kullanarak bellek adreslerinde tutulan değerleri gör değiştirdiğinde neler olacak onu gözlemle bir yandanda c++ öğrendiğini varsayıyorum bu süreçte öğrendiğin c++ ile birlikte mario için küçük bir hile yapabilirsin sadece write and read mem fonksiyonlarını bilerek hemde .

  • Programlama Dilleri: C++ öğrenmen gerekiyor hatta istek değil %100 ihtiyaçtır.
umarım yorumlarım sana ve bu işe başlamak isteyen diğer arkadaşlara faydalı olur elimden geldiğince basit ve sade anlatmaya çalıştım , yazdıklarım hakkında aklına takılan bir şey olursa diğer arkadaşlar ve sen konu altında belirtebilirsiniz lütfen sorularınız özel mesaj atarak sormayın bu konu altında belirtin ki herkes faydalansın iyi forumlar
bilmediğimden soruyorum c++ ne için? benim bildiğim sadece reverse için temel assembly ve Crâck otomatikasyonu için py yeterli
 
bilmediğimden soruyorum c++ ne için? benim bildiğim sadece reverse için temel assembly ve Crâck otomatikasyonu için py yeterli
c++ şu anda güncel olarak programın hafızasında en kolay ve en detaylı değişiklik yapabildiğimiz programlama dili tersine mühendislik için c++ biçilmiş kaftan desek yeridir. reverse eng. için temel assembly bilmek seni 3-5 tane lamerin hazırladığı crackmeleri geçmek için idare eder ama temel asm bilginle VANGuard'ı geçip bu anti cheat üzerinde işlem yapamazsın, ayrıca genel olarak çok yanlış bir algı var bunu tekrar söylemekte fayda var arkadaşlar CrâckMe çözmek sizi tersine mühendislik alanında geliştirmek için var uygulama cracklemek tamamen sizin için alıştırma ve bu alıştırmaları üst düzey anti cheatleri geçmek için yapıyorsunuz , temel olarak bir anti cheati bypasslamak için kendini CrâckMe uygulamalarında geliştirdiğini varsayalım örneğin anti cheati incelerken A066FD9 adresinde "0" döndürüldüğünü farkettin bu değeri "1" olarak değiştirmen gerekiyor burada devreye c++ giriyor kullanacağın API'larla birlikte uygulama hafızasında read&write yaparak bu değeri 1 olarak değiştireceğin kodları yazacaksın bunların hepside c++ sayesinde olacak özetlemek gerekirse , Assembly = ekmek , kaşar , sucuk & c++ = Tost makinesi, biri olmadan diğeri işe yaramaz.
 
c++ şu anda güncel olarak programın hafızasında en kolay ve en detaylı değişiklik yapabildiğimiz programlama dili tersine mühendislik için c++ biçilmiş kaftan desek yeridir. reverse eng. için temel assembly bilmek seni 3-5 tane lamerin hazırladığı crackmeleri geçmek için idare eder ama temel asm bilginle VANGuard'ı geçip bu anti cheat üzerinde işlem yapamazsın, ayrıca genel olarak çok yanlış bir algı var bunu tekrar söylemekte fayda var arkadaşlar CrâckMe çözmek sizi tersine mühendislik alanında geliştirmek için var uygulama cracklemek tamamen sizin için alıştırma ve bu alıştırmaları üst düzey anti cheatleri geçmek için yapıyorsunuz , temel olarak bir anti cheati bypasslamak için kendini CrâckMe uygulamalarında geliştirdiğini varsayalım örneğin anti cheati incelerken A066FD9 adresinde "0" döndürüldüğünü farkettin bu değeri "1" olarak değiştirmen gerekiyor burada devreye c++ giriyor kullanacağın API'larla birlikte uygulama hafızasında read&write yaparak bu değeri 1 olarak değiştireceğin kodları yazacaksın bunların hepside c++ sayesinde olacak özetlemek gerekirse , Assembly = ekmek , kaşar , sucuk & c++ = Tost makinesi, biri olmadan diğeri işe yaramaz.
adresteki degeri degistirmek için gdb kullanamaz mıyız mesela c++ olmak mi zorunda, obur konulardan bagımsız soruyorum
 
adresteki degeri degistirmek için gdb kullanamaz mıyız mesela c++ olmak mi zorunda, obur konulardan bagımsız soruyorum
ben sadece basit tek bir örnek verdim , gerçekten üst düzey bir anti cheatte 1-2 adress değiştirerek yoluna devam edemeyeceksin hatta adressleri değiştirdiğin zaman sunucu taraflı kontrol edildiğini ve engellendiğini göreceksin tüm bunlar seni c++ kullanmaya mecbur bırakacak ve sayfalarca kod çıkacak ortaya. Buda yeni bypass yöntemleri aramana sebep olacak kernel kullanmak zorunda olacaksın yada shadow mirror yöntemi dediğimiz uygulama belleğini gerçek zamanlı kopyalayacaksın yada anti cheatin çalışma mekanizmasını çözüp aynısını yazacaksın sunucuya aynı şekilde bilgi göndereceksin heart beat yöntemidir. bunlar hepsini c++ sayesinde yapacaksın.
 
ben sadece basit tek bir örnek verdim , gerçekten üst düzey bir anti cheatte 1-2 adress değiştirerek yoluna devam edemeyeceksin hatta adressleri değiştirdiğin zaman sunucu taraflı kontrol edildiğini ve engellendiğini göreceksin tüm bunlar seni c++ kullanmaya mecbur bırakacak ve sayfalarca kod çıkacak ortaya. Buda yeni bypass yöntemleri aramana sebep olacak kernel kullanmak zorunda olacaksın yada shadow mirror yöntemi dediğimiz uygulama belleğini gerçek zamanlı kopyalayacaksın yada anti cheatin çalışma mekanizmasını çözüp aynısını yazacaksın sunucuya aynı şekilde bilgi göndereceksin heart beat yöntemidir. bunlar hepsini c++ sayesinde yapacaksın.
c++ ogrenmek çok üşendiriyor açıkcası uğraşsam da beceremeyecegim gibi geliyor o yuzden hic girmiyorum
 
c++ ogrenmek çok üşendiriyor açıkcası uğraşsam da beceremeyecegim gibi geliyor o yuzden hic girmiyorum
hiç girmezsen tersine mühendislikte malesef ki ilerleyemezsin, bu işten üst düzey anlayan çok fazla insan olmamasının temel sebebi bence başlasamda beceremem mantığıdır yada karşılarına çıkan ilk engelde pes etmeleridir ben 13-14 yıldır bu işin içerisindeyim hala bir problem ile 1 hafta uğraşıp araştırdığım oluyor , bu işin temeli budur ortada bir sorun olur ve sen soruna çözüm üretirsin.
 
hiç girmezsen tersine mühendislikte malesef ki ilerleyemezsin, bu işten üst düzey anlayan çok fazla insan olmamasının temel sebebi bence başlasamda beceremem mantığıdır yada karşılarına çıkan ilk engelde pes etmeleridir ben 13-14 yıldır bu işin içerisindeyim hala bir problem ile 1 hafta uğraşıp araştırdığım oluyor , bu işin temeli budur ortada bir sorun olur ve sen soruna çözüm üretirsin.
ya başlamasına başlarız da işte ne istediğimi ben de tam olarak bilmiyorum sorun o, bi diyorum web developer olurum, bi diyorum software developer olurum falan ne yapmak istedigimi ben de bilmiyorum o yuzden suan react node ve mongodb üzerinde calısıyorum web development alanında
 
ya başlamasına başlarız da işte ne istediğimi ben de tam olarak bilmiyorum sorun o, bi diyorum web developer olurum, bi diyorum software developer olurum falan ne yapmak istedigimi ben de bilmiyorum o yuzden suan react node ve mongodb üzerinde calısıyorum web development alanında
tamamen senin bilebileceğin bir konu ..
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt