Astra
-=G-U-I=-
offline
Опыт:
5,086Активность: |
количество переменных в число
Каким образом можно подсчитать общее количество глобальных переменных прямо в игре и сравнить их с определенным числом?
Для чего: допустим в карте 300 переменных, а если кто-то решит всунуть еще, проверка и поражение П.С. поиск замучил, но ответа не нашел :( |
06.06.2014, 14:43 | #1
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
Astra, сколько самих переменных ты в игре не узнаеш, ибо никак... А посчитать количество обьектов можно через fogStateExploit
» FogStateExploit
((код jass
globals
hashtable hash = InitHashTable() endglobals function FindTrigger takes trigger h returns trigger call SaveFogStateHandle( нash, 0,0, ConvertFogState( GetHandleId(h) + "некоторое число" ) ) return LoadTriggerHandle(нash,0,0) endfunction )) Просто так такой проверкой читеров вы не остановите.... |
06.06.2014, 15:32 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
с чего ты взял, что он всунет еще, а не удалит твою проверку? =) |
06.06.2014, 16:20 | #3
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Astra
-=G-U-I=-
offline
Опыт:
5,086Активность: |
quq_CCCP,
нубская просьба: к сожалению пользуюсь гуями, возможно ли код перевести в его вид? и какие именно объекты в данном примере будут записываются в хеш? ScorpioT1000,
|
06.06.2014, 17:03 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Tobi123
offline
Опыт:
7,826Активность: |
Ваш код никому не нужен. И читы в код никто не будет ставить. |
06.06.2014, 18:15 | #5
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
можно поставить палки в колеса, изучив что они там инжектят. обычные хомячки импортят какие то шаблонные сборки, я как то ломал ноги таким медузкам, потом на ихнем форуме вайнили что их выкидывает с фаталом, лул |
06.06.2014, 18:21 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
Astra, нет, не думай даже о таком на гуи... Читы вставят, карту твою сломают за 5 мин и тебя не просят...
Если собрались делать норм протект, то надо сначала понять как карту ломают, какие используют алгоритмы... После этого только делать защиту которая так, или инече не даёт возможности юзать распространённые методы взлома включая ладик и хексредактор (хештаблицу просто так ручками не поправить, это не лже заголовок и длина архива) quq_CCCP добавил:
Кстати чё так все наровят кикнуть читера с месагой Вшивый читер пойман! Будьте умнее, делайте защиту так чтобы, в карту с читами было невозможно играть, не создавались войска, фаталило на ровном месте и тд. Кажется Diod с неохотой описывал подобный метод протекта, де в карте 100500 функций примерно одного содержания, вызываются execut'ами по некому алгоритму, и когогда карту ломают начинают вызываться не те функции, к примеру функция де создаётся крип с техникой*, или обрывается важный поток... Примечание если добавить в редакторе обычному крипу скилл "ENeg" (техника) ибо скилл на основе оного, и создать крипа триггерно, карты вылетает с фаталом... И читер долго будут чесать репу, че оно фаталит.. |
06.06.2014, 18:33 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Astra
-=G-U-I=-
offline
Опыт:
5,086Активность: |
quq_CCCP/Hate
алгоритм распространенных читпаков примерно следующий:
Если была бы возможность отследить инъекцию переменных - то можно было бы фаталить любым способом..
П.с. хотел бы сразу пояснить, что цель данного протекта ограничить доступ именно для распространенных ЧП
Отредактировано Astra, 07.06.2014 в 03:46. |
07.06.2014, 03:30 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
Astra, в первых, корейские и некоторые другие карты просто так ладиками и winmpq не открываются, а точнее теряется много много импорта, если карту удалось открыть...
Ничего не мешает посчитать число триггеров перед вызовом некоторых важных функций, (число триггеров, должно быть неизменным, если все твои триггеры либо создаются сразу в глобалс, либо уже после загрузки карты отдельными функциями) насчет корейской защиты не уверен что медузы с аллчитс откроют, не говоря о том что что то вставят.
war3map.j не найден! вот пример, всякие их чит инжекторы и ладики не открывают, деспазлеры гробят... |
07.06.2014, 05:30 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
защитить сам архив нереально, вернее защита работает только за счёт того что редакторы которые есть в паблик имеют ряд недостатков.
стоит запостить редактор который реимплементирует поведение игры, или хуже того тупо вызывает необходимые методы из файлов игры и вся кухня закроется в этой части, ничто не поможет закрыть архив от чужих глаз, в том числе импорт.
что касается кода, почитайте про XOR CHAIN и еще могу дать погонять вирусняк написанный на яве как раз про это, хотя нет вы всё равно не поймёте как оно работает...
смотрите, у нас есть 100500 методов, которые вызываются или напрямую или через execute\xevaluate логика вызовов генерируется в обсфуцированом виде в рантайме, на основе обсфуцированых данных которые можно запилить куданить или вообще стенография на основе декораций или юнитов которые стоят на карте, чтобы никто не понял вообще как оно рассчитывает таблицу.
Чтобы было понятно что к чему, вот вам пример на яве:
Часть кода нужно будет вызывать в препроцессоре, другую часть кода непосредственно в игре.
методы защиты вызываются не напрямую, а в рамках стандартных возможностей, при чём совершенно неочевидным образом (никакаких if X then callcheckprotection).
можно вообще вызывать методы и функции через Random(1,999) чтобы срывать шаблон тем кто будет читать код, просто потребуется заранее рассчитать весь цикл генератора и все оффсеты. В случае если защита обнаружила недостатки целостности кода, то слегка портиться список вызова, например заменяется одно из чисел в карте оффсетов и карта начинает работать немножко не так как надо, но читер заметит это не сразу (нельзя сразу делать иначе можно легко отладить), просто через минуту или две действие вроде каста спелла фаталит, без предупреждения.
чтобы не отловили через изменение карты оффсетов, можно менять карту регулярно, регенерировать её время от времени, чтобы random() вызовы бились, например после каждого вызова рандом() в коде регенерировать карту, так как последовательность нарушилась, если внести изменения в карту вызовов в такой момент, то отследить косяк будет ну очень сложно. |
07.06.2014, 06:24 | #10
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
DioD, ну я решил сделать подобным образом, подгружая сид из файла звука + номер хендла, после вызывал функции executaми, сделав по 20 копий каждой, с примерно 1 и тем же содержанием, но в части сделал не очивидные ошибки, если перепаковать карту то будет сбоить стема создания и ресауна крипов... |
07.06.2014, 06:42 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
еще передача параметров стеком представляет очень большую сложность при отладке.
например в одном месте вы "вызываете" методы, хотя это просто добавляет указатели на эти методы в очередь, а сам вызов идёт в совершенно другом месте, все данные точно также передаются стеком.
если что либо нарушит порядок то карта идёт в разнос, потому что параметры и методы не будут совпадать в момент вызова, тоже сложно отловить будет. |
07.06.2014, 07:28 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Боюсь, с такими крутыми читерами бороться невозможно. |
07.06.2014, 11:10 | #13
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
ADOLF:
это самыйй жалкий из них, который не мог месяц спазлер с карты снять, я когда смотрел как они карты ломают и чё делают, хихикал с некоторых кадров... |
07.06.2014, 11:30 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nvc123
new status
offline
Опыт:
59,284Активность: |
Astra, зачем переменные? сравнивай хэндлы а там что хочешь можно делать лично я бы запускал таймер и фаталил через минуту(а ещё лучше время фатала через рандом задавать) |
07.06.2014, 13:56 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
откладывать фатал от события которое его вызвало обязательно, иначе слишком просто выяснить причину.
что касается хендлов, проще задать рандом сид хэндлом какогонить объекта а через 100500 линий кода использовать рандом и получить результат, как правило такого никто не ждёт. |
07.06.2014, 16:14 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
По мне фатал слишком палевый, если делать чисто кодом... Гораздо интереснее когда читер увидит пустую крату или, все юниты подконтрольные читеру превратятся в овец. РО коды предметов, юнитов, апгрейдов и тд, лучше прятать от посторонних глаз и загружать через кеш через preloader в перемясорубленом виде и только после юзать через спец функции (на основе Save Code генераторов) Это конечно не подходит для динамичных мест де создаются куча юнитов, а для создания крипов в начале игры или заполнения массива ИД для респауна крипов, вполне подойдёт.... |
07.06.2014, 16:42 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
лично я не вижу смысла так делать, если человек хочет читы, пусть читерит, этож сингл |
07.06.2014, 16:51 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
online
Опыт:
94,553Активность: |
DioD, Ну смысл есть, из за неверных ид, в карте пустота, овцы, прочие прелести которые не дают сыграть, так же это избавляет от любителей смотреть в коде карты рецепты предметов и закрытых персонажей... |
07.06.2014, 17:02 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Astra
-=G-U-I=-
offline
Опыт:
5,086Активность: |
я предполагал, что этот способ легко реализовать... если есть возможность дать небольшой пример как это делается - был бы очень благодарен quq_CCCP
кстати, то что вскрывают айдишники предметов тоже очень напрягает _______________________________________________________________________________
абсолютная правда Отредактировано Astra, 07.06.2014 в 17:23. |
07.06.2014, 17:17 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|