CrackMeC++ Patch İşlemi //Phemis | Tersine Mühendislik #2

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
IT23OH.png

Q7cBIz.png

Patch : Bu kavram normalde hatalı çalışan kodun düzeltilmesi demektir.
Fakat biz burada hatasız çalışan kodu istediğmiz şekilde düzenleme anlamı ile kullanacağız.

x1BBWJ.png


: Kullanılan Programlar :
Scanner / Detect It Easy (Die)
Debugger / x32dbg
CrackMe Orjinal Link İçin Tıklayın

x1BBWJ.png



Programımızı bir taratalım bakalım yolumuza taş koyan bir durum var mı ?


Tg1XH9.png



Hayır , C++ ile yazılmış basit bir uygulama herhangi bir koruması bulunmuyor.

x1BBWJ.png


Şimdi Patch işlemine girişmek için kod bilgisi gereklidir.
Kullanacağımız debugger(dnSpy'ın da debuggerı var onunla karıştırılmaması için) işlemci üzerinde çalıştığı için assembly dili hakkında temel bilgiye sahip olsak yeterlidir.


MIg2TG.png

nhRKZx.png

pqfxS2.png



Jump Statementlerimiz bu şekilde

x1BBWJ.png


Hedef Programımızı x32dbg ile başlatalım.
Direkt Sürükle-Bırak yapabiliriz veya sol üstten File > Open ile de seçebilirsiniz.
PHZIO1.png

Programı bir kere startladığımızda EntryPointte duracaktır. (F9)

Şimdi istediğimiz düzenleme şu şekilde olacak
Lisans sorgulama kısmındaki sorgu işlemini tam tersine çevirerek veya direkt atlatarak lisans sorgu işlemine hiç sokmayacağız ve Valid Serial ' ı verdireceğiz.


6YZsHf.png

Programın lisans kısmını bulmak için bir string araması yapmamız gerekli.
Sağ Tık > Search For > All Modules > String References
Yapalım ve açılacak ekrandan hedef string'e gidelim.


ALcNTU.png


İşte hedef string değerini bulduk ; "Congrats! This license is valid!"
İki kere tıklayalım


SrSi8Y.png


Ve bizi buraya attığını göreceksiniz.
Hemen üstüne baktığımızda 3 tane sorgu işlemi gerçekleşiyor.

JNE : Jump If Not Equal (Eşit Değilse Atla)

JBE : Jump If Below or Equal (Küçük veya Eşitse Atla)

JAE : Jump If Above or Equal (Büyük veya Eşitse Atla)

Burada Patch işlemi ile istediğimiz değere ulaşmanın iki yolu var (Bu ders için)
1) Tam Tersine Çevirme
2) Koşulsuz Atlatma


TAM TERSİNE ÇEVİRME

JNE eşit değilse atla olduğuna göre tam tersi eşitse atla olacak.
JBE küçük veya eşitse atla olduğuna göre tam tersi eşit değilse atla olacak.
JAE büyük veya eşitse atla olduğuna göre tam tersi eşit değilse atla olacak.

Şimdi gelelim bunları x32dbg üzerinde yazmaya.
Düzenlemek istediğimiz kod satırına bir kere sol tıklıyoruz ve space tuşuna basıyoruz.
JNE için düzenleme işlemi :
1zcpgb.png

JBE ve JAE için düzenleme işlemi :
V3E12D.png

Son Halleri :
lQaf3A.png


x1BBWJ.png


KOŞULSUZ ATLATMA

Koşulsuz atlatma için JMP statementini kullanacağız.
Belirlediğimiz adrese direkt atlamasını sağlayacağız.


Düzenlemek istediğimiz kod satırına sol tıklayıp space ile aynı işlemi yapacağız.
Fakat bu sefer hepsine aynı işlemi yapmamıza gerek yok.
Ve bu sefer sadece bir harf değişikliği yaparak işin içinden kurtulamıyoruz. :))
Atlamasını istediğimiz noktayı bulalım.


BW17Wf.png


Atlamasını istediğimiz nokta = Hedef String
Hedef String' e

Sağ tık > Copy > Address
Yapalım.

Daha sonrasında ilk sorgu ifademize gelelim.
Space ' e basalım ve kodları şu şekilde düzenleyelim.


hUuE7x.png


JMP 0XADRES

Şimdi bunları yaptıktan sonra son olarak kaydetmemiz lazım.


7jtYQZ.png



g4TrtU.png



Şimdi programımızı açıp rastgele değer verelim.


M56x2V.png


Mutlu Son :))


 

zztri

Yaşayan Forum Efsanesi
9 Tem 2015
10,053
389
Ankara
Benim zamanımda - yaşlıyım biliyorsunuz, bahsettiğim zamanlar İstanbul'un fethinin birazcık sonraları filan - black ice vardı. En son bir şeyi cracklemek için black ice'ı win10'da çalıştıramadım bile. Fazla önemli olmadığından sallamayıp bırakıvermiştim, program araştırmaya üşenmiştim. Şimdi tekrar denerim.
 
Moderatör tarafında düzenlendi:

tikkynee

Katılımcı Üye
26 Haz 2012
290
2
Genelde her program bu mantıkla çalışıyor fakat bu mantık ile tersine mühendislik yapabilir miyiz ?
 
Moderatör tarafında düzenlendi:

Javabex

Üye
29 Eki 2018
223
0
bununla yazıları değişmesi , patch yapması aşırı zevkli geliyor x32dbg seviyorum :D tşkkrler
 

mamo434376

Katılımcı Üye
8 Mar 2019
292
2
İsyanbul
Kral kodları görmedikden sonra ne işe yarar. Sadece UnpackME, CrackME'de işe yarar bide lisans istiyen
diger PE uygulamalarda.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.