![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
а по-твоему я должен рассказать, что есть такая функция main и что в нему можно перегрузить количество вызовов итп ? это самые основы. и всеравно есть уязвимость. в любом случае он просто может потереть твой вызов и вставить туда свой
ScorpioT1000 добавил: кстати от этого тоже есть хитрости, что-то типа транзакций при подгрузке |
![]() |
#21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hellfim
Новичок
![]() ![]() offline
Опыт:
81,534Активность: |
Если Вася Пупкин попытается вставить ГУИ-читы, то от этого надо просто пустой blizzard.j импортировать, однако, ваша карта должна быть полностью на джассе (не использовать функций из bj во всяком случае). |
![]() |
#22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
он и common может подсунуть) |
![]() |
#23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Peer
![]() offline
Опыт:
1,300Активность: |
Ох и быстро разрастаются топики на вечную тему протекта/депротекта...
Я полностью согласен с ребятами, пишущими: "защитить карту так, чтобы никто не открыл невозможно" и фраза: "если варкрафт открывает карту то и человек может" ранее звучавшая в похожей теме абсолютно правильная. От себя могу добавить, что под защитой руками может подразумеваться:
|
![]() |
#24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ranger21
I love beatiul days XD
![]() ![]() offline
Опыт:
13,274Активность: |
Peer,
Первый метод на самом деле не очень подходит, ибо грамотный человек будет искать по имени функции( а карта без НАТИВНЫХ функций не будет работать). :) Сам так искал |
![]() |
#25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
какая разница, есть функция main ) ничего не надо искать |
![]() |
#26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Anufis
![]() ![]() offline
Опыт:
6,290Активность: |
А такой вопрос. Вот код карты содержится в war3map.j. Можно как-нить сделать, что например я этот файл переименовал в lol.mdx, но чтобы карта читала скрипты именно из него?
|
![]() |
#27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
true
самый дельный метод, только ничего писать не надо - надо просто крашить игру (а вот это найти в большой куче кода будет очень сложно, ибо executefunc'ов может быть много) после того, как данные не совпали с исходными
а вообще, по идее никакие программы от хороших читов не спасут - любая программная защита - не защита, ибо просто вставляешь в war3map.j чит, ежели там уже на уровне кода - то ищешь защитные функции (а они находятся очень просто, ибо разработчики любят написать что-то вроде "CHEATER", что в коде находится прекрасно) и удаляешь их (ессно, аккуратно - если на функциях будет завязано пол-игровых систем, то можно сфэйлить всё что можно) или подменяешь вызовы функций, которые так или иначе помешают читам (выброс игрока, изменение уровня на 1 итп)
S добавил:
Нет. S добавил:
Я этим промышлял еще когда только-только в варкрафт играть начал - но это таки бред, ибо это всё будет неоптимизированно и нетру) А пустой b.j - это к toadcop'y, я думаю, таких авторов, которые смогут весь b.j переписать на свой лад - единицы |
![]() |
#28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Anufis
![]() ![]() offline
Опыт:
6,290Активность: |
Еще предлагали открывать w3x-файл в hex-редакторе. и там какое-то значение менять. MPQEditor тогда крашит, а всякие x-dep'ы это обходят.
|
![]() |
#29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Кэп, вы не учли одну вещь - можно найти функцию main, найти функцию, вызываемую из функции main и из неё уже вызвать инициализацию читов (а это - самый тру вариант, ибо обычно чит делается для одного игрока и с инициализацией типа "I must win" в зрители) S добавил:
Зато какой-то другой очень старый MPQ-эдитор на всё это дело смотрит с большим непониманием. X-dep насколько я знаю не находит совмещенные названия aka "переменная+"текст"", что дает большой простор для эксперимента с функциями, в случае отсутствующего файла для исполнения которых (изображения напр) запускают вертолет |
![]() |
#30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
XOR
![]() offline
Опыт:
38,284Активность: |
S,
вар как то понимает дело с переменная +текст, значит хдеп читает это дело, нужно проверить:) ИМХО Отредактировано XiMiKs, 15.11.2009 в 22:17. |
![]() |
#31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
хдеп это не читает по той причине, что когда хдеп собирает листфайл, он проверяет код на целые тексты ака "Путь к файлу", а если у нас будет local string s "Путь " и текст к "к файлу", то хдеп не найдет s+"к файлу" файл, который находится по вышеуказанному пути переменная+текст на этом основан общий принцип защиты от хдепа
S добавил:
Можно поймать насколько я помню количество функций - на этом и основан вышеуказанный способ защиты с помощью ретурнбага, ибо если количество функций изменится (читы), то можно производить определенные действия |
![]() |
#32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Саша ты матчасть не учил, следовательно, мало чего знаешь о защите карт :) да-да ) Я имел ввиду перегрузку главного потока |
![]() |
#33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Гг, не на пользу пошло тебе тоадкопа ученье, о падаван Незачем так извращаться, совершенно незачем, есть более простые и не менее эффективные способы Троллинг незащитан. Саша 3 года (омг, я угрохал на это 3 года. Хотя нет, всё-таки два с половиной, первые полгода я по большей мере ломал карты) занимался взломом и защитой карт, посему знает про это практически всё. По крайней мере не встречал еще ни одну карту, которая не могла быть бы взломанной. А насчёт защиты карт - единственная расово верная защита - через returnbug, который отменили. |
![]() |
#34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Скайнет
Kicked by ZlaYa1000
![]() ![]() offline
Опыт:
8,234Активность: |
это стоило того? |
![]() |
#35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
_Red
![]() ![]() offline
Опыт:
4,095Активность: |
Пожалуйста подтвердите или опровергните мои догадки)
Где нибудь в коде, примерно после создания стартовых юнитов, инициации и обьявления переменных можно проверить хэндлы на примере проще рассказать на карте создан 1 триггер и 1 юнит в карте присутствует триггер типа
Результат будет примерно таким 1045670
если на карту добавить еще юнитов то значение будет изменятся, т.е. перед протектом зафиксировать это число и провести проверку чтото типо такой
извиняюсь за возможные ошибки в коде, но суть понятна Отредактировано _Red, 15.11.2009 в 22:13. |
![]() |
#36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DmCreator
![]() ![]() offline
Опыт:
3,205Активность: |
_Red, сомневаюсь, думаю, что хендлы сами раскидываются неведомым способом при запуске игры а вообще мог бы и проверить, совпадают ли они сам |
![]() |
#37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
_Red
![]() ![]() offline
Опыт:
4,095Активность: |
DmCreator, я проверил, это число при любом создани хендла(триггер, звук, юнит, любая переменная) это число увеличивалось на 1, мне просто нужно подтверждение "старичков" :) + всем кто будет искать на подобную тему этот код пригодится |
![]() |
#38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
XOR
![]() offline
Опыт:
38,284Активность: |
_Red это принцип РБ, какое нужно подтверждение?
XiMiKs добавил: Ну а к хендлам относятся и триггеры и функции, и т.д. Полный список в common.j |
![]() |
#39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Цитата:
Это того стоило - защиту на ретурнбаге никто не мог взломать, вплоть до камрадов с вц3эдит, а они там занимаются этим профессионально. _Red, возьми пирожок, ибо ты первым написал то, что я так долго и упорно пытался довести до вас всех. Хэндл надо будет проверять всего 2 раза (дабы быть стопроцентно уверенным, на всякий случай как говорится (угу, трата времени, но всё же)), тобишь чтобы он был одинаковым, - просто после запуска игры выводить хэндл на экран, а потом уже сверять, и ессно убрать display. Теперь, если будет добавлен любой новый юнит или функция, то игра будет крашиться без вопросов, что введёт читера в ступор - "что я не так сделал", а обычно 95% вылетов после инжекта читов именно от того, что код был вставлен криво\был криво написан. Самое главное - всё это незаметно вплести где-нибудь по центру кода и сделать 5-6 проверок на переменную, допустим, тобишь если после этого всего игрок будет всё еще играть - проводить еще какое-нибудь интересное действие, например, отображение несуществующего изображения (путь к файлу написать наугад). Но бтв, разве ретурнбаг не упразднили? Отредактировано S, 15.11.2009 в 22:32. |
|
![]() |
#40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|