folder Tahribat.com Forumları
linefolder Visual Basic - Basic - PicBasic ve Türevleri
linefolder [Visual Basic] Nasıl DLL Enjeksiyon Engellenir?



[Visual Basic] Nasıl DLL Enjeksiyon Engellenir?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anarsistherif
    anarsistherif's avatar
    Kayıt Tarihi: 27/Ağustos/2009
    Erkek

    Merhaba arkadaşlar, mesela bir program bir dll dosyasını notepad.exe'ye enjekte ediyor, bunu nasıl engelleriz?
    Aslında şöyle sorayım; Bir programın herhangi bir dosyaya dll enjekte etmesini nasıl önlerim?


    =)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RoadMaster
    RoadMaster's avatar
    Kayıt Tarihi: 02/Haziran/2003
    Erkek

    öncelikle enjeksiyon yapılan dosyanın MD5 ini alır Kendi yazdığın programınla değişikliğe göre takip ettirirsin.Enjeksiyon yapılırsa MD5 değişeceğinden dosyayı hafızadakiyle değiştirirsin bu şekilde dosya yenilenmiş olur.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anarsistherif
    anarsistherif's avatar
    Kayıt Tarihi: 27/Ağustos/2009
    Erkek

    Mantık güzel fakat enjeksiyon sırasında dosya boyutu değişmiyor. benim istediğim kernel seviyesinde engelleme. Basit bir enjeksiyon gerçekleşmiyor çünkü. Mesela şu aşağıdaki c++ kodu gibi. fakat bu kod çalışıyormu emin değilim ama direk sistem çekirdeğine etki ediyor. istediğim bu şekilde.  


    // ANTI DLL INJECTION by _FIL73R_

    #include

    BOOLEAN BlockAPI (HANDLE,CHAR *,CHAR *);
    void AntiInject ();

    /****************/
    main()
    {
    CreateThread (0,0, (LPTHREAD_START_ROUTINE)AntiInject, 0, 0, 0);
    while (TRUE); // loop forever... now to try and inject
    }
    /****************/

    void AntiInject ()
    {
    HANDLE hProc = GetCurrentProcess();
    while (TRUE) {
    BlockAPI(hProc, "NTDLL.DLL", "LdrLoadDll");
    Sleep (100);
    }
    }

    BOOLEAN BlockAPI (HANDLE hProcess, CHAR *libName, CHAR *apiName)
    {
    CHAR pRet[]={0xC3};
    HINSTANCE hLib = NULL;
    VOID *pAddr = NULL;
    BOOL bRet = FALSE;
    DWORD dwRet = 0;

    hLib = LoadLibrary (libName);
    if (hLib) {
    pAddr = (VOID*)GetProcAddress (hLib, apiName);
    if (pAddr) {
    if (WriteProcessMemory (hProcess,
    (LPVOID)pAddr,
    (LPCVOID)pRet,
    sizeof (pRet),
    &dwRet )) {
    if (dwRet) {
    bRet = TRUE;
    }
    }
    }
    FreeLibrary (hLib);
    }
    return bRet;
    }


    =)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Allura
    Allura's avatar
    Kayıt Tarihi: 17/Mayıs/2009
    Erkek

    hangi oyun için oldugunu söyle yardımcı olalım


    "
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    x3uqm4 bunu yazdı:
    -----------------------------

    Mantık güzel fakat enjeksiyon sırasında dosya boyutu değişmiyor. benim istediğim kernel seviyesinde engelleme. Basit bir enjeksiyon gerçekleşmiyor çünkü. Mesela şu aşağıdaki c++ kodu gibi. fakat bu kod çalışıyormu emin değilim ama direk sistem çekirdeğine etki ediyor. istediğim bu şekilde.  


    // ANTI DLL INJECTION by _FIL73R_

    #include

    BOOLEAN BlockAPI (HANDLE,CHAR *,CHAR *);
    void AntiInject ();

    /****************/
    main()
    {
    CreateThread (0,0, (LPTHREAD_START_ROUTINE)AntiInject, 0, 0, 0);
    while (TRUE); // loop forever... now to try and inject
    }
    /****************/

    void AntiInject ()
    {
    HANDLE hProc = GetCurrentProcess();
    while (TRUE) {
    BlockAPI(hProc, "NTDLL.DLL", "LdrLoadDll");
    Sleep (100);
    }
    }

    BOOLEAN BlockAPI (HANDLE hProcess, CHAR *libName, CHAR *apiName)
    {
    CHAR pRet[]={0xC3};
    HINSTANCE hLib = NULL;
    VOID *pAddr = NULL;
    BOOL bRet = FALSE;
    DWORD dwRet = 0;

    hLib = LoadLibrary (libName);
    if (hLib) {
    pAddr = (VOID*)GetProcAddress (hLib, apiName);
    if (pAddr) {
    if (WriteProcessMemory (hProcess,
    (LPVOID)pAddr,
    (LPCVOID)pRet,
    sizeof (pRet),
    &dwRet )) {
    if (dwRet) {
    bRet = TRUE;
    }
    }
    }
    FreeLibrary (hLib);
    }
    return bRet;
    }

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

    Hocam nasıl dosya boyutu değişmenden enjekte olabilir ki? Mutlaka oynama olması lazım. Veya içinden sildiği data kadar data yazması gerek ki dosya boyutu değişmesin, bu da zaten dosyanın bi daha çalışmaması demek...

    Ayrıca arkadaş md5'ini al demiş. Dosya boyutu byte'ına kadar aynı bile olsa, içeriği bir önceki dosyadan farklı olduğu için md5 file farklı sonuç üretecektir. Bu şekilde dosyanın değiştirildiğini anlayabilmen gerek bence..


    There are 10 types of people in the world. Those who knows binary and those who dont...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Caliber
    Caliber's avatar
    Kayıt Tarihi: 18/Aralık/2009
    Homo

    Bu md5 olayı ile sadece belli şeylerde halledilir. Atıyorum warezde dll enjekte ile sunumunuz illegal paylaşıma alet oluyorsa sizin o dll'yi bulmanız lazım ve ona göre engellemeniz lazım ki eğer siz programı sunmadıysanız ve cracker o dll'yi yazmadıysa nasıl md5 engelleyeceksiniz? E onun md5'ini aldığınız zaman hadi programınızı güncenlleyip engellediniz diyelim o zaman zaten güncel olduğu için cracker tekrardan debug edeceği için yeni dll yazacaktır. Yani md5 yöntemi yatar. :)

    Tam olarak bilgim yok ama .net'te sign zımbırtısı ile şifreleme yapılarak dll değişimi yahut enjekte ediliminin engellendiği bi' döküman okumuştum. O olayı araştırırsan işine yarar diye düşünüyorum.


    Tedbirsiz abdest bozmaya oturan, domala domala taş arar.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anarsistherif
    anarsistherif's avatar
    Kayıt Tarihi: 27/Ağustos/2009
    Erkek

    Allura bunu yazdı:
    -----------------------------

    hangi oyun için oldugunu söyle yardımcı olalım


    -----------------------------
    counter-strike :)

    NMC, Enjeksiyon engellenecek dosya OpenGL Teknolojisi kullanıyor. yani bir oyun. bu yüzden sistemdeki opengl kütüphanelerine(dll) enjeksiyon yapıyor. İşte bu yüzden istediğim sadece bir dosyayı kontrol altına almak değil, çekirdeğe enjeksiyonu engelleme tarzında bir şey.


    =)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    x3uqm4 bunu yazdı:
    -----------------------------

    Allura bunu yazdı:
    -----------------------------

    hangi oyun için oldugunu söyle yardımcı olalım


    -----------------------------
    counter-strike :)

    NMC, Enjeksiyon engellenecek dosya OpenGL Teknolojisi kullanıyor. yani bir oyun. bu yüzden sistemdeki opengl kütüphanelerine(dll) enjeksiyon yapıyor. İşte bu yüzden istediğim sadece bir dosyayı kontrol altına almak değil, çekirdeğe enjeksiyonu engelleme tarzında bir şey.


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

    sxe'ye rakip olma niyetindesin :D Baştan exe'ye injection dedin ona göre konuştuk.. Olay biraz daha farklı anlaşılan :)


    There are 10 types of people in the world. Those who knows binary and those who dont...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anarsistherif
    anarsistherif's avatar
    Kayıt Tarihi: 27/Ağustos/2009
    Erkek

    sXe yapımcılarına bir metin gönderdim. hatta konusu burda ( http://tahribat.com/Forum-Ingilizcesi-Olanlar-Bakabilir-Mi-117057/ ) bana cevap olarak, biz sadece halka açık hileleri engelliyoruz dediler. böyle rezillik yok adamlar anti-hileyide hileyide kendileri yapıyor. Hileyi engellemediği gibi, csye yük bindiriyor, oyun kasıyor ve olası bir hata veya çakışmada (örn: antivirüs çakışması) mavi ekran hatası veriyor. 

    DLL Enjeksiyon yapabiliyorum ama engelleme yapamıyorum. C++ koduda olabilir arkadaşlar lütfen yardım :(


    =)
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anarsistherif
    anarsistherif's avatar
    Kayıt Tarihi: 27/Ağustos/2009
    Erkek

    Yukarı.


    =)
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wh0
    wh0's avatar
    Kayıt Tarihi: 21/Temmuz/2008
    Homo
    merhaba. vb de bunu yapmak biraz zor... ancak delphi kullanirsan oldukca basit. kernel mode unhooking yaptiktan sonra magicapihook unitini kullanabilirsin. APIHOOK(dlladi,fonksiyonadi,callbackfonksiyonu,nextfonksiyonu); cok basit...

    🏴‍☠️Hi'dan gelen varır Who'ya, Hi'da onun adıdır Who'da...
Toplam Hit: 4303 Toplam Mesaj: 11