Гость FanatAcc Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 Столкнулся с такой проблемой, не могу додуматься как попытаться найти плавающие значение кулдауна (время которого невозможно нажать какой либо спел) в ММО игре можно ли это время как-то заморозить чтобы не ждать кд? Например кд 4 минуты после применения заклинания нужно ждать 4 минуты, как это время убрать? В СЕ шарю не много. Прошу поподробней. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 Может не стоит тратить время и искать кулдаун, а найти флаг который не позволяет использовать способность? 100% вариант искать неизвестное изменилось/ не изменилось, найдётся все. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 1 минуту назад, partoftheworlD сказал: Может не стоит тратить время и искать кулдаун, а найти флаг который не позволяет использовать способность? 100% вариант искать неизвестное изменилось/ не изменилось, найдётся все. Человек вроде как говорит о ОНЛАЙН игре Думаю нету смысла искать такое в онлайн игре. Хотя всякое возможное. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 (изменено) 9 минут назад, what228 сказал: Человек вроде как говорит о ОНЛАЙН игре Думаю нету смысла искать такое в онлайн игре. Хотя всякое возможное. Главное что-нибудь найти от чего можно оттолкнуться, а после стоит решать проблемы по порядку, даже если со стороны сервера идёт это значение, как вариант всегда есть подделка запроса Придумать можно же разные варианты, а вот будут ли они работать. зы В Wow же делали всякие разные хаки, где можно было летать, убивать всех на сервере. Изменено 10 мая, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 что за игра ? Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 (изменено) 18 минут назад, partoftheworlD сказал: зы В Wow же делали всякие разные хаки, где можно было летать, убивать всех на сервере. Ну в WoW и я подобное делал ( Пиратки ). Но просто есть разница между пираткой на которой шанс слабой защиты больше чем на каком-то AAA проекте типа Tera\Lineage 2\RF\AA ну и т.д. Но опять же нужно знать что хочет сделать ТС P.S. Не много оффтопика. Ребят ни кто не знает какой нибудь сайт с кистями и прочем для ФШ? Изменено 10 мая, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 Только что, what228 сказал: Но просто есть разница между пираткой на которой шанс слабой защиты больше чем на каком-то проекте типа Tera\Lineage 2\RF\AA ну и т.д. Не играл в этот жанр, так что не знаю с чем даже сравнить чтобы понять. 1 минуту назад, what228 сказал: Но опять же нужно знать что хочет сделать ТС 1 час назад, FanatAcc сказал: как попытаться найти плавающие значение кулдауна Пока видимо найти таймер и после сделать быструю перезарядку. Хотя даже идей нет как это провернуть, если только не отправлять на сервер информацию о том что была использована способность, но тогда возможно это будет только локальный хак на сервере никто не увидит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 2 часа назад, FanatAcc сказал: можно ли это время как-то заморозить чтобы не ждать кд? Можно сделать всё что угодно, невозможно нет - было бы желание и время. А посоветовать, ну не знаю, лично я онлайн игры не ломал, тем более, если они многопользовательские. Могу только для примера выложить свои скрипты для King's Bounty - The Legend (но во-первых она локальная, во-вторых пошаговая стратегия) : 1. Скрипт "Without Holiday Spirits": Скрытый текст { Game : KB.exe Version: Date : 2016-07-30 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(HolidaySpirits,KB.exe,01 68 08 83 78 08 00) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(HolidaySpirits) newmem: jmp HolidaySpirits+9 code: add [eax+08],ebp cmp dword ptr [eax+08],00 jmp return HolidaySpirits: jmp newmem db 90 90 return: [DISABLE] HolidaySpirits: db 01 68 08 83 78 08 00 unregistersymbol(HolidaySpirits) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "KB.exe"+C9B4D "KB.exe"+C9B2F: CC - int 3 "KB.exe"+C9B30: 57 - push edi "KB.exe"+C9B31: 33 FF - xor edi,edi "KB.exe"+C9B33: 39 BE 04 03 00 00 - cmp [esi+00000304],edi "KB.exe"+C9B39: 0F 86 8C 00 00 00 - jbe KB.exe+C9BCB "KB.exe"+C9B3F: 53 - push ebx "KB.exe"+C9B40: 55 - push ebp "KB.exe"+C9B41: 83 CD FF - or ebp,-01 "KB.exe"+C9B44: 8B 86 00 03 00 00 - mov eax,[esi+00000300] "KB.exe"+C9B4A: 8B 04 B8 - mov eax,[eax+edi*4] // ---------- INJECTING HERE ---------- "KB.exe"+C9B4D: 01 68 08 - add [eax+08],ebp "KB.exe"+C9B50: 83 78 08 00 - cmp dword ptr [eax+08],00 // ---------- DONE INJECTING ---------- "KB.exe"+C9B54: 7F 66 - jg KB.exe+C9BBC "KB.exe"+C9B56: 8B 8E 00 03 00 00 - mov ecx,[esi+00000300] "KB.exe"+C9B5C: 83 3C B9 00 - cmp dword ptr [ecx+edi*4],00 "KB.exe"+C9B60: 8D 04 B9 - lea eax,[ecx+edi*4] "KB.exe"+C9B63: 74 10 - je KB.exe+C9B75 "KB.exe"+C9B65: 8B 00 - mov eax,[eax] "KB.exe"+C9B67: 85 C0 - test eax,eax "KB.exe"+C9B69: 74 0A - je KB.exe+C9B75 "KB.exe"+C9B6B: 8B 10 - mov edx,[eax] "KB.exe"+C9B6D: 8B C8 - mov ecx,eax } 2. "Cooldown abilities of units - one round": Скрытый текст { Game : KB.exe Version: Date : 2016-07-31 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(abilities,KB.exe,8B 88 94 00 00 00 8B 80) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(abilities) newmem: mov [eax+00000094],0 code: mov ecx,[eax+00000094] jmp return abilities: jmp newmem nop return: [DISABLE] abilities: db 8B 88 94 00 00 00 unregistersymbol(abilities) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "KB.exe"+191383 "KB.exe"+19135B: C1 E8 09 - shr eax,09 "KB.exe"+19135E: A8 01 - test al,01 "KB.exe"+191360: 0F 85 3A 0B 00 00 - jne KB.exe+191EA0 "KB.exe"+191366: 8B 44 24 1C - mov eax,[esp+1C] "KB.exe"+19136A: 8B 4C 24 2C - mov ecx,[esp+2C] "KB.exe"+19136E: 8B 55 0C - mov edx,[ebp+0C] "KB.exe"+191371: 89 84 8A 6C 03 00 00 - mov [edx+ecx*4+0000036C],eax "KB.exe"+191378: 8B 90 98 00 00 00 - mov edx,[eax+00000098] "KB.exe"+19137E: 41 - inc ecx "KB.exe"+19137F: 89 4C 24 2C - mov [esp+2C],ecx // ---------- INJECTING HERE ---------- "KB.exe"+191383: 8B 88 94 00 00 00 - mov ecx,[eax+00000094] // ---------- DONE INJECTING ---------- "KB.exe"+191389: 8B 80 8C 00 00 00 - mov eax,[eax+0000008C] "KB.exe"+19138F: 89 44 24 40 - mov [esp+40],eax "KB.exe"+191393: 8B 45 08 - mov eax,[ebp+08] "KB.exe"+191396: 8B B0 94 00 00 00 - mov esi,[eax+00000094] "KB.exe"+19139C: 8B 98 8C 00 00 00 - mov ebx,[eax+0000008C] "KB.exe"+1913A2: 89 4C 24 30 - mov [esp+30],ecx "KB.exe"+1913A6: 89 54 24 70 - mov [esp+70],edx "KB.exe"+1913AA: 8B FB - mov edi,ebx "KB.exe"+1913AC: 85 F6 - test esi,esi "KB.exe"+1913AE: 74 14 - je KB.exe+1913C4 } 3. "Infinite abilities units": Скрытый текст { Game : KB.exe Version: Date : 2016-07-31 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(abilities1,KB.exe,8B A9 8C 00 00 00 68) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(abilities1) newmem: mov [ecx+0000008C],2 code: mov ebp,[ecx+0000008C] jmp return abilities1: jmp newmem db 90 return: [DISABLE] abilities1: db 8B A9 8C 00 00 00 unregistersymbol(abilities1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "KB.exe"+4B8C0 "KB.exe"+4B8A2: 50 - push eax "KB.exe"+4B8A3: 51 - push ecx "KB.exe"+4B8A4: 68 38 18 F8 00 - push KB.exe+B81838 "KB.exe"+4B8A9: 8D 44 24 3C - lea eax,[esp+3C] "KB.exe"+4B8AD: 50 - push eax "KB.exe"+4B8AE: E8 BD 27 FD FF - call KB.exe+1E070 "KB.exe"+4B8B3: 83 C4 04 - add esp,04 "KB.exe"+4B8B6: 8B F0 - mov esi,eax "KB.exe"+4B8B8: E8 23 27 FD FF - call KB.exe+1DFE0 "KB.exe"+4B8BD: 8B 4F 30 - mov ecx,[edi+30] // ---------- INJECTING HERE ---------- "KB.exe"+4B8C0: 8B A9 8C 00 00 00 - mov ebp,[ecx+0000008C] // ---------- DONE INJECTING ---------- "KB.exe"+4B8C6: 68 14 29 F8 00 - push KB.exe+B82914 "KB.exe"+4B8CB: 8D 54 24 34 - lea edx,[esp+34] "KB.exe"+4B8CF: 52 - push edx "KB.exe"+4B8D0: E8 9B 27 FD FF - call KB.exe+1E070 "KB.exe"+4B8D5: 8B F0 - mov esi,eax "KB.exe"+4B8D7: 8B 0E - mov ecx,[esi] "KB.exe"+4B8D9: 85 C9 - test ecx,ecx "KB.exe"+4B8DB: 74 09 - je KB.exe+4B8E6 "KB.exe"+4B8DD: 8B 01 - mov eax,[ecx] "KB.exe"+4B8DF: 8B 50 0C - mov edx,[eax+0C] } Как выходил на адреса - честно говоря уже и не помню - скорее всего копался в "регионе памяти" (структурах юнитов и духов). Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 11 мая, 2017 Поделиться Опубликовано 11 мая, 2017 согласен с partoftheworlD. При невозможности использовать скил, игра наверняка выдает какое-либо сообщение(но а иначе никак). Ищешь это сообщение (ansi/unicode) далее ставишь на него бряк на доступ(достаточно на первый символ) и еще раз пытаешься использовать скил вовремя действия кд. После этих действий игра словит бряк, но скорее всего на каком-нибудь memcpy или lstrcpy(из нее нужно найти выход, тк мы работаем с модулем игры, а не сис вызовами), и теперь уже можешь разбирать цепочки функций, дабы понять, что могло заставить игру перейти к этому участку кода, когда это поймешь - поймешь как можно обойти кд. Но к сожалению только для клиента , потому что разработчики не такие дурачки, чтобы забыть о серверной проверки cooldown умений. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения