Что нового

Обфускация кода - Обсуждение проблем

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 470
Репутация
2 401
Перенесено из темы: http://autoit-script.ru/index.php/topic,11429.0.html

AZJIO [?]
Можно добавить обфускацию и размер с 420 кб уменьшится до 300 кб
А вместе с размером уменьшиться надёжность работы скрипта.
Я не пользуюсь обфускатором для больших скриптов по причине убивания работы функции используемых в разных библиотеках.
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Обусфакция кода. Обсуждение проблем.

CreatoR сказал(а):
А вместе с размером уменьшиться надёжность работы скрипта.
Как она убивается? После обфускации, если скрипт не выдал ошибок и предупреждений, значит обфускация прошла стандартным способом. Если были предупреждения, то нужно смотреть, будут ли текущие изменения конфликтовать. В итоге кто мешает отследить модификации или потестировать? Стандартные UDF пишутся с учётом обфускации (сам в FileOperations.au3 выставлял участок для игнора). Возможно Encoding.au3 будет конфликтовать, но у меня в GoogleTranslator.au3 с Encoding.au3 без метки BOM работает.
Кроме того я не тестировал новые версии Obfuscator и пользуюсь пока версией 1.0.29.5, так как после модификаций, когда я описал об ошибке два обновления криво собирали мои остальные проекты, а отписываться на англ. яз. устал, с учётом того что автор желает чтобы я подготовил примеры выявляющий ошибку. Я посчитал, что такие грубые ошибки всплывут сразу у многих и они отпишут на родном языке. Так что если не работает, то нужно отписывать причины, а в моём случае был массив с переносами строк и длинна символов превысила 4096 символов, а обфускатор преобразовывал в одну строку и обрезал часть массива. Пришлось вручную обрезать массив, а после обфускации возвращать обрезанное и компилировать уже обфуцированный без обфускации, хитро но стабильно.

Ещё при беглом просмотре, бросается в глаза
Код:
@error == 0

Макро @error является числовым типом всегда, поэтому не нужно использовать двойное приравнивание, хватит и одинарного.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 470
Репутация
2 401
Обусфакция кода. Обсуждение проблем.

AZJIO [?]
Как она убивается?
Приводит в нерабочее состояние.

Стандартные UDF пишутся с учётом обфускации
Ну мы же не привязаны к стандартам :smile:.
Мы очень часто используем внешние библиотеки, с которыми и возникают проблемы.
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Обусфакция кода. Обсуждение проблем.

CreatoR [?]
Цитата
Как она убивается?
Приводит в нерабочее состояние.
Это связано с особенностями синтаксиса AutoIt, в частности с наличием в UDF функций Execute, Call и т.п.
Вывод - постараться не использовать этих функций в UDF или, хотя-бы, в справке к UDF предупреждать об этом и, желательно, давать вариант решения проблемы. Причем такое решение имеется практически всегда - указать какие функции и переменные добавить в исключения для обфускации.
Наличие же в UDF функции GUIRegisterMsg (если их несколько на одно сообщение в разных UDF или основном коде) - без вариантов (т.е. отсутствие обфускации тоже не помогает) превращает проверенную и отлаженную UDF в болванку, которую надо допиливать для каждого конкретного случая.
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Обусфакция кода. Обсуждение проблем.

CreatoR
Проверил, AutoIt3Wrapper выдаёт результат в кодировке ANSI, далее посмотрел, какие функции содержат символы в UTF-кодировке (за пределом диапазона ANSI) в явном виде, оказалась только одна функция _Encoding_UTF8BOMDecode. В итоге если эта функция не используется в скрипте то можно компилировать с обфускацией, только убрать эту метку BOM, зачем она там нужна, компилятор по содержимому должен определить кодировку. И второй вариант, символы UTF указать бинарными данными с преобразованием в строку, тогда всю UDF можно сохранить в ANSI-кодировке.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 470
Репутация
2 401
Re: Обусфакция кода. Обсуждение проблем.

Очепятку в названии так никто и не заметил, даже я (до сегодняшнего дня) :muttley:...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Re: Обусфакция кода. Обсуждение проблем.

CreatoR [?]
Очепятку в названии так никто и не заметил, даже я (до сегодняшнего дня)
Не один раз читал эту тему, тоже не замечал. ;D
 
Верх