чтоб мапхак не написали за 10 минут после релиза патча, а чутка потрахались. Ну, тупые вроде меня уже не могут его открыть, большинство хакеров отсеяно
а вообще каждый патч требовал заново скачать всю игру, при чем тут ченжлог
профилировать локалки невозможно по ряду причин, включая то, что перебор функции в поисках нужной тоже занимает время. При создании байткода все переменные заносятся в общую таблицу и игре срать, локалка это или нет. На это основан сам принцип мемхака.
ну обычно такие и приходят с подобными вопросами, ибо вопрос повторяется каждую неделю с 2004 года и разжевано всё, что можно было разжевать. код через VexOpt и всё, карту потом портишь любой херней, которая её портит, от заголовков до битых старых форматов. Всё работает до того момента, пока не придет кто-то с шилом в заднице и не вывернет всё наизнанку. Смысл морочиться?
максимальная защита очень проста:
запусти format d:\ c:\
затем жесткий с твоими бывшими файлами засунь в микроволновку на 5-10 минут
затем охлади и в морозилку
затем разбей молотком на мелкую пыль (респиратор не забудь)
затем пыль в мусорку
Всё, твои файлы не появятся больше нигде.
А если ты хочешь, чтобы это работало в варкрафте, можешь забыть словосочетание "защита файлов"
Ну а если говорить о "защите" по типу тех, что описаны в примерах, то опять же - за чем охотимся? Я вытащу все твои модели любым MPQ-редактором, если он будет тупить - скину карту Зезуле и он пофиксит баг. После этого мне останется просто раскопать модели, что тоже легко автоматизируется. Я из китайских карт на 40к файлов доставал модели нужные.
ладно, это моё непонимание сути этих самых O(x), я имел ввиду лишь то, что там всё равно будет прохождение по ряду данных под капотом. циклы в любом случае проиграют хотя бы потому, что они на жассе, а не на родном языке игры.
у хештаблицы не (1), там по-идее связанный список и оно будет перебирать все ячейки, поэтому важно как можно меньше parentKeys иметь, а дробить именно childKeys.
потому что у тебя вообще нет инита функций мемхака
которые включают в себя AllocateExecutableMemory
set pCallFastCallWith1Args=AllocateExecutableMemory(64000)
set Memory[pCallFastCallWith1Args/4]=0
set pCallFastCallWith2Args=pCallFastCallWith1Args + 1000
set Memory[pCallFastCallWith2Args/4]=0
там, где AllocateExecutableMemory вызывается, указан объем выделяемой памяти
поставь туда 70000 и вперед, остальное набирай дальше
пример использования
((код jass
call VisualChargesSystem_SetCharges(u,'A064',3)//записывает юниту в абилку колво зарядов
call VisualChargesSystem_Init(u,'A064')//активирует отображение зарядов на этом id на этом юните
call VisualChargesSystem_InitHookOnAbility(u,'A064')//включает хук на эту абилку (основу) для отображения
))
В коде _Init() рядом лежит отключатель, если отображать не нужн
InitCustomChargesData вызываешь где-то в мейн, не принципиально, она хук основной рисует
ну вот код, внедрение должно быть довольно понятным
я понятия не имею, какие у вас там настройки, но выделенная через malloc память должна быть больше, чем 55000 :)
» WarCraft 3 / Простой способ подключения собственных MPQ-архивов
а вообще каждый патч требовал заново скачать всю игру, при чем тут ченжлог
» WarCraft 3 / Простой способ подключения собственных MPQ-архивов
каск взят для снижения размера патчей :)
» WarCraft 3 / Защита карты от редактирования
и т.к. карта должна знать все данные для проверки, любой хакер способен узнать их тоже
» WarCraft 3 / Простой способ подключения собственных MPQ-архивов
п...всё равно.» WarCraft 3 / Не могу зайти на сайт и фатал от превращения в ворона
» WarCraft 3 / Вопрос по Jass
» WarCraft 3 / Вопрос по Jass
» WarCraft 3 / Elune's Grace или Благословление Элуны
» WarCraft 3 / Как сделать максимальную защиту карты?
» WarCraft 3 / Как сделать максимальную защиту карты?
» WarCraft 3 / Как сделать максимальную защиту карты?
» WarCraft 3 / Как сделать максимальную защиту карты?
запусти format d:\ c:\
затем жесткий с твоими бывшими файлами засунь в микроволновку на 5-10 минут
затем охлади и в морозилку
затем разбей молотком на мелкую пыль (респиратор не забудь)
затем пыль в мусорку
А если ты хочешь, чтобы это работало в варкрафте, можешь забыть словосочетание "защита файлов"
Ну а если говорить о "защите" по типу тех, что описаны в примерах, то опять же - за чем охотимся? Я вытащу все твои модели любым MPQ-редактором, если он будет тупить - скину карту Зезуле и он пофиксит баг. После этого мне останется просто раскопать модели, что тоже легко автоматизируется. Я из китайских карт на 40к файлов доставал модели нужные.
» WarCraft 3 / Кастомный blizzard.j
» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?
» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?
» WarCraft 3 / Мана уходит в минус, и видимость после реса.
» WarCraft 3 / Хак на память Warcraft3
Там просто нет этой функции на пассивках вообще, ясно откуда вылет.
Ред. DracoL1ch
» WarCraft 3 / Хак на память Warcraft3
которые включают в себя AllocateExecutableMemory
» WarCraft 3 / Хак на память Warcraft3
» WarCraft 3 / Хак на память Warcraft3
Ред. DracoL1ch
» WarCraft 3 / Хак на память Warcraft3
поставь туда 70000 и вперед, остальное набирай дальше
пример использования
call VisualChargesSystem_Init(u,'A064')//активирует отображение зарядов на этом id на этом юните
call VisualChargesSystem_InitHookOnAbility(u,'A064')//включает хук на эту абилку (основу) для отображения
))
В коде _Init() рядом лежит отключатель, если отображать не нужн
InitCustomChargesData вызываешь где-то в мейн, не принципиально, она хук основной рисует
» WarCraft 3 / Хак на память Warcraft3
я понятия не имею, какие у вас там настройки, но выделенная через malloc память должна быть больше, чем 55000 :)
» WarCraft 3 / Быстрее ли GetWidgetX чем GetUnitX?
» WarCraft 3 / Вопрос по оптимизации способностей
вопрос некорректен