• 10-02-2015, 12:01:13
    #1
    Üyeliği durduruldu
    merhabalar

    bir hile engel sistemi yapıyorum

    burada dizi içerisinde md5 değerleri var

    döngü ile açık olan programları kontrol edip md5 değeri eşleşen

    programı nasıl kapatabiliriz
  • 10-02-2015, 13:36:43
    #2
    c++ 'da ;

    system("c:\Windows\System32\TaskKill /F /IM xxx.exe");

    komutunu çalıştırırsan xxx.exe programını kapatır. Bu işine yarayabilir.
  • 10-02-2015, 14:42:03
    #3
    PM atarsanız yardımcı olabilirim.
  • 10-02-2015, 18:02:00
    #4
    Üyeliği durduruldu
    devveloper adlı üyeden alıntı: mesajı görüntüle
    c++ 'da ;

    system("c:\Windows\System32\TaskKill /F /IM xxx.exe");

    komutunu çalıştırırsan xxx.exe programını kapatır. Bu işine yarayabilir.
    burada kapatmakla ilgili sorun yok döngü içerisinde çalışan programların md5 değerini alarak dizi içerisindeki md5 ile eşleşeni kapatmak
  • 10-02-2015, 21:43:57
    #5
    Anladığım kadarıyla çalışan programların Md5 checksum değerlerini alarak kontrol yapacaksın.

    İlk başta çalışan programların listesini alacaksın. (Process id vs...)
    http://www.cplusplus.com/forum/windows/45564/#msg247402

    C++ ile çok fazla çalışma fırsatım olmadı ama yukarıdaki örnekte pe32.szExeFile büyük ihtimal exe yolunu verecektir.

    http://stackoverflow.com/questions/1...of-a-file-in-c

    Bu örnekte md5 checksum değerinin alınması var. Process list gelirken teker teker checksum değerlerini alarak dizi içindeki checksumlar ile eşleşiyormu eşleşmiyor mu kontrolünü yapacaksın. Eşleşiyorsa taskkill yaparak kapatabilirsin.

    Bu arada eğer bu kontrolü yapan programa güvenlik koymazsan kolaylıkla bypass edilebilir.
  • 11-02-2015, 16:51:21
    #6
    Bu işe yaramayacaktır. Programı tekrar compile ettiklerinde farklı ve sizin haberiniz olmayan bir MD5'e sahip olacaktır.
    Hatta notepad ile açıp 1 byte değiştirip farklı kayıt ederse yine md5 değişir. Hileyi bu şekilde engelleyemezsiniz.
  • 11-02-2015, 18:38:31
    #7
    Anlamsız basit hayaller
  • 15-02-2015, 16:39:18
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    void TerminateProc(char* ProcName){
    	PROCESSENTRY32 pe32;
    	HANDLE hSnapshot = NULL;
    	pe32.dwSize = sizeof(PROCESSENTRY32);
    	hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    	
    	if (Process32First(hSnapshot, &pe32)){
    		do{
    			if (strcmp(pe32.szExeFile, ProcName) == 0) {
    				HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID); 
    				TerminateProcess(hProcess, NULL);
    			}
    		} while (Process32Next(hSnapshot, &pe32));
    	}
    
    	if (hSnapshot != INVALID_HANDLE_VALUE)
    		CloseHandle(hSnapshot);
    }
    
    void Kontrol_Kill_Proc(){
    	TerminateProc("cmd.exe");
    }
    Şeklnde bi fonksiyon yazmıştım bi süre önce md5 için yukarıda örnek verilmiş snapshot kısmındaki exefile yerine md5 için bi loop oluşturup kullanabilirsiniz

    Ancak ne kadar işe yarar orasında muamma, width height formstyle gibi anlamlı alternatiflerde deneyebilirsiniz

    Herneyse İlk olarak şunu belirteyim uygulama odaklı değil yöntem odaklı çözüme gitmeye çalışın İlla program olarak tespit etmem gerekiyor derseniz signature,entrypoint+byte blokları yada string-class daha çok iş görür düşüncesindeyim