"Иммунитет Агонии"
|
|
|
|
ErrorParents
| Дата: Четверг, 27.06.2013, 14:07 | Сообщение # 46 |
 Разельдир
Группа: Пользователи
Сообщений: 411
Награды: 4
Статус: Offline
|
мне вообще безразлично, ну есть эти читеры и что? если им нравится так я не против)
Лицо MDK
|
|
|
|
WarPit74
| Дата: Четверг, 27.06.2013, 14:48 | Сообщение # 47 |
 Каратель
Группа: Пользователи
Ник в игре: WarPit
Сообщений: 369
Награды: 5
Статус: Offline
|
теряет интерес к карте. например зачем человеку стараться, качаться и тд. когда можно за 5-10 мин одеться фул агония и доказывать в гарене какой он батька Балладора сливал с друзьями.
|
|
|
|
ErrorParents
| Дата: Четверг, 27.06.2013, 17:28 | Сообщение # 48 |
 Разельдир
Группа: Пользователи
Сообщений: 411
Награды: 4
Статус: Offline
|
WarPit74, почему тогда ты все еще не читер? или уже читер? ты же не потерял интереса к карте, я прав? читерить можно, но наказывается это же вроде?
Лицо MDK
|
|
|
|
JacobSon
| Дата: Четверг, 27.06.2013, 18:32 | Сообщение # 49 |
 Друид Скверны
Группа: Пользователи
Сообщений: 615
Награды: 6
Статус: Offline
|
Цитата (WarPit74) П.с. от генераторов защититься трудно, ведь если есть исходник. что мешает создателю тоже переставить эти значения? ничего. Вот та причина, по которой я предлагал привязку к сайту. Если взломщик имеет доступ к лоад-кодам, но не имеет доступа к исходникам карты, то эта проблема решалась бы на раз-два - это стандартная постановка задачи в криптографии, и решений имеется масса на любой вкус. Но если взломщик имеет доступ к карте, то в ней нельзя хранить никаких секретных данных, на которых строится защита. Отсюда один вывод - карта не может своими силами защищать от читера.
Казалось бы, все. Шансов нет. Но можно вывести защиту за пределы карты, даже при условии, что к исходнику карты будет открытый доступ. Это как раз то, что я предлагал.
На самом деле, есть еще один метод. Обфускация кода. Не понимая, где тот кусок кода, который выполняет реакцию на -save (без обфускации он у хорошего разработчика выделен в отдельную функцию, которая еще и назвается так, что мимо не пройдешь), не понимая, где что берется и куда кладется, взломщик не найдет поля, отвечающие за тип героя, лвл и прочее, а значит не сможет поставить туда что-то свое.
Это не потребует ничего от пользователей, никак не изменит взаимодействие с картой, т.к. это просто переписанный чудовищным образом код, который был ранее. Проблем только три, по большому счету:
1) Влияние на производительность. Набивая код требухой, на одни и те же действия уходит больше времени. Но это регулируется степенью "замусоренности". 2) Трудоемкость. Написать это самому вручную (по крайней мере, для серьезных продуктов и от серьезных взломщиков) нереально. Написать программу (опять же, если все серьезно), которая будет делать это за тебя, нифига не просто и уж тем более не быстро. 3) Не гарантирует 100% устойчивости. По сути, это соревнование между тем, кто запутывает, и кто распутывает. Кто умнее, тот и победит. Впрочем, все существующие на данный момент в карте методы как раз такого типа, и это не должно сильно смущать.
В принципе, есть программы-обфускаторы для других языков. Поэтому (чисто теоретически) можно взять исходник на джассе, переписать весь код в С++, скажем, применить к коду обфускатор, перевести обратно в джасс. Последний этап будет адски трудоемок для подхода "вручную" (но уже существенно проще, чем писать обфускатор сразу на Jass), поэтому хорошо бы иметь транслятор из С++ в Jass. Если его нет, придется написать и его..
Хотя, учитывая "уровень" взломщиков, каких-то примитивных методов обфускации должно хватить. (Скажем, если процедуру сейва запихнуть в какую-то другую, а там к ней обращаться посредством операторов goto, если таковые есть в Jass и если это позволено, то это уже помешает взломщику "выдрать" этот кусок кода, т.к. его уже придется поискать) То есть, на примитивном уровне защиты это можно проделать и вручную, и можно даже программу для Jass'а написать, чтобы не переписывать код в каждой версии заново. Но все равно это довольно трудоемко. Привязка к сайту и проще, и надежнее, на мой взгляд. Хотя опять же, готовая наработка была бы многим интересна.
Цитата (TBW) :DD Cамый сильный совет за всю историю блудвея =) +1 )
ICCup: JacobSonICCup + Garena: Agent.J
|
|
|
|
WarPit74
| Дата: Четверг, 27.06.2013, 18:47 | Сообщение # 50 |
 Каратель
Группа: Пользователи
Ник в игре: WarPit
Сообщений: 369
Награды: 5
Статус: Offline
|
WarPit74, почему тогда ты все еще не читер? или уже читер? ты же не потерял интереса к карте, я прав? читерить можно, но наказывается это же вроде? Смысл читерить? В рейды я ходил только танком или луком. эти героя у меня были прокачены очень давно, после моего бана на другом нике. одел я обоих с одного рейда в команде ТБВ. Дермар-Лаурэ. Читерить баладора нет смысл.. П.с. Интерес потерян до фикса. У меня есть транслятор из С++ в Jass и наоборот. Обычный goto?? если мне не изменяет память это переход к определенной части кода. да? да в jasse есть такая функция обычный запуск триггера. но, что мешает взломщику увидеть эту функцию @goto@ и используя поиск Сtrl+F перейти к нужному фрагменту. По моему любой код можно прочитать и понять, нужно лишь приложить этому усилие, но п.с. да, даже сейчас защиту бв на Опыт не каждый ломает, по крайне менее карта которая есть в открытом доступе взломана очень ужасно, сингл + чит пак, все.
И да, разве стандартные оптимизатор Тула векса не проводит эту Обфускацию? Если сравнить код до него и после, то это ужасно сильно запутывает, к примеру: Код до: Все функции по имени и прочему, у переменных имена, которые им придумал создатель искать легко и просто Код После: все перемешано, рандом из разных букв, разного регистра, это сильно мешает.
Сообщение отредактировал WarPit74 - Четверг, 27.06.2013, 18:56 |
|
|
|
JacobSon
| Дата: Четверг, 27.06.2013, 19:39 | Сообщение # 51 |
 Друид Скверны
Группа: Пользователи
Сообщений: 615
Награды: 6
Статус: Offline
|
Цитата (WarPit74) У меня есть транслятор из С++ в Jass и наоборот. Ну значит, все существенно проще. Остается найти обфускатор для C++ (как пить дать он существует, на свете есть куча людей, которые реализуют такие вещи от нечего делать), освоить его, и за дело. Там и руками-то делать ничего не придется, чисто теоретически. А значит, все будет просто и быстро. WarPit74, ты понял саму идею, о которой я говорю? Как к ней относишься? Я просто не думаю, что тут много кто еще сможет об этом серьезно разговаривать.Добавлено (27.06.2013, 19:39) ---------------------------------------------
Цитата (WarPit74) Обычный goto?? если мне не изменяет память это переход к определенной части кода. да? да в jasse есть такая функция обычный запуск триггера. но, что мешает взломщику увидеть эту функцию @goto@ и используя поиск Сtrl+F перейти к нужному фрагменту. Конечно, ничего не мешает. Но для этого надо: 1) Знать, что я использовал такую уловку (что если я буду использовать что-то другое?) 2) Чтобы этих самых goto было мало (чтобы среди них найти искомую).
Цитата (WarPit74) По моему любой код можно прочитать и понять, нужно лишь приложить этому усилие, Некоторые люди пишут код так, что требуются немалые усилия, чтобы его понять. Даже если они не старались его запутать. Даже, если это они сами его написали когда-то Да, все упирается конкретно в тех двух человек, один из которых будет запутывать, а другой - распутывать. Но если даже просто в 3 строки кода вставить 10000 строк банального "мусора" наподобие if (0!=0) {...}, который не меняет структуру алгоритма, это уже отпугнет очень многих взломщиков. С необходимыми инструментами, со знанием дела, с запасом времени и крепким желанием "победить" эту защиту, это можно сделать. Но Вася Пупкин из 7А к такому типу взломщиков не относится. Максимум, на что его хватит - это проделать все по пунктам по написанному кем-то более умным гайду. И то не всегда.
Цитата (WarPit74) И да, разве стандартные оптимизатор Тула векса не проводит эту Обфускацию? Если сравнить код до него и после, то это ужасно сильно запутывает, к примеру: Код до: Все функции по имени и прочему, у переменных имена, которые им придумал создатель искать легко и просто Код После: все перемешано, рандом из разных букв, разного регистра, это сильно мешает. Думаю, немного помогает, но здесь обфускация служит для оптимизации, а не для защиты. Вряд ли там изменяется структура алгоритма - думаю, там просто изменены имена переменных, чтобы в памяти занимали меньше места, ну плюс какие-то присущие варику вещи. Хотя, как самая примитивная мера защиты - вполне бы сгодилось. Или такое уже умеют ломать массово?
ICCup: JacobSonICCup + Garena: Agent.J
|
|
|
|
WarPit74
| Дата: Четверг, 27.06.2013, 21:00 | Сообщение # 52 |
 Каратель
Группа: Пользователи
Ник в игре: WarPit
Сообщений: 369
Награды: 5
Статус: Offline
|
ну в принципе, те кто ломают, те умеют, опять же используя Ctrl+F можно внимательно смотреть в тонну букв и найти нужные=)
Цитата WarPit74, ты понял саму идею, о которой я говорю? Как к ней относишься? Я просто не думаю, что тут много кто еще сможет об этом серьезно разговаривать. Да понял, интересно только как начать делать подобное=) как говорится нужен первый пинок)
|
|
|
|
JacobSon
| Дата: Четверг, 27.06.2013, 23:54 | Сообщение # 53 |
 Друид Скверны
Группа: Пользователи
Сообщений: 615
Награды: 6
Статус: Offline
|
Цитата (WarPit74) Да понял, интересно только как начать делать подобное=) как говорится нужен первый пинок) Ну как начать. Сначала реализуешь всевозможные методы обфускации - функцию "заменить названия переменных в коде на белеберду", функцию "добавить мусора в код". Когда это сделаешь, будет уже что-то похожее на тот оптимизатор, про который ты говорил. Потом начинаешь писать методы, которые крошат и выворачивают наизнанку сам алгоритм - жонглирование содержимым переменных, фейковые if then else (по всем ветвям делается одно и то же), циклы на пустом месте, дробление и слияние процедур... Да мало ли способов испоганить алгоритм Ну а потом main-процедура программы - это будет просто применение всех этих методов "послойно" к исходному коду. Да и вообще,
ICCup: JacobSonICCup + Garena: Agent.J
|
|
|
|
Mikilo
| Дата: Среда, 03.07.2013, 07:58 | Сообщение # 54 |
Головорез
Группа: Пользователи
Сообщений: 13
Награды: 0
Статус: Offline
|
Цитата (JacobSon) Не понимая, где тот кусок кода, который выполняет реакцию на -save (без обфускации он у хорошего разработчика выделен в отдельную функцию, которая еще и назвается так, что мимо не пройдешь) Может у него и называется, но если открыть код карты, то там не будет написано "Save system". Все триггеры меняют название на три буквы в верхнем регистре. Цитата (JacobSon) 3) Не гарантирует 100% устойчивости. По сути, это соревнование между тем, кто запутывает, и кто распутывает. Кто умнее, тот и победит. Впрочем, все существующие на данный момент в карте методы как раз такого типа, и это не должно сильно смущать. Ну да, это только остановит (или задержит) любителей. Те, кто уже взламывал такие системы, проследят все действия.
Было бы неплохо, если Blizzard ввели функции, которые создают соединение между игрой (игроками) и сервером, на котором будут хранится все данные. Это упростило бы save/load system, так как игрокам не пришлось бы писать загрузочный код. Жалко, что об этом близзардцы не позаботились
|
|
|
|
WarPit74
| Дата: Четверг, 04.07.2013, 16:45 | Сообщение # 55 |
 Каратель
Группа: Пользователи
Ник в игре: WarPit
Сообщений: 369
Награды: 5
Статус: Offline
|
Цитата (Mikilo) Было бы неплохо, если Blizzard ввели функции, которые создают соединение между игрой (игроками) и сервером, на котором будут хранится все данные. Это упростило бы save/load system, так как игрокам не пришлось бы писать загрузочный код. Жалко, что об этом близзардцы не позаботились Зато сами игроки заботились. Выше уже писал о пхп сервере
|
|
|
|