Добавлен Tumart
Всем привет! Хотелось бы увидеть в этом вопросе комментарии опытных мапмейкеров. Вопрос в том, как наиболее эффективно защитить карту от взлома и встраивания различных чит-паков. Поделитесь своим опытом, может как то код по особенному писать или еще чего, любая мелочь будет полезна! И хорошо бы, чтоб вопрос повисел здесь подольше.
Принятый ответ
Tumart:
Суть:
Подробно - это сделай за меня?quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Суть:
call BJDebugMsg( I2Sx( 100500 ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте.
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
local integer i = 486
local string str = null
set str = S2S( I2SH( i ) )
call BJDebugMsg( str )
set str = null
endfunction
//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
set gg_trg_J_Test = CreateTrigger( )
call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Так же гробим архив корейскими тулами, можно еще малость руками - открыть откроют, но не инжектнут.
Можно писать запутанный код, прогонять карту под тулсами векса и прочих, менять файлы в самом архиве карты, чтобы триггеры при запуске в редакторе перетирались, НО - все это можно проделать и в обратную сторону
Так что если кому-то вдруг в 2016 захочется расковырять твою карту и этот кто-то имеет мышление лучше, чем у семиклассника - расковыряет
Как бы ты не пытался её защитить, расковыряет
Отредактирован Tumart
quq_CCCP, да я пока другой картой занят.
quq_CCCP, а руками это что конкретно? Я вот делал так: 1. Прогнал W3COpt 2 Прогнал через Тулы Векса 3. Прошелся спазлером, потом патчером после новым мпкушником удалил лист файл полностью.
Tumart, Спазлеры, патчи, векс - это все давно открывается без особого труда. Забудь про способ закрыть архив. Только чеками внутри карты можно что то сделать, во всяком случае при защите от дилетантов.
Если кто в танке, то в мпк может быть 100500 файлов разных версий, с одим и тем же именем - особенность фомата, игра всегда берет последний из списка, а мпк редактор первый - это баг публичного софта.
Отредактирован quq_CCCP
Суть:
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
кук, ты говорил о проверке размера карты
а как ты запишешь число-размер-ключ, если после сохранения он опять изменится?
Отредактирован nvc123
ибо хеш это результат действия хеш функции и для 1 и той же строки он не должен меняться(один из пунктов определения)