Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Jass
Тип:
Наработка
Версия Warcraft:
1.26a

Внимание!

Все последующие обновления моих ресурсов будут делаться в моей вк группе, которую можно найти в профиле.

Внимание!

При скачивании, Вам будет доступна тестовая карта, открываемая в JNPG World Editor.
Вы можете как тестировать хаки на этой карте, так и в целом скопировать все триггеры к себе в карту и тестировать в своей карте.
Мой совет, лучше в начале проверьте всё на моей карте, чтобы убедиться в том, что всё работает для ВАС как надо, а затем уже начинайте заниматься переносом.
Тем, кому WE неудобен как мне, можете смело брать war3map,j и из него переносить код, только надо будет немного очистить от ненужного кода WE.
Спасибо за внимание!

Что делает Антихак:

Антихак проверяет валидность байтов по заданным адресам и в случае не соответствия, в зависимости от флага в переменной bIsHackKick решает, что делать. Если хак можно запатчить (отключить), то будет вызвана функция PatchMemory, которая восстановит валидные байты в памяти, которые были изменены хаком. Если же АнтиХак не может запатчить хак, то игрок будет кикнут вне зависимости от флага bIsHackKick.
Кик определяется выделением невыделяемого обычными мерами юнита, благодаря которому, вызывается триггер TriggerRegisterPlayerUnitEvent с ивентом EVENT_PLAYER_UNIT_SELECTED. Что позволяет нам посылать в общий чат сообщение о том, что тот или иной игрок был выкинут за хаки.
Спидхак и в целом изменения системных .dll всегда приводят к выкидыванию нарушителя, так как восстановить системные .dll, а точнее детуры или хуки не является возможным.

Содержит:

  1. 120 адресов, которые потенциально используются хаками.
  2. 30 VТаблиц, которые потенциально используются хаками.
  3. Обнаружение Unreal MapHack от Karaul0v.
  4. Практически полное обнаружение хака W3SH.
  5. Практически полное обнаружение хака RGC Hack.
  6. Практически полное обнаружение TFTLocal.
  7. Обнаружение SpeedHack.

Требования:

  1. JNPG и знания работы с кодом.
  2. Warcraft 3 версии 1.26а и только 1.26а.
  3. Открыть карту в JNPG или же вытащить war3map.j код с помощью MPQ Editor.
Если открыли в JNPG:
  1. Скопируйте все триггеры в вашу карту.
  2. Вызовите функцию Init_MemoryHack ровно 1 раз.
Если открыли в Notepad++
  1. Вставить natives из кода над globals.
  2. Вставить переменные из globals в Вашу карту.
  3. Вставить остальной код сохраняя целостность в любое выбранное Вами место.
  4. Не забыть вызвать функцию Init_MemoryHack (желательно из main функции).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
5 лет назад
0
Смысл в том, что удобнее использовать отдельный код, который может работать без мемхака
Мемхак может работать без мемхака, это как-то странно.
0
20
5 лет назад
0
NazarPunk:
Смысл в том, что удобнее использовать отдельный код, который может работать без мемхака
Мемхак может работать без мемхака, это как-то странно.
Чего...? Речь о коде для антисейва, читайте внимательно.
1
16
5 лет назад
1
не понял, нафига в антихаке ряд повторяющихся бессмысленных проверок
		call CheckAddrData(   7, 0x36143C, 0x00000001 ) //							|
		call CheckAddrData(   8, 0x36143D, 0x00000001 ) //							|
		call CheckAddrData(   9, 0x36143E, 0x00000001 ) //							|
		call CheckAddrData(  10, 0x36143F, 0x00000001 ) //__________________________|
4 подряд на один и тот же адрес, потому что чтения нечетных адресов нет
0
20
5 лет назад
Отредактирован Unryze
0
DracoL1ch:
не понял, нафига в антихаке ряд повторяющихся бессмысленных проверок
		call CheckAddrData(   7, 0x36143C, 0x00000001 ) //							|
		call CheckAddrData(   8, 0x36143D, 0x00000001 ) //							|
		call CheckAddrData(   9, 0x36143E, 0x00000001 ) //							|
		call CheckAddrData(  10, 0x36143F, 0x00000001 ) //__________________________|
4 подряд на один и тот же адрес, потому что чтения нечетных адресов нет
Ну, эти адреса были в ZodCraft и шли они вот так подряд, я исходил из этого, ну и похожее было в Neon хаке (не Xenon), просто я думал, что раз они по ним делают изменения, то должен же быть смысл - это одни из первых адресов, которые я вписывал, тогда считай на абум добавлял, если реально это бессмысленно и тому есть прямое подтверждение, то убрать не проблема.
Но тогда спрашивается почему разработчики хаков это делают? :D
Так же если их читать через GameDll а не через мемхак по GameBase то получается вот это:
CheckMHData( 7, 0x36143C, 0x00000001 );
CheckMHData( 8, 0x36143D, 0xD3000000 );
CheckMHData( 9, 0x36143E, 0xE8D30000 );
CheckMHData( 10, 0x36143F, 0x3BE8D300 );
Не исключено, что чтение через C++ идёт в разрез с чтением через мемхак, но адреса выдают же значения, а не пустышки, хотя они нечётные.
3
16
5 лет назад
3
так ты когда офсет на 4 делишь, у тебя падают все 4 к "36143C/4", три последующих не имеют смысла, поэтому и сказал
0
20
5 лет назад
0
DracoL1ch:
так ты когда офсет на 4 делишь, у тебя падают все 4 к "36143C/4", три последующих не имеют смысла, поэтому и сказал
А, точно, вот с этим я затупил (мы же делим целочисленные), спасибо, а то я в глаза долбился, 2 + за наводку :)
0
16
5 лет назад
0
а в 79/80 у тебя будет ложное срабатывание, если GameDLL окажется не на 6F000000
0
20
5 лет назад
0
DracoL1ch:
а в 79/80 у тебя будет ложное срабатывание, если GameDLL окажется не на 6F000000
На удивление ещё ни разу не было, но, как вариант, что нужно сделать, чтобы GameDLL был не на 6F000000? Просто это чудо уже отслужило в FOA/MVB/AFB/NL/NWU и ещё паре карт, но вот когда я VTables проверял тупо как адреса, вот там ложных срабатываний была уйма :(
Кстати, я по твоей подсказке зачистил от лишних адресов, думаю позже апдейтнуть. И такой вопрос, можно ли как-то Мемхаком как в С взять и "реверсить" хак? Ну, возвращать оригинальное значение? В С вышло, а вот на Джассе не хочет падла, фаталит :(
0
16
5 лет назад
0
это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
0
20
5 лет назад
0
DracoL1ch:
это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
Ну, Mssseax я кстати местами спутал с Reverb2.flt, но этот файлик использовал W3SH хак, хотя по факту все адреса оттуда я и так детекчу, потому думаю стоит это убрать.
Такс, а разве запись и чтение карты не открывается как раз в инициализации? Если нет, то можешь подсказать, через что нужно разблокировать запись? Просто я думаю если это сделать, то лучше просто "восстанавливать" локально читеру память и деактивировать чит, нежели кикать.
1
16
5 лет назад
1
ChangeOffsetProtection как всегда
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.