Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт:
80,259Активность: |
Защита карты от редактирования
Лет несколько назад мне попадались карты, весьма интересно защищённые от редактирования. Они открывались, можно было вносить изменения в триггеры\объекты\ландшафт, но при попытке сохранить карту World Editor вылетал с фатальной ошибкой. Так как тогда мне это совершенно не было нужно, то я и внимания не обратил. А теперь вот понадобился именно такой способ закрыть карту. А карты те я к сожалению то ли у себя не сохранил, то ли удалил за ненадобностью.
Если кто-то знает, как делается такая защита, большая просьба помочь. Заранее спасибо. |
08.11.2011, 09:19 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
После компиляции добавить в war3map.j код, который вызывает крит при сохранении. К сожалению, такой код у меня никогда не оставался, ибо критовало =) Имхо делается именно так |
08.11.2011, 09:39 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JaBeN_Симфер
offline
Опыт:
20,050Активность: |
Clamp, ухаха :) Trok-Ferot, Widgetizer 1.93 + WC3 Map Optimizer 4.9 (Vexorian). В папке Widgetizer надо заменить файлы более новыми, из mpq своего вара. |
08.11.2011, 17:21 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Цитата:
крит при запуске карты, а надо при сохранении |
|
08.11.2011, 17:31 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JaBeN_Симфер
offline
Опыт:
20,050Активность: |
Clamp, может у кого-то в блокнотике записан такой код, но я недооцениваю такую защиту. |
08.11.2011, 17:51 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SITX
Finally
offline
Опыт:
4,541Активность: |
Эм, читал где-то на форуме, что если в карте заменить .w3g на этот же файл из другой карты, то при сохранении триггеры путаются и фаталит. |
09.11.2011, 00:47 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт:
80,259Активность: |
Всё вышеизложенное не работает, к сожалению. Есть ли ещё варианты?
|
24.12.2011, 01:26 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Jko_0
offline
Опыт:
1,407Активность: |
Создай Erorr строчку в мапе открытой Txt, будет мешать открыть и сохранять.И в варике пойдет |
24.12.2011, 12:02 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт:
80,259Активность: |
Jko_0, мне нужен способ, который мешает сохранить, но не мешает открыть, о чём и написано в первом сообщении темы.
|
24.12.2011, 21:09 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Мешать сохранить, кажется, нельзя, т.к. эдитор ребилдит архив при сохранении => если мапу открыл, то и сохранит. Хотя может там баг какой на это дело есть хз.
Другое дело, можно вручную прогнать war3map.j через векса и заменить, далее заменить war3map.wtg на аналогичный из пустой/левой карты. Тогда при попытке сохранения весь код утеряется и карта станет неработоспособной. Hanabishi добавил: А декор и импорт защищать не имеет смысла, т.к. всё равно легко депротектится\достаётся. |
24.12.2011, 21:22 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Раньше был хитропопый баг с заменой wtg файла: добавлялось в редакторе триггеров что-то наподобие
это с вызовом при инициализации сохраняли, эдитор крашился, wtg файл из такой версии извлекали из временной папочки и пихали в оригинал. Итог - при попытке сохранения эдитор крашится, но в самой игре всё работает.
Сейчас эдитор с горем пополам, но не давится такой конструкцией. Не фаталит, возможно - дело в патчах FellGuard добавил: похоже, это был единственный способ. Т.е. надо придумать код, который гарантировано вызовет краш. |
24.12.2011, 21:27 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
FellGuard, у меня эдитор крашился от очень длинной строки в кастом скрипте, хотя и не знаю, поможет ли это. |
24.12.2011, 21:34 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
о, шикарно, надо проверить, спасибо
FellGuard добавил: поможет - по аналогии с ф-ей Crash |
24.12.2011, 21:35 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JaBeN_Симфер
offline
Опыт:
20,050Активность: |
Наверное имеется в виду, что вся строка от начала и до конца имеет очень много символов, а где она находится не важно, т.е. можно заменить war3map.j с длинной строкой в любой, даже не вызываемой функции. |
24.12.2011, 22:13 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Proffy
offline
Опыт:
127Активность: |
для версий 1.24 и ранее можно попробовать использовать вот это :
(код писал не я) Using this system will report any modification to the map script. Combined with map optimisation it will effectively stop people from using a modified version of your map, as it disables all GUI trigger functionality and all JASS triggers (with the exception of libraries, for technical reasons) on detection of modification.
It is recommended that all functioning vJASS code is writeen within scopes (with the exception of systems) in order for them to be disabled on modification detection.
» anti cp
((код jass
scope AntiCP initializer Init
**************************************************************************************** | Anti-CheatPack System v1.00 by Coleen | Using this system will report any modification to the map script. Combined with map optimisation it will effectively stop people from using a modified version of your map, as it disables all GUI trigger functionality and all JASS triggers (with the exception of libraries, for technical reasons) on detection of modification. It is recommended that all functioning vJASS code is writeen within scopes (with the exception of systems) in order for them to be disabled on modification detection. Implementation Instructions: 1. Create a blank disabled trigger named AntiCPConfig, convert to custom text 2. Copy/Paste the AntiCPConfig library into the blank trigger 3. Click the name of your map in the left-hand panel in the trigger editor 4. Copy/Paste the AntiCP scope into the Custom Text section NB: The scope MUST be at the VERY top of the custom text section, and NOT in a blank trigger 5. Follow the instructions in the AntiCPConfig library 6. Set the HANDLE_COUNT variable below to the output of the library 7. Configure other constants below 8. Set ENABLED = true 9. Save your map and enjoy NB: Every time you save a final version run the AntiCPConfig library again as the handle count has probably changed NB: When modifying your map set ENABLED = false, and set it to true again when a final version is saved **************************************************************************************** globals Output of AntiCPConfig library private constant integer HANDLE_COUNT = 0 System enabled or disabled private constant boolean ENABLED = false Disable triggers initializers on detection? private constant boolean TRIGGER_DISABLE = false Show a message to players if modification is detected? private constant boolean SHOW_TEXT = true Text to display when SHOW_TEXT = true If SHOW_TEXT = false it is recommended that this string be emptied (i.e. = "") private constant string DISP_TEXT = "This map has been modified. Please delete it and redownload from a trusted source." endglobals private function T2I takes trigger t returns integer return t return 0 endfunction private function Init takes nothing returns nothing local integer i local trigger t = CreateTrigger() if (T2I(t) - 1048584) != HANDLE_COUNT and ENABLED then if SHOW_TEXT then call DisplayTextToForce(bj_FORCE_ALL_PLAYERS, DISP_TEXT) endif if TRIGGER_DISABLE then set i = i endif endif call DestroyTrigger(t) set t = null endfunction endscope ))
» anti cp config
((код jass
library AntiCPConfig initializer Init requires **************************************************************************** | Anti-CheatPack Configuration Functions by Coleen | Configuration Instructions: 1. Uncomment the 'requires' line above these instructions 2. Add in the name of every library in your map separated by , NB: If you have no vJASS libraries in your map ignore these two steps 3. Enable this trigger 4. Save your map 5. Click 'Test Map' and write down the number that is displayed once the game starts (Handle Count: ...) 6. Exit the game 7. Disable this library 8. Keep this library within your map 9. Repeat these instruction every time you save a final version **************************************************************************** private function T2I takes trigger t returns integer return t return 0 endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger() call BJDebugMsg("Handle Count: " + I2S(T2I(t) - 1048584)) call DestroyTrigger(t) endfunction endlibrary )) Отредактировано Proffy, 25.12.2011 в 21:54. |
25.12.2011, 21:44 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Proffy, не будет пахать на 1.24+ |
25.12.2011, 21:50 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
JaBeN_Симфер, я имел в виду не кастом код, а конкретно гуишный кастомскрипт.
Doc добавил: alexprey, угу а про GetHandleId() слышал? |
25.12.2011, 21:53 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Doc, слышал, но он то юзает RB |
25.12.2011, 21:56 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diazzz
Допустимый статус
offline
Опыт:
13,797Активность: |
У меня карта отказалась сохраняться когда в гуи было условие слишком длинное. Не знаю как описать...
Ну вот было у меня Если, то если. И в каждое если я постоянно добавлял чтото новое. Понадабовлял туда штук 80 "Иначе", и карта сфаталила при попытке сохранить. Если: Блабла То Блабла Иначе1 _ Если: _ Блабла _ То _ Блабла _ Иначе2 __ Если: __ Блабла __ То __ Блабла __ Иначе3 __ ... ____ Если: ____ Блабла ____ То ____ Блабла ____ Иначе100500 Может просто редактор корявый у меня, а может действительно поможет не дать сохранить карту. |
25.12.2011, 21:58 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
И по-твоему, замена невозможна? Я к тому, что это глупый спор, РБ свободно переводится на 1.24 заменой функций. |
25.12.2011, 21:59 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|