Telegram kanalımıza katılarak duyurular ve yenilikler hakkında anlık bildirimler alabilirsiniz . . . . .   Forumda dil, din, ırk ayrımı yapmak yasaktır . . . . .   Lütfen forum kurallarına uyun, gereksiz ve anlamsız mesajlardan kaçının, küfür ve argo kullanmayın . . . . .   Forum içeriğine sınırsız erişim için BURADAN paket satın alabilirsiniz . . . . .

Tool Basit Crackme Çözümü -Forumun Ilk Crackme Konusu-

  • Konbuyu başlatan Zeref
  • Başlangıç tarihi
  • 130
  • Cevaplar : 2
Zeref

Zeref

Üye
Son görülme
Katılım
15 Eyl 2024
Konular
22
Mesajlar
122
Beğeni
961
Puanları
0
Konum
Koru
Selamlar... Bugün basit seviye bir crackme çözeceğiz...

-Forumda bulunan ilk crackme çözümü olduğundan dolayı bu konuyu herkesin okuyabileceği halde paylaşacağım, fakat ilerideki crackme çözümleri beğeni ve yanıt zorunluluğu gerektirecek-

Çözeceğimiz crackme beproud adlı arkadaşımızın "My first crackme :p" adındaki crackme'si olacaktır.
Crackmes.one Linki: https://crackmes.one/crackme/668afa9d90c4c2830c8205de

İlk CrackME çözümüne basit bir şey ile başlamak istedim, ilgi gelirse ileride gittikçe zorlaşan crackme'leri çözdüğüm konular açacağım. İleride videolu çözümlerde düşünüyorum tabii.

Bu CrackME'yi çözerken IDA PRO adlı yazılımdan yardım alacağız, kendisi içerisinde lumina adında çok iyi bir decompiler içeren, hem debugger özelliği hem de disassembly özelliği bulunan benim favori crack toolumdur... Ayrıca bu toolun crack halini forumda paylaştım... Hem linux hem windows platformu için indirebilirsiniz...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bilmeyenler için öncelikle de/compile, dis/assembly ve makine kodu nedir bunlardan bahsedelim...
Diyelim C++ kullanarak bir program yazdınız ve bu programı compileladınız, yani executable dosya haline getirdiniz. Artık bu programa Windows platformunda çift tıklayarak kullanabilir hale gelirsiniz. Bir dosya işletim sisteminde başlatılırken öncelikle dosyanın header'ları okunur, bu sayede dosyanın türüne dair işletim sistemi yükleyicisi (bundan sonra OS Loader diyeceğim) bir fikir edinmiş olur. Eğer .exe formatında bir dosyayı not defteri veya bir hex editor yardımıyla açarsanız ilk iki stringin her zaman "MZ" olduğunu görürsünüz. Bu "MZ" (buna exe dosyalarını analiz ederken magic deriz) uygulamanın geçerli bir dos header'ı olup olmadığını belirtir. Her neyse buna çok fazla deyinmeyeceğim çünkü asıl konumuz crackme, portable executable dosyalarının analizini öğreten bir konu değil. Devam edelim, OS Loader bu dosyanın türü ve yürütülebilirliği hakkında bir fikir edindikten sonra dosyayı ram'e taşır, ve ramden sabit disk okunur işlemciye kodlar gönderilir vesaire, bizi ilgilendiren şey dosya yürütülürken işlemcinin bu dosyayı binary'e yani makine diline dönüştürmesi. Fakat bizler birer işlemci değiliz, 0 ve 1'leri bir işlemci gibi işlememiz pek mümkün değil, bundan dolayı bizler bir ara dil olan assembly'ı kullanırız. Assembly karışık fakat 0 ve 1'lerden daha anlamlı (en azından biz insanlar için) bir dil katmanıdır. Burada işlemcinin dosyayı yürütürken yaptığı şeyleri semboller kullanarak gösteririz. Örnek vermek gerekirse, aşağıya bir imgur linki bırakıyorum. İmgur linkinden bahsedeceğim şeyi görebilirsiniz.


Şimdi bir tarafta imgur linkinde bulunan fotoğrafı bir tarafta benim yazımı gördüğünüzden emin olun.
Soldaki makine dili binary'nin ikilik taban yani hexadecimal hali. Bir exe dosyasının içerisindeki verinin hexadecimal sayı sistemindeki görüntüsü, sağda ise bu görüntünün assembly'a çevirilmiş hali.
ilk hexadecimal kodunun ilk satırını okumaya çalışalım. B8 22 11 00 FF, evet gördüğünüz üzere bir bok anlamak mümkün değil. :D
Şimdi assembly kodununun ilk satırını okumaya çalışalım.
movl $0xFF001122, %eax
Şimdi tek tek bakalım,
movl bir yerden tanıdık gelmeli, tabii ki ingilizce move kelimesinden. movl opcode'u (sembolü) ile solda bulunan hexadecimal adres değerini eax adlı register'a veriyoruz. Nasıl pythonda değişken atıyorsak burada da aynı, sadece kod normalden daha korkutucu görünüyor, çünkü python gibi daha biz insanların kullandığı dilden çok makine diline benzeyen bir kod. Bizler bir uygulamayı örnek veriyorum IDA yardımıyla incelemek istediğimizde, dosyanın içeriğini disassembly ederiz, yani makine kodunu bizlerin daha rahat okuyabileceği bir formata çeviririz. Üstte örnek verdiğim C++ kodunu exe haline çevirmek compilelamak yani derlemek oluyor decompilelamak ise anlayacağınız üzere compilelanmış bir şeyi compilelanmasından önceki haline çevirmeye çalışmaktır. Aslında çoğunlukla assembly dilini kullanmak zorunda kalmayız çünkü IDA, Ghidra gibi araçlar kodu olabildiğince c++ haline getirmeye çalışır. Burada sadece c++ değil, tüm low-level dilleri düşünebilirsiniz.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disassembly, decompile ve makine dilinin ne olduğunu anladığınızı düşünüyorum. Şimdi crackme çözümüne geçelim.

Ne yazık ki forumda bazen eklediğimiz fotoğraflar görünemeyebiliyor. Bundan dolayı öncelikle imgur linklerini kullanarak bir fotoğraflar ile anlatım yapacağım, ardından bir video kaydı kullanacağım, bu sayede daha iyi kavrayacağınızı düşünüyorum. Şimdi konumuza geçelim. Ayrıca imgur linkleri patlarsa diye video kaydının bulunduğu rar dosyasında kullandığım fotoğraflarıda bulunduracağım...

Öncelikle kıracağımız crackme'yi patch yöntemi ile kıracağız, keygen yazmayı bu konuda göstermeyeceğim. Ayrıca bu konunun anlaşılabilir olması için basit bir crackme seçtim, her crackme veya kıracağınız uygulama bu zorlukta olmayacaktır.

İlk olarak crackme.exe dosyamızı normal bir şekilde başlatalım ve ilgimizi çekecek bir şey olup olmayacağına göz atalım.

Crackme.exe dosyamızı açtığımızda karşımıza böyle bir pencere çıkıyor
Kısaca bizden patch işlemi gerçekleştirmemizi veya bir keygen yazmamızı istiyor. Biz bu konuda bahsettiğim üzere patch işlemini gerçekleştireceğiz.
Ayrıca, burada yazan şeyleri aklımıza kazıyoruz. Uygulamanın içerisindeki stringler eğer obfuscate edilmemiş ve bizim okuyabileceğimiz bir halde ise işimizi oldukça basitleştirecektir.
Şimdi exe dosyamızı IDA üzerinden incelemek için dosyamızı IDA ile açalım. Bu kısımda dosyayı ida'nın üzerine sürükleyeceğim fakat zaten videoda IDA ile uygulamayı açma işlemini yaptığımdan dolayı resim ile göstermeyeceğim ve direkt IDA'ya geçeceğim.

Exe dosyamızı IDA ile açtığımızda IDA eğer işlem başarılı olursa ve bir entry point yani programın main fonksiyonunu bulursa, bizi direkt main fonksiyonuna atıyor. Bu crackme OAP ve importlar ile oynanmamış bir crackme olduğundan ötürü rahatlıkla main fonksiyonumuzu bulabiliyoruz.
IDA görüntüsünde yukarıda bahsettiğimiz assembly dili ile karşılaşıyoruz. IDA bizim için makine dilini disassembly ederek okuyabileceğimiz hale getiriyor. Bizim şu anlık main fonksiyonu ile bir işimiz yok, bundan dolayı uygulamanın stringlerini kontrol edeceğiz ve yukarıda bahsettiğim gibi okuyabileceğimiz halde ise stringin bulunduğu fonksiyona gideceğiz. Evet stringleri görmek için işaretlediğim kısıma basıyoruz.

Evet, şimdi stringleri inceliyoruz ve daha ilk stringe bakarken kabak gibi uygulamayı açtığımız an karşımıza çıkan yazıları, bir failed mesajı ve bir correct mesajını görüyoruz.
Şimdi, correct stringinin üzerine tıklıyoruz ve .rdata kısımına IDA bizi yolluyor.
Burada correct stringinin hangi subda bulunduğunu görmek ve o sub'a (fonksiyona) gitmek için correct stringinin offset'ine sağ tıklayıp list cross references to... 'ya tıklıyoruz.
Eveet stringimizin bulunduğu fonksiyonu bulduk, şimdi fonksiyona gitmek için üzerine tıklıyoruz.
Şimdi bizi stringimizin olduğu kod yığını karşılıyor, buradaki kodun ne olduğunu tek tek anlatmayacağım çünkü zaten açıklayıcı olmak için uzunca yazıyorum ve sesli bir anlatım sunamadığımdan ötürü çok uzun olacaktır.

Şimdi bu fonksiyonda dolaşarak fonksiyonun başlangıç adresini bulalım ve bir breakpoint koyalım.

Başlangıç fonksiyonunu bulduk ayrıca yakınlaştırırsanız göreceğiniz üzere başlangıçta karşılaştığımız stringler ile karşılaştık. Şimdi, bir breakpoint koyalım. Bu arada breakpoint dediğimiz şey işlemciye, uygulamanın bu kod bütünü işlenmeden önce beklemesini söylemek oluyor.

F2'ye basarak rastgele bir kısıma breakpointimizi koyduk, şimdi uygulamamızı IDA'nın local debugger'ı ile çalıştıralım ve ne olacağını gözlemleyelim...

Evet, gördüğünüz üzere breakpoint koyduğumuz kısıma vurduk ve işlemci kodu işlemeyi durdurdu, şimdi tek tek ilerlemek için toolbardan kodu devam ettirme araçlarını açalım, bu kısımıda resim ile anlatmayacağım videoda rahatlıkla görebilirsiniz.

Kodumuzu ilerlettik ve bizden bir girdi istedi, rastgele bir şeyler yazıp kodu ilerletiyorum.

Kodumuz burada ikiye ayrılıyor ve sağ yoldan gitmeyi tercih ediyor, sol yolu incelediğimizde bir hata mesajı olduğunu görüyoruz ve umursamadan ilerliyoruz. Bizim amacımız başta gördüğümüz correct be proud mesajına ulaşmak. Kodumuzu ikinci bir ayrım görene kadar ilerletiyoruz.

Evet, yine bir ayrımla karşılaştık, bu sefer kodumuz sola gitmek istiyor fakat bizim correct mesajımız sağda. Ne yapacağız? Tabii ki kodumuza sağa gitmesini söyleyeceğiz. Şimdi bulunduğumuz kod satırını inceleylim, "jnz loc_7FF7D67D1322" Türkçe mealine gelirsek Eğer sonuç sıfır değilse, belirtilen adrese zıpla, eğer sonuç sıfır ise belirtilen adresin bulunduğu ayrımın tersine zıpla.
Bunu bir koşullu kod satırı olarak düşünebilirsiniz, tek fark dilimiz assembly. Sonuç sıfırdan kastımız bi aritmetik işlemin sonunda çıkan sonucun sıfır veya bir olduğunu belirten bir değişken, bayrak.
Yani sağa zıplamamız için yapmamız gereken tek şey jnz kodunu jz'ye çevirmek, bu kısımı yine videoda gösterdim çünkü fotoğraf anlatımı uzun sürecektir.
Artık kodumuz sol değil sağa zıplıyor, şimdi farklı bir ayrıma denk gelene veya correct mesajımıza denk gelene kadar kodumuzu ilerletiyoruz.
Yine bir ayrım ile karşılaştık, solda bilmediğimiz bir kod yığını sağda ise correct mesajımız yine bir sıfır bayrak değişkenine bağlı koşullu bir zıplama görüyoruz. Yine patch işlemi ile sağ kısıma giderek correct mesajımızı elde etmeyi umuyoruz.

Evet, sonunda correct mesajımıza ulaştık ve crackme.exe dosyamızı crackledik.

Aslında bu kadar yazı gözünüzü korkutmasın, elimden geldiğince açıklayıcı şekilde anlatmaya çalıştım. Video kaydını izledikten sonra daha iyi kavrayacağınıza eminim. Oldukça eğlenceli bir işlem cracklemek. Kendiniz denemenizi tavsiye ederim.

Muhtemelen bu konu ilgi görmeyecek çünkü ne bir tc-gsm verisi paylaşıyorum, ne bir pornhub hesabı... Her neyse...

Şimdilik bu kadar, okuduysanız ve bir fayda gördüyseniz ne mutlu bana. İşinize yaradıysa elinize sağlık yazmanız yeterli. İyi forumlar...

Video ve fotoğrafların linki: https://files.offshore.cat/2dlGhY8j.rar
Şifre: Forumloca.org/Zeref
 
Selamlar... Bugün basit seviye bir crackme çözeceğiz...

-Forumda bulunan ilk crackme çözümü olduğundan dolayı bu konuyu herkesin okuyabileceği halde paylaşacağım, fakat ilerideki crackme çözümleri beğeni ve yanıt zorunluluğu gerektirecek-

Çözeceğimiz crackme beproud adlı arkadaşımızın "My first crackme :p" adındaki crackme'si olacaktır.
Crackmes.one Linki: https://crackmes.one/crackme/668afa9d90c4c2830c8205de

İlk CrackME çözümüne basit bir şey ile başlamak istedim, ilgi gelirse ileride gittikçe zorlaşan crackme'leri çözdüğüm konular açacağım. İleride videolu çözümlerde düşünüyorum tabii.

Bu CrackME'yi çözerken IDA PRO adlı yazılımdan yardım alacağız, kendisi içerisinde lumina adında çok iyi bir decompiler içeren, hem debugger özelliği hem de disassembly özelliği bulunan benim favori crack toolumdur... Ayrıca bu toolun crack halini forumda paylaştım... Hem linux hem windows platformu için indirebilirsiniz...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bilmeyenler için öncelikle de/compile, dis/assembly ve makine kodu nedir bunlardan bahsedelim...
Diyelim C++ kullanarak bir program yazdınız ve bu programı compileladınız, yani executable dosya haline getirdiniz. Artık bu programa Windows platformunda çift tıklayarak kullanabilir hale gelirsiniz. Bir dosya işletim sisteminde başlatılırken öncelikle dosyanın header'ları okunur, bu sayede dosyanın türüne dair işletim sistemi yükleyicisi (bundan sonra OS Loader diyeceğim) bir fikir edinmiş olur. Eğer .exe formatında bir dosyayı not defteri veya bir hex editor yardımıyla açarsanız ilk iki stringin her zaman "MZ" olduğunu görürsünüz. Bu "MZ" (buna exe dosyalarını analiz ederken magic deriz) uygulamanın geçerli bir dos header'ı olup olmadığını belirtir. Her neyse buna çok fazla deyinmeyeceğim çünkü asıl konumuz crackme, portable executable dosyalarının analizini öğreten bir konu değil. Devam edelim, OS Loader bu dosyanın türü ve yürütülebilirliği hakkında bir fikir edindikten sonra dosyayı ram'e taşır, ve ramden sabit disk okunur işlemciye kodlar gönderilir vesaire, bizi ilgilendiren şey dosya yürütülürken işlemcinin bu dosyayı binary'e yani makine diline dönüştürmesi. Fakat bizler birer işlemci değiliz, 0 ve 1'leri bir işlemci gibi işlememiz pek mümkün değil, bundan dolayı bizler bir ara dil olan assembly'ı kullanırız. Assembly karışık fakat 0 ve 1'lerden daha anlamlı (en azından biz insanlar için) bir dil katmanıdır. Burada işlemcinin dosyayı yürütürken yaptığı şeyleri semboller kullanarak gösteririz. Örnek vermek gerekirse, aşağıya bir imgur linki bırakıyorum. İmgur linkinden bahsedeceğim şeyi görebilirsiniz.


Şimdi bir tarafta imgur linkinde bulunan fotoğrafı bir tarafta benim yazımı gördüğünüzden emin olun.
Soldaki makine dili binary'nin ikilik taban yani hexadecimal hali. Bir exe dosyasının içerisindeki verinin hexadecimal sayı sistemindeki görüntüsü, sağda ise bu görüntünün assembly'a çevirilmiş hali.
ilk hexadecimal kodunun ilk satırını okumaya çalışalım. B8 22 11 00 FF, evet gördüğünüz üzere bir bok anlamak mümkün değil. :D
Şimdi assembly kodununun ilk satırını okumaya çalışalım.
movl $0xFF001122, %eax
Şimdi tek tek bakalım,
movl bir yerden tanıdık gelmeli, tabii ki ingilizce move kelimesinden. movl opcode'u (sembolü) ile solda bulunan hexadecimal adres değerini eax adlı register'a veriyoruz. Nasıl pythonda değişken atıyorsak burada da aynı, sadece kod normalden daha korkutucu görünüyor, çünkü python gibi daha biz insanların kullandığı dilden çok makine diline benzeyen bir kod. Bizler bir uygulamayı örnek veriyorum IDA yardımıyla incelemek istediğimizde, dosyanın içeriğini disassembly ederiz, yani makine kodunu bizlerin daha rahat okuyabileceği bir formata çeviririz. Üstte örnek verdiğim C++ kodunu exe haline çevirmek compilelamak yani derlemek oluyor decompilelamak ise anlayacağınız üzere compilelanmış bir şeyi compilelanmasından önceki haline çevirmeye çalışmaktır. Aslında çoğunlukla assembly dilini kullanmak zorunda kalmayız çünkü IDA, Ghidra gibi araçlar kodu olabildiğince c++ haline getirmeye çalışır. Burada sadece c++ değil, tüm low-level dilleri düşünebilirsiniz.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disassembly, decompile ve makine dilinin ne olduğunu anladığınızı düşünüyorum. Şimdi crackme çözümüne geçelim.

Ne yazık ki forumda bazen eklediğimiz fotoğraflar görünemeyebiliyor. Bundan dolayı öncelikle imgur linklerini kullanarak bir fotoğraflar ile anlatım yapacağım, ardından bir video kaydı kullanacağım, bu sayede daha iyi kavrayacağınızı düşünüyorum. Şimdi konumuza geçelim. Ayrıca imgur linkleri patlarsa diye video kaydının bulunduğu rar dosyasında kullandığım fotoğraflarıda bulunduracağım...

Öncelikle kıracağımız crackme'yi patch yöntemi ile kıracağız, keygen yazmayı bu konuda göstermeyeceğim. Ayrıca bu konunun anlaşılabilir olması için basit bir crackme seçtim, her crackme veya kıracağınız uygulama bu zorlukta olmayacaktır.

İlk olarak crackme.exe dosyamızı normal bir şekilde başlatalım ve ilgimizi çekecek bir şey olup olmayacağına göz atalım.

Crackme.exe dosyamızı açtığımızda karşımıza böyle bir pencere çıkıyor
Kısaca bizden patch işlemi gerçekleştirmemizi veya bir keygen yazmamızı istiyor. Biz bu konuda bahsettiğim üzere patch işlemini gerçekleştireceğiz.
Ayrıca, burada yazan şeyleri aklımıza kazıyoruz. Uygulamanın içerisindeki stringler eğer obfuscate edilmemiş ve bizim okuyabileceğimiz bir halde ise işimizi oldukça basitleştirecektir.
Şimdi exe dosyamızı IDA üzerinden incelemek için dosyamızı IDA ile açalım. Bu kısımda dosyayı ida'nın üzerine sürükleyeceğim fakat zaten videoda IDA ile uygulamayı açma işlemini yaptığımdan dolayı resim ile göstermeyeceğim ve direkt IDA'ya geçeceğim.

Exe dosyamızı IDA ile açtığımızda IDA eğer işlem başarılı olursa ve bir entry point yani programın main fonksiyonunu bulursa, bizi direkt main fonksiyonuna atıyor. Bu crackme OAP ve importlar ile oynanmamış bir crackme olduğundan ötürü rahatlıkla main fonksiyonumuzu bulabiliyoruz.
IDA görüntüsünde yukarıda bahsettiğimiz assembly dili ile karşılaşıyoruz. IDA bizim için makine dilini disassembly ederek okuyabileceğimiz hale getiriyor. Bizim şu anlık main fonksiyonu ile bir işimiz yok, bundan dolayı uygulamanın stringlerini kontrol edeceğiz ve yukarıda bahsettiğim gibi okuyabileceğimiz halde ise stringin bulunduğu fonksiyona gideceğiz. Evet stringleri görmek için işaretlediğim kısıma basıyoruz.

Evet, şimdi stringleri inceliyoruz ve daha ilk stringe bakarken kabak gibi uygulamayı açtığımız an karşımıza çıkan yazıları, bir failed mesajı ve bir correct mesajını görüyoruz.
Şimdi, correct stringinin üzerine tıklıyoruz ve .rdata kısımına IDA bizi yolluyor.
Burada correct stringinin hangi subda bulunduğunu görmek ve o sub'a (fonksiyona) gitmek için correct stringinin offset'ine sağ tıklayıp list cross references to... 'ya tıklıyoruz.
Eveet stringimizin bulunduğu fonksiyonu bulduk, şimdi fonksiyona gitmek için üzerine tıklıyoruz.
Şimdi bizi stringimizin olduğu kod yığını karşılıyor, buradaki kodun ne olduğunu tek tek anlatmayacağım çünkü zaten açıklayıcı olmak için uzunca yazıyorum ve sesli bir anlatım sunamadığımdan ötürü çok uzun olacaktır.

Şimdi bu fonksiyonda dolaşarak fonksiyonun başlangıç adresini bulalım ve bir breakpoint koyalım.

Başlangıç fonksiyonunu bulduk ayrıca yakınlaştırırsanız göreceğiniz üzere başlangıçta karşılaştığımız stringler ile karşılaştık. Şimdi, bir breakpoint koyalım. Bu arada breakpoint dediğimiz şey işlemciye, uygulamanın bu kod bütünü işlenmeden önce beklemesini söylemek oluyor.

F2'ye basarak rastgele bir kısıma breakpointimizi koyduk, şimdi uygulamamızı IDA'nın local debugger'ı ile çalıştıralım ve ne olacağını gözlemleyelim...

Evet, gördüğünüz üzere breakpoint koyduğumuz kısıma vurduk ve işlemci kodu işlemeyi durdurdu, şimdi tek tek ilerlemek için toolbardan kodu devam ettirme araçlarını açalım, bu kısımıda resim ile anlatmayacağım videoda rahatlıkla görebilirsiniz.

Kodumuzu ilerlettik ve bizden bir girdi istedi, rastgele bir şeyler yazıp kodu ilerletiyorum.

Kodumuz burada ikiye ayrılıyor ve sağ yoldan gitmeyi tercih ediyor, sol yolu incelediğimizde bir hata mesajı olduğunu görüyoruz ve umursamadan ilerliyoruz. Bizim amacımız başta gördüğümüz correct be proud mesajına ulaşmak. Kodumuzu ikinci bir ayrım görene kadar ilerletiyoruz.

Evet, yine bir ayrımla karşılaştık, bu sefer kodumuz sola gitmek istiyor fakat bizim correct mesajımız sağda. Ne yapacağız? Tabii ki kodumuza sağa gitmesini söyleyeceğiz. Şimdi bulunduğumuz kod satırını inceleylim, "jnz loc_7FF7D67D1322" Türkçe mealine gelirsek Eğer sonuç sıfır değilse, belirtilen adrese zıpla, eğer sonuç sıfır ise belirtilen adresin bulunduğu ayrımın tersine zıpla.
Bunu bir koşullu kod satırı olarak düşünebilirsiniz, tek fark dilimiz assembly. Sonuç sıfırdan kastımız bi aritmetik işlemin sonunda çıkan sonucun sıfır veya bir olduğunu belirten bir değişken, bayrak.
Yani sağa zıplamamız için yapmamız gereken tek şey jnz kodunu jz'ye çevirmek, bu kısımı yine videoda gösterdim çünkü fotoğraf anlatımı uzun sürecektir.
Artık kodumuz sol değil sağa zıplıyor, şimdi farklı bir ayrıma denk gelene veya correct mesajımıza denk gelene kadar kodumuzu ilerletiyoruz.
Yine bir ayrım ile karşılaştık, solda bilmediğimiz bir kod yığını sağda ise correct mesajımız yine bir sıfır bayrak değişkenine bağlı koşullu bir zıplama görüyoruz. Yine patch işlemi ile sağ kısıma giderek correct mesajımızı elde etmeyi umuyoruz.

Evet, sonunda correct mesajımıza ulaştık ve crackme.exe dosyamızı crackledik.

Aslında bu kadar yazı gözünüzü korkutmasın, elimden geldiğince açıklayıcı şekilde anlatmaya çalıştım. Video kaydını izledikten sonra daha iyi kavrayacağınıza eminim. Oldukça eğlenceli bir işlem cracklemek. Kendiniz denemenizi tavsiye ederim.

Muhtemelen bu konu ilgi görmeyecek çünkü ne bir tc-gsm verisi paylaşıyorum, ne bir pornhub hesabı... Her neyse...

Şimdilik bu kadar, okuduysanız ve bir fayda gördüyseniz ne mutlu bana. İşinize yaradıysa elinize sağlık yazmanız yeterli. İyi forumlar...

Video ve fotoğrafların linki: https://files.offshore.cat/2dlGhY8j.rar
Şifre: Forumloca.org/Zeref
Elinize sağlık hocam
 

Benzer konular

henrylates
Cevaplar
5
Görüntüleme
85
RReangoxd
RReangoxd
relaxafk
Cevaplar
143
Görüntüleme
1K
efe95
efe95
alendelon12
Cevaplar
12
Görüntüleme
103
darkreaper
darkreaper
alendelon12
Cevaplar
27
Görüntüleme
231
cazcazmjolnir
C