HLFX.Ru Forum
Показать все 23 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- GoldSource BSP Replacement (https://hlfx.ru/forum/showthread.php?threadid=3115)


Отправлено qpAHToMAS 26-11-2011 в 13:51:

Хитрота GoldSource BSP Replacement

Я черт его знает как такое можно было найти, но это действительно работает:
http://www.funnydb.com/full_471225403550.jpg
http://www.csfight.net/wallhack.php
Интересно, в Xash 3D тоже получится? Там конечно сложнее будет повторить из-за другого интерфейса, но в теории?


Отправлено FiEctro 26-11-2011 в 14:10:

qpAHToMAS
Да ты читер!

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено marikcool 26-11-2011 в 15:12:

в теории подмени карту нагло заменив без манипуляций зайди на xashds и должно пройти)
если не прет лезем в исходник и палим как Дядя Миша верифицирует файлы клиента и сервака, форсируем на свой даст2 контрольную сумму оригинала ну и читерим)


Отправлено XaeroX 26-11-2011 в 15:16:

Цитата:
marikcool писал:
форсируем на свой даст2 контрольную сумму оригинала

Это каким образом, например?

__________________

xaerox on Vivino


Отправлено Дядя Миша 26-11-2011 в 15:52:

Цитата:
marikcool писал:
в теории подмени карту нагло заменив без манипуляций зайди на xashds и должно пройти)

C++ Source Code:
if( !cls.demoplayback && map_checksum != cl.checksum )
  Host_Error( "Local map version differs from server: %i != '%i'\n", map_checksum, cl.checksum );

Не знаю как в халфе, а в ксаше валидация ресурсов происходит, собственно уже после загрузки карты в память.
То есть там чота подменить не получится.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено marikcool 26-11-2011 в 19:44:

Цитата:
XaeroX писал:
Это каким образом, например?

ну сдампить checksum оригинала, ну а потом в условие вычесление чексумы по названию файла вернуть сумму оригинала, сервер сверит данные скажет все ок заходите.


Отправлено XaeroX 27-11-2011 в 03:35:

marikcool
Как именно ты предлагаешь выставить файлу нужную чексумму?
И да, она вычисляется не по названию, а по содержимому.

__________________

xaerox on Vivino


Отправлено qpAHToMAS 27-11-2011 в 05:20:

А мне в голову первой мыслью пришла подделка пакета, отправляемого серверу с другой контрольной суммой . Вот правда я не знаю на сколько это возможно...

И да, очередной раз убеждаемся в том, что встроенный функционал по снятию скнимков экрана и их передачи просто обязан быть в сетевых играх.

Цитата:
Дядя Миша писал:
Не знаю как в халфе, а в ксаше валидация ресурсов происходит, собственно уже после загрузки карты в память.
То есть там чота подменить не получится.

Ну вот, еще одна хорошая новость .


Отправлено Дядя Миша 27-11-2011 в 08:25:

Цитата:
qpAHToMAS писал:
А мне в голову первой мыслью пришла подделка пакета, отправляемого серверу с другой контрольной суммой

дык серверу ничего не отправляется. Клиент сравнивает чексумму от сервера с тем, что у него получилось и обрывает соединение.
Можно похитрее сделать - рассчитать чексумму два раза.
Первый раз - при приходе svc_serverdata, когда мы уже имеем имя карты и чексумму. Если она не совпадет, делаем вид что всё в порядке, а сами беспаливно шлем на сервер информацию про читёра. Ну и продолжаем процесс соединения. А затем уже по окончанию загрузки сравниваем CRC еще раз и дисконнектим клиента. Впрочем даже если его не дисконнектить, то он через 60 секунд он отвалится сам, поскольку заранее предупрежденный сервер попросту не будет слать ему апдейты.
Впрочем подобные защиты хороши только проектах с закрытыми сорцами.
Практика показывает что это самый надежный и устойчивый метод от взлома - когда в программу изначально закладывается возможность того, что её взломают в каком-то месте. В этом случае она делает вид, что хакер задачу выполнил, а скажем, через 15 минут работы начинает сыпать адскими полурандомными глюками в совершенно постороннем месте. И пока ты сообразишь в чём же там на самом деле было дело - уйдет немало времени.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено qpAHToMAS 27-11-2011 в 09:14:

Цитата:
Дядя Миша писал:
дык серверу ничего не отправляется. Клиент сравнивает чексумму от сервера с тем, что у него получилось и обрывает соединение.

А я то думал, что клиент отсылает серверу CRC своей карты, а сервер уже после сравнения отвечает вердиктом, пускать его на сервер или нет .

Цитата:
Дядя Миша писал:
Практика показывает что это самый надежный и устойчивый метод от взлома - когда в программу изначально закладывается возможность того, что её взломают в каком-то месте. В этом случае она делает вид, что хакер задачу выполнил, а скажем, через 15 минут работы начинает сыпать адскими полурандомными глюками в совершенно постороннем месте. И пока ты сообразишь в чём же там на самом деле было дело - уйдет немало времени.

Ну, на сколько я знаю, так VAC (VALVe Anti-Cheat) действует. Находит читера-клиента и банит его после random'ного промежутка времени.

И еще, если заменить карту как в том "туториале", то внешне карта будет отличаться, но конечно же бегать ты будешь по прежнему в карте-оригинале. Это получается, что клиент принимает "материальность" карты себе и использует ее?

Добавлено 27-11-2011 в 13:14:

А почему MD5 не используется, а именно CRC? Быстрее?


Отправлено Scrama 27-11-2011 в 10:43:

Цитата:
qpAHToMAS писал:
клиент принимает "материальность" карты себе и использует ее?
Угу, физика считается сервером.
Цитата:
qpAHToMAS писал:
А почему MD5 не используется, а именно CRC? Быстрее?
MD5 - один из вариантов расчета CRC, так-то!

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено XaeroX 27-11-2011 в 11:25:

Потому что MD5 многобайт, а CRC32 малобайт.

__________________

xaerox on Vivino


Отправлено Дядя Миша 27-11-2011 в 12:00:

Цитата:
qpAHToMAS писал:
Это получается, что клиент принимает "материальность" карты себе и использует ее?

только для предиктинга. То есть если в ложной карте будет проём, а на оригинальной - стена, то попытавшись пройти в этот проём получим глюк предиктинга, когда игрока швырнет обратно.
Как глюки предиктинга способствуют читёрству - это отдельный интересный вопрос.
Цитата:
qpAHToMAS писал:
А почему MD5 не используется, а именно CRC? Быстрее?

а что изменится от использования MD5?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено marikcool 27-11-2011 в 18:56:

500 метровый файл по crc быстре расчитывается чем по мд5, крк подделать еще можно там вариаций в разы меньше чем в мд5.


Отправлено qpAHToMAS 27-12-2011 в 03:07:

А вообще, я тут позабавился с отправкой клиентских пакетов игры на HLDS, получилось интересно, ведь можно несколькими сообщениями добавить в таблицу игроков на сервере нового игрока с желаемым никнеймом, буд-то тот подключается к серверу.
Если в цикле добавить несколько таких "игроков", то к серверу вообще ни кто не сможет подключиться некоторое время (пока фейков по тайм-ауту не выкинет с сервера).

PS:
Я не много знаю о UDP, но меня глючит, либо возможна ситуация отправки UDP пакетов при остутствии (закрытии) процесса-отправителя как такового?


Отправлено Government-Man 27-12-2011 в 04:47:

Цитата:
qpAHToMAS писал:
Я не много знаю о UDP, но меня глючит, либо возможна ситуация отправки UDP пакетов при остутствии (закрытии) процесса-отправителя как такового?


UDP работает по принципу "отправил и забыл" - получатель может получить пакет уже после смерти процесса-отправителя, отправляющей пакет машины и ее владельца...


Отправлено PomanoB 27-12-2011 в 06:32:

Ну плагин к метамоду dproto легко борется с такими фейковыми игроками, тупо вводиться таймаут причём два разных - 1 до отправки команды new, второй после, но до чего он я пока не разобрался(


Отправлено qpAHToMAS 27-12-2011 в 07:04:

Цитата:
PomanoB писал:
Ну плагин к метамоду dproto легко борется с такими фейковыми игроками

Проверял именно на сервере с dproto . Он помогает во многом, от многих эксплойтов и т.д., но вот эти два фейковых пакета не проверяет (по крайней мере пока они адекватные).
В принципе это баловство, но любой школяр может заюзать эти фейки в цикле, а тут уже и showscores кабзец и подключиться к серверу нельзя будет .


Отправлено PomanoB 27-12-2011 в 07:08:

Значит у тебя просто старая версия. Начиная от версии 0.8.68 введена эта фишка. Первый таймаут по умолчанию 4 секунды, второй 8. В цикле запустить не получиться, так он банит ип адрес после нескольких попыток


Отправлено qpAHToMAS 27-12-2011 в 07:38:

PomanoB, вот оно что. Действительно, ты прав. Версия не самая свежая .


Отправлено Дядя Миша 27-12-2011 в 09:28:

Цитата:
Government-Man писал:
UDP работает по принципу "отправил и забыл" - получатель может получить пакет уже после смерти процесса-отправителя, отправляющей пакет машины и ее владельца...

Кстати в ксаше предусмотрен любопытный режим: если движок клиента внезапно упадёт с Acess Violation, ксаш перед смертью отправит пакет на сервер с сообщением о том, что такой-то клиент скрашился.
И он не будет висить в воздухе 60 секунд как дурак а моментально исчезнет с сервера.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 28-12-2011 в 19:51:

Дядя Миша а если Access Violation произошел в коде отправки пакета?


Отправлено Дядя Миша 29-12-2011 в 07:00:

Government-Man такое исключено. У меня там всё отлажно. Разве что сторонний ковырятель изломает. Но это уже его проблемы.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 22:21.
Показать все 23 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024