partoftheworlD Опубликовано 27 февраля, 2016 Поделиться Опубликовано 27 февраля, 2016 (изменено) При попытках манипуляций с игрой, желательно отключить синхронизацию со стимом и скопировать сохранение. Скрытый текст int __stdcall Exp_Func(int Match_Exp, int *a2) { int Match_Exp_1; // esi@1 _BYTE *v3; // eax@1 int v4; // ecx@1 int v5; // edx@1 int *Current_Exp; // ebx@3 _BYTE *v7; // eax@5 int v8; // edx@5 int v9; // ecx@5 _BYTE *v10; // eax@5 int v11; // ecx@6 int result; // eax@7 int v13; // [sp+Ch] [bp-4h]@1 Match_Exp_1 = Match_Exp; off_1D8A4C0 = 0; v3 = *(Match_Exp + 0x18); v4 = *(Match_Exp + 0x14); v13 = 0; v5 = *v3; *(Match_Exp + 0x18) = v3 + 1; (off_1DAD7D0[v5])(v4, Match_Exp_1, &v13); if ( dword_1D8A4C4 ) (*(*dword_1D8A4C4 + 204))(off_1D8A4A8); Current_Exp = off_1D8A4C0; if ( !off_1D8A4C0 ) Current_Exp = &v13; v7 = *(Match_Exp_1 + 0x18); Match_Exp = 0; v8 = *v7; v9 = *(Match_Exp_1 + 0x14); *(Match_Exp_1 + 0x18) = v7 + 1; (off_1DAD7D0[v8])(v9, Match_Exp_1, &Match_Exp); v10 = ++*(Match_Exp_1 + 0x18); if ( *v10 == 0x41 ) { v11 = *(Match_Exp_1 + 0x14); *(Match_Exp_1 + 0x18) = v10 + 1; off_1DAD8D4(v11, Match_Exp_1, 0); } result = Match_Exp; *Current_Exp += Match_Exp; *a2 = *Current_Exp; return result; } Изменение уровня в игре, не дает никакого преимущества, просто красивая надпись будет) Очень странно, что взлом работает и на локальном сервере и в онлайне. Искать можно способом неизвестного значения или по таблице уровней тип 4 байта. Как найдем адрес, ставим бряк на запись. И получаем одну инструкцию: Ну вот и наша инструкция( *Current_Exp += Match_Exp;). В EBX у нас количество текущего опыта(Current_Exp), а в EAX количество опыта полученного за матч( Match_Exp;) Изменено 27 февраля, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения