5 Mayıs günü Hatay'da ki evime ulaştığımda yurtta hasret kaldığım internet bağlantıma kavuşmuştum. Tam mailimi kontrol ederekten siftahımı yapayım derken pop up şeklinde bir reklam açıldı. Pop up reklamları (temsili) Hem yüklediğim programlara dikkat etmem, hemde kullandığım sistemin Linux olması dolayısıyla bu olay beni oldukça şaşırtmıştı. Sonra aklıma Linux'ta Windows uygulamalarını çalıştırmak için kurulu olan Wine adlı uygulama geldi. Acaba bu uygulama vasıtasıyla çalıştırdığım bir dosyadan mı bulaştı diye düşündüm kendime ancak durum bu değildi. Ilk önce "Helal olsun adamlara, üşenmeyip Linux için virüs yazmışlar" dedim (tam olarak bu kelimelerle olmasa bile). Ancak aynı reklam pencerelerine Windows kurulu bilgisayarımda, hatta Android cep telefonumda bile rastlayınca olayın çok farklı olduğunu anladım. Reklam pencereleri " adbirdie.com" ve "youradexchange.com" türevi URL'ler üzerinden kullanıcıyı asıl reklama yönlendiriyordu...
Aloha, geçtiğimiz günlerde yapılan Dünyayı Kurtaran Hackerın Oğlunun Sevgilisi (wut) adlı yarışmada yaptığım Rev300, Nam-ı diğer "Kambersiz Düğün Olmaz" sorusunun çözümünü paylaşmak istedim. Les go Elimizde bir exe dosyası var (ya ne olacağıdı demeyin yarışanlar bilir). Dosyayı çalıştırdığımızda bizi linux'tan aşina olduğumuz SegFault'un serseri abisi ACCESS VIOLATION hatası karşılıyor. evet immunity kullanıyorum çok mu komik. burada müslüm denen bir hıyar varmış diyip assembly koduna dalmak gibi bir gaflete düşmüyorum çünkü neden yapayım. onun yerine müslüm abiye bir "merhaba" demek için önce dosyayı temel statik analize tâbi tutup beni yönlendirecek ipucu arıyorum. Ne ucu demeden önce ben söyleyeyim yani dosya packlenmiş mi, anti analiz var mı, beklenmedik bir itlik puştluk var mı onlara bakayım hele bi dur Nothing found dediğine göre yazımızı burada sonlandırıy... Vay anasını sayın seyirciler. Entropi neydi, entropi düzensiz...
Dün nereden çıktıysa bilmiyorum bi heap overflow'a girişesim geldi. Protostar'ın heap challengeları ile başlayayım dedim. Unutursam diye çözümlerinide buraya yazıyorum. Heap 0 #include <stdlib.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <sys/types.h> struct data { char name[64]; }; struct fp { int (*fp)(); }; void winner() { printf("level passed\n"); } void nowinner() { printf("level has not been passed\n"); } int main(int argc, char **argv) { struct data *d; struct fp *f; d = malloc(sizeof(struct data)); f = malloc(sizeof(struct fp)); f->fp = nowinner; printf("data is at %p, fp is at %p\n", d, f); strcpy(d->name, argv[1]); f->fp(); } İki adet struct var ve main içerisinde malloc ile bunlara heap'ten yer ayırıldı...
Yorumlar
Yorum Gönder