[Sahibinden] Armağan Cube - Cuberenewal HackLogEx Fix !

  • Konuyu açan Konuyu açan TipsizFakir
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 18
  • Gösterim Gösterim 613

TipsizFakir

GANIRTIRIM
MT Üye
Mesaj
228
Çözümler
9
Beğeni
121
Puan
779
Ticaret Puanı
0
Selamlar arkadaşlar,
@Zalim33 dostumla birlikte bulduğumuz bir fixi, kimsenin canı yanmasın diye birçok sunucu sahibine ücretsiz olarak verdik. Ancak iyi niyetimiz bazı kişiler tarafından suistimal edilip, fix kendi buluşlarıymış gibi satılmaya başlandı. Bu durum bizi üzdüğü için, artık fixi herkesin erişimine açık şekilde paylaşıyoruz.


Fix tamamen ücretsizdir; sahibinden sizlere armağandır.
Eğer farklı forumlarda paylaşacaksanız, lütfen @Zalim33 ve benden alıntı olduğunu belirtmeyi unutmayın.


Herkese hayırlı olsun, güle güle kullanın.

Gelelim Şimdi Fix'e
Arat:
cuberenewal.cpp:
Genişlet Daralt Kopyala
void Cube_Make(LPCHARACTER ch, int index, int count_item, int index_item_improve)
{
    if (!ch)
        return;

Altına Ekle:
cuberenewal.cpp:
Genişlet Daralt Kopyala
    if (count_item < 0)
    {
        LogManager::instance().HackLogEx(ch, "[HATA] ***** COCUGU SINIRSIZ İTEM HİLESİ YAPIYOR.");
        return;
    }

    if (index_item_improve != -1)
    {
        LogManager::instance().HackLogEx(ch, "[HATA] ***** COCUGU SANS HİLESİ YAPIYOR..");
        return;
    }
Tekrar Arat:
cuberenewal.cpp:
Genişlet Daralt Kopyala
                if (materialInfo.gold != 0)
                {
                    ch->PointChange(POINT_GOLD, -static_cast<long long>(materialInfo.gold * count_item), false);
                }

Altına Ekle:
cuberenewal.cpp:
Genişlet Daralt Kopyala
                if (total_items_give <= 0)
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("It has failed."));
                    LogManager::instance().HackLogEx(ch, "[HATA] ****** EVLADI CUBE FAIL.");
                    sys_log(0, "%s - %d Cube window make failed", ch->GetName(), ch->GetPlayerID());
                    return;
                }

Arat:
input_login.cpp:
Genişlet Daralt Kopyala
    sys_log(0, "player_select: login: %s index: %d", c_r.login, pinfo->index);

    if (!c_r.id)
    {
        sys_err("no account table");
        return;
    }

Altına Ekle:
input_login.cpp:
Genişlet Daralt Kopyala
    if (d->GetEmpire() < 0 || d->GetEmpire() > 3)
    {
        LogManager::instance().HackLogEx(d, "CInputLogin::CharacterSelect try crash to game core. (GetEmpire)");
        d->SetPhase(PHASE_CLOSE);
        return;
    }

    if (pinfo->index >= PLAYER_PER_ACCOUNT)
    {
        LogManager::instance().HackLogEx(d, "CInputLogin::CharacterSelect try crash to game core. (index)");
        sys_err("index overflow %d, login: %s", pinfo->index, c_r.login);
        return;
    }

Müsait Bir Yere Ekle Log.cpp:
log.cpp:
Genişlet Daralt Kopyala
void LogManager::HackLogEx(LPCHARACTER ch, const char* textLine)
{
    if (!ch)
        return;

    LPDESC desc = ch->GetDesc();

    if (!desc)
        return;

    Query("INSERT INTO `log`.`log_hack_ex` (`player`, `player_name`, `account`, `account_name`, `textLine`, `time`) VALUES(%u, '%s', %u, '%s', '%s', '%s', '%s', '%s', '%s', NOW())", ch->GetPlayerID(), ch->GetName(), ch->GetAID(), desc->GetAccountTable().login, textLine);
}

void LogManager::HackLogEx(LPDESC desc, const char* textLine)
{
    if (!desc)
        return;

    DWORD player_id = 0;
    DWORD account_id = 0;

    LPCHARACTER ch = desc->GetCharacter();

    if (ch)
    {
        player_id = ch->GetPlayerID();
        account_id = ch->GetAID();
    }

    Query("INSERT INTO `log`.`log_hack_ex` (`player`, `player_name`, `account`, `account_name`, `textLine`, `time`) VALUES(%u, %u, 'Unknown', '%s', 'Unknown', '%s', '%s', '%s', '%s', NOW()", player_id, account_id, textLine);
}

void LogManager::HackLogEx(std::string stLogin, const char* textLine)
{
    Query("INSERT INTO log.log_hack_auth (account, textLine, time) VALUES('%s', `%s`, NOW())", stLogin.c_str(), textLine);
}

Müsait Bir Yere Ekle Log.h :
log.h:
Genişlet Daralt Kopyala
        void        HackLogEx(LPCHARACTER ch, const char* textLine);
        void        HackLogEx(LPDESC desc, const char* textLine);
        void        HackLogEx(std::string stLogin, const char* textLine);

questlua_global.cpp Arat:

quest_global.cpp:
Genişlet Daralt Kopyala
    int _get_special_item_group( lua_State* L )

Kod Bloğunun Bitişine Ekle:
quest_global.cpp:
Genişlet Daralt Kopyala
    int _hack_log_ex( lua_State* L )
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        const char* string = lua_tostring(L, 1);
        if (!ch)
        {
            LogManager::instance().HackLogEx("Bilinmiyor...", string);
            return 1;
        }
        LogManager::instance().HackLogEx(ch, string);
        return 1;
    }

Src Kısmı Bitti Mysql Kısmına Geçelim Log Kısmına "log_hack_ex.sql" olarak yükleyiniz:

Eğer ki Fix Atılmazsa Ne Olur Hemen Şu Şekilde Gösterelim:


1764621205364.webp


Log Kısmına Atılacak Sql



SQL:
Genişlet Daralt Kopyala
/*
 Navicat Premium Data Transfer

 Source Server         : TipsizFakir
 Source Server Type    : MariaDB
 Source Server Version : 100528 (10.5.28-MariaDB)
 Source Host           : 192.168.1.100:3306
 Source Schema         : log

 Target Server Type    : MariaDB
 Target Server Version : 100528 (10.5.28-MariaDB)
 File Encoding         : 65001

 Date: 31/07/2025 08:25:57
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for log_hack_ex
-- ----------------------------
DROP TABLE IF EXISTS `log_hack_ex`;
CREATE TABLE `log_hack_ex`  (
  `player` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `player_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'Noname',
  `account` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `account_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME',
  `textLine` varchar(1024) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME',
  `time` datetime NULL DEFAULT NULL
) ENGINE = Aria CHARACTER SET = latin1 COLLATE = latin1_swedish_ci PAGE_CHECKSUM = 1 ROW_FORMAT = Page TRANSACTIONAL = 1;

-- ----------------------------
-- Records of log_hack_ex
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;
 
En son bir moderatör tarafından düzenlenmiş:
geçen serverda yaşadık çözdük biz de aynı şeyi, çözümünü paylaşmış olman güzel.

27197 eklentisini görüntüle
şuanda piyasadaki en sağlamlar dahil %90 sunucuda bu açık var hemen hemen hepsinede ben ikaz ettim kayıtları mevcut çözüm bulmanız sizinde güzel elinize sağlık.
 
Sql kodları kısa olduğu için konu içeriğine dahil ettim. Ayrıca konu tamamı bold du. Siz isterseniz vurgulamak istediğiniz yerleri bold yapabilirsiniz. Katkılarınız için teşekkürler (y)
 
Sql kodları kısa olduğu için konu içeriğine dahil ettim. Ayrıca konu tamamı bold du. Siz isterseniz vurgulamak istediğiniz yerleri bold yapabilirsiniz. Katkılarınız için teşekkürler (y)
Rica ederim iyi kullanımlar
hem log tutup hem de engelleme yapıyor değil mi
evet
Metin2’de açık bitmez 😀 pamuk ipliğine bağlı
kesinlikle doğru
vatanseverde de vardı bu fix
paylaşsaydın o zaman
 
pyden gönderdiği şey ne acaba onu merak ettim ya. eline sağlık.
 
fix'i geçtim elemanların kendileri için oluşturduğu log'a bile sahip çıkıyorsun :d sahibinden ben yaptım tarzı şeylere gerek yok 3 5 beğeni alıcam diye düşürme kendini. bi ara 80 kişilik ekibi olan bi eleman vardı bi tık ona benziyosun. ege gibi olacaksın diye korkuyorum. dikkat et kendini uğraşma böyle şeylerle.

LogManager::instance().HackLog(".... COCUGU CUBE SANS.", ch);

deneyenlerin donanım bilgilerini istemeyen böyle de kullanabilir.
 
fix'i geçtim elemanların kendileri için oluşturduğu log'a bile sahip çıkıyorsun :d sahibinden ben yaptım tarzı şeylere gerek yok 3 5 beğeni alıcam diye düşürme kendini. bi ara 80 kişilik ekibi olan bi eleman vardı bi tık ona benziyosun. ege gibi olacaksın diye korkuyorum. dikkat et kendini uğraşma böyle şeylerle.

LogManager::instance().HackLog(".... COCUGU CUBE SANS.", ch);

deneyenlerin donanım bilgilerini istemeyen böyle de kullanabilir.
nolmuş benim sonuma :unsure:
 
Geri
Üst