Orta Seviye Crackme

Önceki yazımızda nispeten basit sayılabilecek bir crackme çözmüştük. Bu sefer orta seviye, biraz daha gerçekçi bir crackme çözeceğiz. İyi okumalar dilerim. $ chmod +x crackme $ ./crackme Stripped Stripped demek bizim fonksiyonlarımızın isimleri derleyici tarafından gizlendi demek oluyor. Yani Main fonksiyonunu, şifreleyici fonksiyonları vb. tespit etmek için akışı takip etmeliyiz. [0x00001080]> afl 0x00001010 1 6 sym.imp.puts 0x00001020 1 6 sym.imp.strlen 0x00001030 1 6 sym.imp.strcspn 0x00001040 1 6 sym.imp.fgets 0x00001050 1 6 sym.imp.fflush 0x00001060 1 6 sym.imp.__printf_chk 0x00001070 1 6 sym.imp.exit 0x00001080 1 18 entry0 0x000011a6 10 210 fcn.000011a6 0x00001140 13 102 fcn.00001140 0x00001093 5 53 fcn.00001093 0x000010c8 5 76 fcn.000010c8 0x00001114 3 44 fcn.00001114 Bizim olayımız şimdilik entry0 fonksiyonunda. Main’i bulmak için Main’i çağıran fonksiyona gitmeliyiz. ...

Basit Seviye Bir Crackme Çözümü

Bu yazımızda Radare2 aracını kullanarak basit seviye bir crackme’yi birlikte çözeceğiz. ilk başta aracımızı açtık. Bizden ikinci parametreyi yani argv[1]‘i istediğini görebiliriz. Yani argc == 2 olmalı. Bunu kafadan söyleyebilirsiniz. Kullandığınız terminal programlarında da eğer bir argüman sayısı hatası alıyorsanız böyle. Bu argc parametresi içerdiği içinidir. Şimdi devam edelim. Gördüğünüz gibi -A parametresi, Radare2’ye programı analiz etmemizi söyler ve fonksiyonların konumlarını ve adlarını arar. Şimdi çıkan sonuca dönelim. Bütün programlar başladığında ilk başta main fonksiyonu çalışır. Bu yüzden Main fonksiyonumuzun içine şu şekilde girebiliriz $ s main ...