folder Tahribat.com Forumları
linefolder C - C++
linefolder C Exe Oluşturan Program (Yardım)



C Exe Oluşturan Program (Yardım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    OnLyGoDCaNStoPMe
    OnLyGoDCaNStoPMe's avatar
    Kayıt Tarihi: 24/Mart/2010
    Erkek

    Virüslerde çok kullanılır özellikle keyloggerlarda email adresi ve şifresini yazarsınız yarat dediğinizde farklı bir exe yaratır.Benim amacım programı çalıştırdığımda scanfle yazı alıp bir exe yaratmak bu yarattığı exede scanfle aldığım yazıyı printfle ekrana yazdırmasını istiyorum.Kolay yada zor olup olmadığını bilmiyorum google dan araştırmaya çalıştım fakat sonuç alamadım.Böyle bir yöntem varsa ismini yazarsanız çok iyi olur bildiğiniz herhandi bir kaynak varsa link verirseniz çok iyi olur ing türkçe farketmez.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    Compiling code on the fly  olarak geçiyordu sanırım bu teknik 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Lathedarkman
    Lathedarkman's avatar
    Kayıt Tarihi: 05/Mayıs/2007
    Erkek

    c den anlarım ama dediklerin bulmaca gibi

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Hocam yeni bi exe dediğin nasıl yani belli kodları alıp yeni bi exe mi oluşturucak onun için tekrar compile etmesi gerekmez mi ?


    Si vis pacem para bellum.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    yani anladığım kadarıyla istediğin şey;

    Bi keylogger yazıcaksın ve oluşturulacak server kodları bu programın içinde olucak ve bazı kısımları mesela mail adresi bi değişken olucak ve o değişkenin değeri serverdaki yerine yazılıp derlenecek ve serverın exesi oluşturulacak.

    Doğru anlamışmıyım? daha sonra okuduğun şeyleri niye tekrar ekrana yazdırcaksın onu anlamadım :/


    :)
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    Çok fazla yolu var, en çok kullanılanlar şöyle, bir exe stub olarak dosya içinde tutuluyor, girilen değere göre, eposta vb değerlerin bulunduğu dosya offseti editlenerek bu dosya çıktı olarak veriliyor. Bir başka çok kullanılan yöntem dosyanın bilgileri resource'da tutması, resource fonksiyonlarıyla kolayca okunup işlem uygulanıyor, daha çok farklı yöntemler var ancak senin bu istediğini yapmak için harici bir exe ye ihtiyaç yok.

    Kötü bir yöntem olmakla beraber (resource'dan okuma yanında çok kötü bir yöntem :) şu yöntemi izleyebilirsin, kendi çalıştığın dosyayı açarsın, en son baytı (benim örnekte 0xFF) mi diye bakarsın, eğer öyleyse , dosya sonundan belirli bir miktar okursun, printf ile yazılcak yazı burdadır, sonra ekrana yazarsın, eğer FF değilse, kullanıcıdan bir yazı alırsın, dosyanın bir kopyasını çıkarıp bu yazıyı dosya sonuna eklersin, son baytı da 0xFF yaparsın, benim örnekte bu dosya out.exe, böylece exe çalışınca o eklenmiş olan yazıyı ekrana basar.

    Yani derleyip çalıştırınca Yazi: şeklide bir yazı bekliyecek, yazıyı girdikten sonra program kapanack ve aynı dizinde bir out.exe oluşacak, işte o exe senin yazdığını ekrana basan exe.

    Not: Visual C++ 2010 için proje otomatik unicode açılıyor, ayarlardan onu not set yapmalısın, visual C++ 6.0 ya da MinGW Gcc için sorun yok.

    #include <windows.h>
    #include <stdio.h>
    
    #define BUFSIZE 256
    
    int main()
    {
        FILE *src,*dest;
        char filename[BUFSIZE] = {0};
        char tmp [BUFSIZE] = {0};
        
        GetModuleFileName(NULL, (LPSTR)filename, sizeof(filename));
    
        if (NULL == (src = fopen(filename,"rb"))) {
            return 1;
        }
        fseek(src,-BUFSIZE,SEEK_END);
        fread(tmp,1,BUFSIZE,src);
        fclose(src);
    
        if ((unsigned char)tmp[BUFSIZE-1] == 0xFF) {
            printf("%s",tmp);
            getchar();
        }
        else {
            printf("Yazi : ");
            gets(tmp);
            CopyFile((LPCSTR)filename,"out.exe",FALSE);
            if (NULL == (dest = fopen("out.exe","a+b"))) {
                return 1;
            }
            tmp[BUFSIZE-1] = 0xFF;
            fwrite(tmp,1,BUFSIZE,dest);
            fclose(dest);
        }
        return 0;
    }
    

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    OnLyGoDCaNStoPMe
    OnLyGoDCaNStoPMe's avatar
    Kayıt Tarihi: 24/Mart/2010
    Erkek

    Tugberk bunu yazdı:
    -----------------------------

    Çok fazla yolu var, en çok kullanılanlar şöyle, bir exe stub olarak dosya içinde tutuluyor, girilen değere göre, eposta vb değerlerin bulunduğu dosya offseti editlenerek bu dosya çıktı olarak veriliyor. Bir başka çok kullanılan yöntem dosyanın bilgileri resource'da tutması, resource fonksiyonlarıyla kolayca okunup işlem uygulanıyor, daha çok farklı yöntemler var ancak senin bu istediğini yapmak için harici bir exe ye ihtiyaç yok.

    Kötü bir yöntem olmakla beraber (resource'dan okuma yanında çok kötü bir yöntem :) şu yöntemi izleyebilirsin, kendi çalıştığın dosyayı açarsın, en son baytı (benim örnekte 0xFF) mi diye bakarsın, eğer öyleyse , dosya sonundan belirli bir miktar okursun, printf ile yazılcak yazı burdadır, sonra ekrana yazarsın, eğer FF değilse, kullanıcıdan bir yazı alırsın, dosyanın bir kopyasını çıkarıp bu yazıyı dosya sonuna eklersin, son baytı da 0xFF yaparsın, benim örnekte bu dosya out.exe, böylece exe çalışınca o eklenmiş olan yazıyı ekrana basar.

    Yani derleyip çalıştırınca Yazi: şeklide bir yazı bekliyecek, yazıyı girdikten sonra program kapanack ve aynı dizinde bir out.exe oluşacak, işte o exe senin yazdığını ekrana basan exe.

    Not: Visual C++ 2010 için proje otomatik unicode açılıyor, ayarlardan onu not set yapmalısın, visual C++ 6.0 ya da MinGW Gcc için sorun yok.

     

    #include 
    #include 
    
    #define BUFSIZE 256
    
    int main()
    {
        FILE *src,*dest;
        char filename[BUFSIZE] = {0};
        char tmp [BUFSIZE] = {0};
        
        GetModuleFileName(NULL, (LPSTR)filename, sizeof(filename));
    
        if (NULL == (src = fopen(filename,"rb"))) {
            return 1;
        }
        fseek(src,-BUFSIZE,SEEK_END);
        fread(tmp,1,BUFSIZE,src);
        fclose(src);
    
        if ((unsigned char)tmp[BUFSIZE-1] == 0xFF) {
            printf("%s",tmp);
            getchar();
        }
        else {
            printf("Yazi : ");
            gets(tmp);
            CopyFile((LPCSTR)filename,"out.exe",FALSE);
            if (NULL == (dest = fopen("out.exe","a+b"))) {
                return 1;
            }
            tmp[BUFSIZE-1] = 0xFF;
            fwrite(tmp,1,BUFSIZE,dest);
            fclose(dest);
        }
        return 0;
    }
    

     


    -----------------------------

    Tam aradığım şeydi çok teşekkür ederim.Şu an deneme fırsatım yok fakat yaziyi yazip programı kapattıktan sonra bu exeyi farkli bir bilgisayara atsam orda bana yazdığım yazının çıktısını vermekte problem yaşamaz değil mi ?

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    OnLyGoDCaNStoPMe bunu yazdı:
    -----------------------------
     

    Tam aradığım şeydi çok teşekkür ederim.Şu an deneme fırsatım yok fakat yaziyi yazip programı kapattıktan sonra bu exeyi farkli bir bilgisayara atsam orda bana yazdığım yazının çıktısını vermekte problem yaşamaz değil mi ?


    -----------------------------

    problem olmaz, çıkan exe nin üreten ile ilgisi yok. derleyici yoksa exe ile deneyebilirsin.

    http://www.sendspace.com/file/1sk1vc

     

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    OnLyGoDCaNStoPMe
    OnLyGoDCaNStoPMe's avatar
    Kayıt Tarihi: 24/Mart/2010
    Erkek

    Tugberk bunu yazdı:
    -----------------------------

    OnLyGoDCaNStoPMe bunu yazdı:
    -----------------------------
     

    Tam aradığım şeydi çok teşekkür ederim.Şu an deneme fırsatım yok fakat yaziyi yazip programı kapattıktan sonra bu exeyi farkli bir bilgisayara atsam orda bana yazdığım yazının çıktısını vermekte problem yaşamaz değil mi ?


    -----------------------------

     

    problem olmaz, çıkan exe nin üreten ile ilgisi yok. derleyici yoksa exe ile deneyebilirsin.

    http://www.sendspace.com/file/1sk1vc

     


    -----------------------------

    Çok sağol hocam hiçbir sorun çıkmadı.

Toplam Hit: 1757 Toplam Mesaj: 9