New Pack Protection

  • Konuyu açan Konuyu açan Belgrand
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 437

Belgrand

Üye
Üye
Mesaj
10
Beğeni
25
Puan
50
Ticaret Puanı
0
Merhabalar, Packlerinizi açarak içerisindeki animasyon veya diğer sistemler ile oynama yaparak hile veya bug yapımlarının %100 engelidir.


// üst kısımlara ekle

Kod:
Genişlet Daralt Kopyala
#include <cstdlib>
#include <cstdint>
#include <string>
#include <filesystem> // C++17'den itibaren mevcut
#include "Check_Byte.h"

// arat ve üstüne ekle bool __CheckPyLibFiles()

Kod:
Genişlet Daralt Kopyala
std::uint64_t get_directory_size(const std::string& directory)
{
    std::uint64_t size = 0;
    for (const auto& entry : std::filesystem::recursive_directory_iterator(directory))
    {
        if (std::filesystem::is_regular_file(entry.path()))
        {
            size += std::filesystem::file_size(entry.path());
        }
    }
    return size;
}

// arat ve kod satırının altına ekle if (!PackInitialize("pack"))

Kod:
Genişlet Daralt Kopyala
std::string pack_directory = "pack"; // Gerekirse bu yolu ayarlayin (exe'nin çıktı alındığı yerde pack klasörü ve içinde pack dosyaları olmalı)


// pack dosyasının diskteki boyutunu alma
std::uint64_t current_size = get_directory_size(pack_directory);

// dosyanın boyutunu Check_Byte.h'ye aktarılan boyutla karşılaştırma
if (current_size != pack_directory_byte_count)
{
    LogBox("Pack dosyasinda degisiklikler var!");
    return false;
}


// Visual Studio'da UserInterface sağ tıklayıp Özellikler > Derleme Olayları > Derleme Öncesi > Komuta satırı kısmına ekle

Kod:
Genişlet Daralt Kopyala
@echo off
set "BYTE_CHECKSUM_HEADER=$(ProjectDir)Check_Byte.h"
set "PACK_DIR=$(OutDir)pack"
echo #pragma once > "%BYTE_CHECKSUM_HEADER%"
echo // Auto file count >> "%BYTE_CHECKSUM_HEADER%"
echo ^#include ^<cstdint^> >> "%BYTE_CHECKSUM_HEADER%"
powershell -command "(Get-ChildItem -Recurse -File '%PACK_DIR%' | Measure-Object -Property Length -Sum).Sum" > temp_byte_count.txt
set /p BYTE_COUNT=<temp_byte_count.txt
del temp_byte_count.txt
echo const std::uint64_t pack_directory_byte_count = %BYTE_COUNT%; >> "%BYTE_CHECKSUM_HEADER%"

echo Byte count "%BYTE_CHECKSUM_HEADER%".
exit /b 0

// Userinterface içine Check_Byte.h diye dosya oluştur ve içine ekle

Kod:
Genişlet Daralt Kopyala
#pragma once 
// Dosya boyutu için otomatik olarak oluşturulan dosya
#include <cstdint> 
const std::uint64_t pack_directory_byte_count = 2087427000;
 
Can someone explain what this is?
with this method, you have the opportunity to secure the 'pack' folder more effectively. It also helps prevent your pack from being shared illegally (warez) and partially mitigates potential injection attempts.
 
with this method, you have the opportunity to secure the 'pack' folder more effectively. It also helps prevent your pack from being shared illegally (warez) and partially mitigates potential injection attempts.
Warezlik bir şey görmüyorum yapılan geliştirmede, client’ı derlerken içine hangi pack kaç byte tutuyorsa onu gömüyorsunuz, client oyunu açarken packlerde değişiklik yapılıp yapılmadığını dosya büyüklüğüne göre kontrol ediyor.

Herhangi bir debugger ile koyulan hata mesajını geçmek 1 dakika falan sürer, kesinlikle koruma sağlamaz.

Ayrıca her pack güncellediğinizde client’ı da tekrar derlemek zorunda kalırsınız.
 
Paylaşımınız için teşekkürler fakat günümüz standartlarında bu koruma bir işe yaramayacaktır, client src üzerinde yapacağınız "koruma" adı altındaki hamlelerin bir sonuca ulaşması için .exe dosyanızı potansiyel manipülasyonlardan korumak için mutlaka bir protector 3.parti yazılım kullanmanız lazım (Themida, Enigma Protector vs. ve tabi kesinlikle en güncel versiyonları) fakat bunlar bile %100 ulaşılmaz hale getirmiyor, sadece işleri çok zorlaştırırlar. Aynı zamanda sadece boyut kontrolü yapmakta anlamsız çünkü dosyada istediği değişikliği yapıp aynı boyutta paketleyerek bu engeli aşabilirler, yani kısacası yöntem başlangıç seviyesinde bilgisi olan insanları belki uzak tutabilir ama işini bilen birisi için çok kısa sürede egale edilebilir, sevgiler.
 
hiç packlarla oynama yapmadan animasyon hileleri yapılıyor enigma denedim ondada yapılıyor.dreamfancy animasyon hile progrmaını deneyebiliirsiniz bu sistemde işe yaramıyor
 
Geri
Üst