Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.05.2012, 17:08
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 1  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию Какие есть предложения по написанию кода, подлежащему обфускации

Здравствуйте. Дело в том что перепробовал несколько обфускаторов и ни один из них не смог зашифровать код, не повредив работоспособность программы. Самые распространенные ошибки, типа:
Цитата:
переменная :\!_56? не найдена
. Конечно переписывать всю программу глупо, но на будущее: чего стоит придерживаться при написании кода, чтобы избежать подобных проблем. Кто с чем сталкивался при обфускации, в чем была проблема и т.д.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 08.05.2012, 17:45
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 2  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Подстраиваться под обфускатор? Вот это точно глупо. Попробуйте разные режимы или другие обфускаторы.
SecureSWF пробовал?
__________________
In Code We Trust

Старый 08.05.2012, 17:50
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 3  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от Astraport Посмотреть сообщение
SecureSWF пробовал?
В первую очередь. При всех режимах: safe, agressive и т.д. Ошибки только разные - а результат тот же.

Добавлено через 1 минуту
Хотя в целом моя программа (не обработанная) работает стабильно. Не могу сказать что там бред сивой кобылы написан...
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 08.05.2012, 18:11
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 4  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Делал приложение, которое заказчик попросил обфусцировать. Т.к. приложение состояло из двух частей - движок и скин, то приложение тут же после обфускации стало нерабочим из-за несоответствия когда-то общих имен. Пришлось долго и упорно вбивать общие имена в список необфусцируемых. Ситуация похожа?


Последний раз редактировалось kackbip; 08.05.2012 в 18:14.
Старый 08.05.2012, 18:34
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 5  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от kackbip Посмотреть сообщение
Пришлось долго и упорно вбивать общие имена в список необфусцируемых. Ситуация похожа?
Не знаю... В одном обфускаторе (написанном на АС3) была проблема, когда при шифровке имени класса "Map" выбивало, что невозможно найти displacement/?;Flter (ну или вроде того). Я уже не говорю о других совпадениях. Попробую еще раз попробовать с разными обфускаторами. Поглубже изучу настройки - может че выйдет...

Добавлено через 7 минут
kackbip, но все же спасибо - теперь ясно, что имена должны быть уникальными.
А как на счет использования таких вещей как getDefinitionByName(). Не мешает?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 09.05.2012, 07:56
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 6  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Мешает, конечно. Обфускатор меняет все имена в том числе и классов... Так что getDefinitionByName надо использовать с обфусцированным именем типа 56__be6 )) Но до обфускации вы никогда не узнаете какое надо использовать имя Так что просто надо заполнять списки исключений

upd: обфускаторы только не трогают флэшовые классы(возможно флексовые тоже).

Старый 09.05.2012, 11:09
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 7  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Значит, можно подвести некоторые итоги:
1. Имена классов должны быть уникальными.
Поменьше использовать:
2. getDefinitionByName("MyClass");
3. this[someString + "property" + i];
Цитата:
Сообщение от Astraport Посмотреть сообщение
Подстраиваться под обфускатор? Вот это точно глупо.
Может и так, но представьте, если во время написания приложения не учитывать пункты выше. Как потом перебирать тысячи строк кода, чтобы найти исключения для обфускатора!?
Какие у кого еще есть предложения?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 09.05.2012, 14:48
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 8  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Я только не понял требования с уникальностью имен. Вы, бывает, создаете несколько классов с одинаковыми именами?

Старый 09.05.2012, 17:27
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 9  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от kackbip Посмотреть сообщение
Я только не понял требования с уникальностью имен. Вы, бывает, создаете несколько классов с одинаковыми именами?
Да нет же .
Цитата:
В одном обфускаторе (написанном на АС3) была проблема, когда при шифровке имени класса "Map" выбивало, что невозможно найти свойство displacement/?;Flter.
Понимаете? "Map" и "displacementMapFlter".... Не знаю как работают другие - но этот находит все совпадения "Map" - и шифрует их.

Добавлено через 16 минут
Имеется в виду - чтобы имена классов не совпадали со свойствами (или их частью) стандартных классов, а были полностью уникальными.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 09.05.2012, 20:07
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 10  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Ага, понял. Но вообще странно... Должен отдельно имена шифровать, я так думал.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.