Çözüldü Cheat engine programını engellemek

  • Konuyu açan Konuyu açan legendxxx
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 119
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

legendxxx

Üye
Üye
Mesaj
19
Çözümler
1
Beğeni
2
Puan
408
Ticaret Puanı
0
Merhaba arkadaşlar cheat Engin'e ve benzeri programların engellemesini nasıl yapabilirim
 
Çözüm
Teşekkürler adminm Client açıkken cheat Engin'e çalışmasın açılması halinde Client kapansın bu şekil bir engelleme arıyorum.
Eğer bu tür basit bir şey istiyorsan aşağıdaki işlem isteğini karşılayacaktır.

PythonApplication.h:

C++:
Genişlet Daralt Kopyala
void UpdateGame();

//Altına ekle
bool IsProcessRunning(const char* processName);

PythonApplication.cpp:
C++:
Genişlet Daralt Kopyala
void CPythonApplication::GetMousePosition(..)
{
    ...
}

//Altına ekle:
bool CPythonApplication::IsProcessRunning(const char* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE)
        return false;

    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (Process32First(hSnapshot, &pe32))
    {...
Cheat engine ve injector gibi araçları %100 engellemek imkansıza yakın bir olaydır. Ancak zorlaştırılabilir.
Bu konudaki en büyük güvence yöntemi; client tarafındaki önemli ve kritik işlemleri dolaylı yoldan veya doğrudan servere taşımak. Tabi Metin2 buna ne kadar elverişli orası tartışılır...
Alternatif olarak internette bu tür girişimleri zorlaştırmak için farklı yöntemler mevcut ancak yine de kesin bir engel söz konusu değil.
 
Cheat engine ve injector gibi araçları %100 engellemek imkansıza yakın bir olaydır. Ancak zorlaştırılabilir.
Bu konudaki en büyük güvence yöntemi; client tarafındaki önemli ve kritik işlemleri dolaylı yoldan veya doğrudan servere taşımak. Tabi Metin2 buna ne kadar elverişli orası tartışılır...
Alternatif olarak internette bu tür girişimleri zorlaştırmak için farklı yöntemler mevcut ancak yine de kesin bir engel söz konusu değil.
Teşekkürler adminm Client açıkken cheat Engin'e çalışmasın açılması halinde Client kapansın bu şekil bir engelleme arıyorum.
 
Teşekkürler adminm Client açıkken cheat Engin'e çalışmasın açılması halinde Client kapansın bu şekil bir engelleme arıyorum.
Eğer bu tür basit bir şey istiyorsan aşağıdaki işlem isteğini karşılayacaktır.

PythonApplication.h:

C++:
Genişlet Daralt Kopyala
void UpdateGame();

//Altına ekle
bool IsProcessRunning(const char* processName);

PythonApplication.cpp:
C++:
Genişlet Daralt Kopyala
void CPythonApplication::GetMousePosition(..)
{
    ...
}

//Altına ekle:
bool CPythonApplication::IsProcessRunning(const char* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE)
        return false;

    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (Process32First(hSnapshot, &pe32))
    {
        do
        {
            if (strcmp(pe32.szExeFile, processName) == 0)
            {
                CloseHandle(hSnapshot);
                return true;
            }
        } while (Process32Next(hSnapshot, &pe32));
    }

    CloseHandle(hSnapshot);
    return false;
}

Daha sonra ise;
C++:
Genişlet Daralt Kopyala
void CPythonApplication::RenderGame()
{
    if (!PERF_CHECKER_RENDER_GAME)
    {
        [...]
        
        // Ekle
        // Windows not defteri açıldığı an client kapanır.
        if (IsProcessRunning("Notepad.exe")) // büyük-küçük harf duyarlı
        {
            Abort();
        }
        
        [...]
    [...]
    }
}

Son olarak PythonApplication.cpp include listesine ekle:
C++:
Genişlet Daralt Kopyala
#include <windows.h>
#include <tlhelp32.h>
#include <iostream>


Bu tam olarak istediğin şeyi yapar. Verilen kodları kendi bilgine ve tecrübene göre geliştirebilirsin.
 
Çözüm
Linkleri görebilmek için giriş yap veya kayıt ol.


CPythonApplication::UpdateGame ya da direkt python üzerinden yönlendirmeli olarak kontrol edebilirsiniz

Kod:
Genişlet Daralt Kopyala
std::vector<CRCPair> results;
while (ProcessScanner_PopProcessQueue(&results))
{
    for (const auto& [crc, path] : results)
    {
        if (crc == blacklisted_crc)
        {
            ...
        }
    }
}

blacklisted_crc için ise cheat engine ait pathin crc değerini vermeniz gerekiyor, örnek
Kod:
Genişlet Daralt Kopyala
const auto cheatEnginePath = "C:\\Program Files\\Cheat Engine 7.5\\cheatengine-x86_64.exe";
const auto blacklisted_crc = GetCRC32(cheatEnginePath, strlen(cheatEnginePath));
 
Eğer bu tür basit bir şey istiyorsan aşağıdaki işlem isteğini karşılayacaktır.

PythonApplication.h:

C++:
Genişlet Daralt Kopyala
void UpdateGame();

//Altına ekle
bool IsProcessRunning(const char* processName);

PythonApplication.cpp:
C++:
Genişlet Daralt Kopyala
void CPythonApplication::GetMousePosition(..)
{
    ...
}

//Altına ekle:
bool CPythonApplication::IsProcessRunning(const char* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE)
        return false;

    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (Process32First(hSnapshot, &pe32))
    {
        do
        {
            if (strcmp(pe32.szExeFile, processName) == 0)
            {
                CloseHandle(hSnapshot);
                return true;
            }
        } while (Process32Next(hSnapshot, &pe32));
    }

    CloseHandle(hSnapshot);
    return false;
}

Daha sonra ise;
C++:
Genişlet Daralt Kopyala
void CPythonApplication::RenderGame()
{
    if (!PERF_CHECKER_RENDER_GAME)
    {
        [...]
       
        // Ekle
        // Windows not defteri açıldığı an client kapanır.
        if (IsProcessRunning("Notepad.exe")) // büyük-küçük harf duyarlı
        {
            Abort();
        }
       
        [...]
    [...]
    }
}

Son olarak PythonApplication.cpp include listesine ekle:
C++:
Genişlet Daralt Kopyala
#include <windows.h>
#include <tlhelp32.h>
#include <iostream>


Bu tam olarak istediğin şeyi yapar. Verilen kodları kendi bilgine ve tecrübene göre geliştirebilirsin.
teşekkürler deneyeceğim.

Linkleri görebilmek için giriş yap veya kayıt ol.


CPythonApplication::UpdateGame ya da direkt python üzerinden yönlendirmeli olarak kontrol edebilirsiniz

Kod:
Genişlet Daralt Kopyala
std::vector<CRCPair> results;
while (ProcessScanner_PopProcessQueue(&results))
{
    for (const auto& [crc, path] : results)
    {
        if (crc == blacklisted_crc)
        {
            ...
        }
    }
}

blacklisted_crc için ise cheat engine ait pathin crc değerini vermeniz gerekiyor, örnek
Kod:
Genişlet Daralt Kopyala
const auto cheatEnginePath = "C:\\Program Files\\Cheat Engine 7.5\\cheatengine-x86_64.exe";
const auto blacklisted_crc = GetCRC32(cheatEnginePath, strlen(cheatEnginePath));
teşekkürler
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst