Программы
Предназначение:
Работа с кодом
Автор: soviet
В папке с программой должен находиться war3map.j, результат - war3map.s.j
Программа разбивает строки в коде скрипта карты на множество маленьких, в конечном итоге конкатенирующихся к моменту их вызова.
Так же переименовывает переменные и функции по виду sv_A, sv_A3D и т.д..
Исправлена медленная работа программы.
v~106
Добавлена мини-настройки, а именно:
Use caching (0/1) определяет, нужно ли каждый символ заносить в переменную или использовать существующую
Garbage number (0-2 rec) определяет, сколько "мусорных" переменных будет создано на каждый символ
Invis number (0-1 rec) определяет, сколько "пустых" переменных будет конкатенировано на каждый символ
Рекомендуются настройки: 1; 0; 0
v~105
Скорость работы увеличена в 25-30 раз.
Вы можете вернуть медленную работу программы забыв положить в папку с ней .dll из архива
Добавлен Beep для незрячих
v~104
Теперь программа запускается у всех
v~103
Увеличена производительность.
v~102
Теперь вызовы ExecuteFunc должны обрабатываться корректно
v~101
Скрипт игнорирует строки содержащие ExecuteFunc
Игнорирование (не переименовывать) main2, main3 ф-ции
Скрипт корректно обрабатывает русские (UTF-8) символы
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
2
4 года назад
Отредактирован soviet
2
Продолжают крутить минусы))0
Загруженные файлы
0
37
4 года назад
0
из-за обилия регулярок.
что?) регулярки?
2
2
4 года назад
2
Загруженные файлы
1
30
4 года назад
1
Сделай лучше под war3map.lua.
1
2
4 года назад
1
ivanbakavan:
Сделай лучше под war3map.lua.
Как только появится прога для перевода 1.26 .w3i в 1.31 .w3i :)
0
18
4 года назад
0
soviet, открыть карту в редакторе 1.31 и сохранить, кек
0
32
4 года назад
0
Я чето один не понял - зачем оно надо? тулы векса и такт сделают все нечитаемым, а строки удобнее всего хранить в именах юнитов или полях абилок, если хочешь чтобы их никто не нашел в скрипте.
1
2
4 года назад
1
Hodor:
soviet, открыть карту в редакторе 1.31 и сохранить, кек
Для этого надо распротектить, а это уже возможно повреждение, и уже потом.. Но можно распротектить и из распротекченной взять только .w3i. А карты переводить с Джасса на Луа надо в срочном порядке

quq_CCCP:
Я чето один не понял - зачем оно надо? тулы векса и такт сделают все нечитаемым, а строки удобнее всего хранить в именах юнитов или полях абилок, если хочешь чтобы их никто не нашел в скрипте.
Кому-то нужно. Не вам, так другим.
Тула Векса оставляет строки читаемыми вполне, за идею спасибо, можно и такое сделать.
2
37
4 года назад
Отредактирован ScorpioT1000
2
Зачем протектить код карт? На ваш код такой большой спрос, ЦРУ следят за всем?)
Ну а если касаемо шифрования данных или античита, то это делается не сокрытием кода, а стойкостью ко взлому
2
32
4 года назад
2
soviet, так в том то и дело, что без имен переменных - ты никогда не поймешь за что отвечает переменная, у нас при старте игры в глобалки заносятся строки из GetObjectName() ну и ищи строку в куче строк, а там засада, отдельные буквы в произвольном порядке, а в игре идет сложение в текст, пока поймешь - уже и ломать надоест. Потом есть геймкешь с прелоадером,тоже изи сбособ убрать из кода карты все ссылки на обьектные данные из кода.
Учитывая мемхак и подгрузку дллок, ваш метод - мягко говоря не актуален и устарел.
1
2
4 года назад
1
ScorpioT1000:
Зачем протектить код карт? На ваш код такой большой спрос, ЦРУ следят за всем?)
Ну а если касаемо шифрования данных или античита, то это делается не сокрытием кода, а стойкостью ко взлому
Скрипт не для полного протекта кода, а пока что только для самого базового протекта строк.
А причём тут шифрование и античит?
quq_CCCP:
soviet, так в том то и дело, что без имен переменных - ты никогда не поймешь за что отвечает переменная, у нас при старте игры в глобалки заносятся строки из GetObjectName() ну и ищи строку в куче строк, а там засада, отдельные буквы в произвольном порядке, а в игре идет сложение в текст, пока поймешь - уже и ломать надоест. Потом есть геймкешь с прелоадером,тоже изи сбособ убрать из кода карты все ссылки на обьектные данные из кода.
Учитывая мемхак и подгрузку дллок, ваш метод - мягко говоря не актуален и устарел.
Например, если значение переменной = "-hack", сразу понятно за что она отвечает. А вот если значение переменной = _A+_B+_C+_A+_B+_C и т.д.., то сразу и не понять.
Про имена юнитов уже баян.
0
29
4 года назад
0
Для создания сейвкодов ломать ничего не обязательно или расшифровывать, накидал в редакторе нужных предметов под ноги, сохранился, готово.
2
16
4 года назад
2
Например, если значение переменной = "-hack", сразу понятно за что она отвечает. А вот если значение переменной = _A+_B+_C+_A+_B+_C и т.д.., то сразу и не понять.
как жаль, что есть дамп произвольных строк в файлы и автозамена GetObjectName() внутри депротектора RMPQ
0
32
4 года назад
0
Ну вот по этому это и является устаревшей технологией, и есть иные способы.
0
37
4 года назад
0
Doc, хеши карт не совпадут в батле)
0
29
4 года назад
0
? Ты делаешь сейвкод локально и все, эту карту хостить не нужно.
0
37
4 года назад
0
Кстати да, даже можно сэмулировать игроков, если там чек на сингл
Но стоит ли оно свеч
В дьябло2 решение было - там на каждый выпавший предмет особый хеш был от своей функции, завязанной на сид персонажа и если 2 таких в игре, второй удаляется
1
2
4 года назад
1
DracoL1ch:
Например, если значение переменной = "-hack", сразу понятно за что она отвечает. А вот если значение переменной = _A+_B+_C+_A+_B+_C и т.д.., то сразу и не понять.
как жаль, что есть дамп произвольных строк в файлы и автозамена GetObjectName() внутри депротектора RMPQ
Промахнулся, не мне это.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.