Кто-либо перепроектирует, имеют опыт с secureSWF?

Я не думаю, что необходимо быть нужен редактор свойств для этого. Если "пустая" опция является первой в списке, и тег, который производит список, не отмечает ни одного из них, как выбрано, то браузер должен выбрать первый, "пустой" автоматически.

при представлении формы попытайтесь работать она так, чтобы "пустое" значение было связано с командой как пустой указатель, который мог бы произойти автоматически, в зависимости от типа.

8
задан Tom 11 August 2009 в 00:35
поделиться

4 ответа

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я работаю в Kindisoft.

secureSWF - лучший обфускатор ActionScript. Я считаю, что в этом нет никаких сомнений:

secureSWF - лучший обфускатор ActionScript. Я считаю, что в этом нет никаких сомнений:

secureSWF - лучший обфускатор ActionScript. Я считаю, что в этом нет никаких сомнений: https://www.mochiads.com/community/forum/topic/which-obfuscator-should-i-use-as3

http://asgamer.com/2009/why-how-to-encrypt -your-flash-swf

Обфускаторы кода должны сделать невозможным использование реверс-инженерами автоматизированного инструмента, который может извлекать читаемый исходный код (например, декомпилятор). И в этом отношении secureSWF очень успешен. Поскольку автоматизация процесса больше невозможна, время и усилия на обратное проектирование обфусцированного приложения зависят от его размера. Чем больше приложение, тем более сложным и трудоемким становится обратное проектирование. Переписать код с нуля обычно проще.

Обфускация - это не шифрование. Это должен быть односторонний процесс. Когда вы переименовываете идентификаторы, исходные имена больше не существуют. Единственный способ вернуть их - угадать. То же самое относится и к обфускации потока управления. Обработка инструкций и изменение способа выполнения кода в байт-коде не соответствуют тем же правилам ActionScript. Рассмотрим следующее:


// swapping the values of a and b
var t = a;
a = b;
b = t;
// will be compiled to something similar to:
get a
set t;
get b;
set a;
get t;
set b;
// and will be obfuscated to something similar to:
get a
get b
set a
set b
// then it can become:
goto l1:
l2:
set a
set b
goto l3
l1:
get b
get a
swap
goto l2
l3:...
// after that it becomes:
goto l1:
l2:
set a
set b
goto l3
get b
dup
add
l1:
get b
get a
swap
goto l2
l3:...
// and finally (? denotes an unprinted char)
goto l1:
l2:
set ?
set ?
goto l3
get ?
dup
add
l1:
get ?
get ?
swap
goto l2
l3:...

Теперь представьте, что это применимо ко всему вашему коду. Каждый раз по-разному. Я бы пошел дальше, чем утверждал, что обратное проектирование SWF-файлов становится таким же сложным, как собственный код. Я говорю, становится еще труднее.

Но возможно ли это? Конечно, есть. Если у вас есть что-то настолько важное, из-за чего злоумышленники пойдут на все эти неприятности, то это определенно не должно выполняться в потенциально враждебной среде (на клиенте). Хотя это помогает, обфускация не должна рассматриваться в основном как мера безопасности. Более подробную информацию можно найти здесь: Обработка инструкций и изменение способа выполнения кода в байт-коде не соответствуют тем же правилам ActionScript. Рассмотрим следующее:


// swapping the values of a and b
var t = a;
a = b;
b = t;
// will be compiled to something similar to:
get a
set t;
get b;
set a;
get t;
set b;
// and will be obfuscated to something similar to:
get a
get b
set a
set b
// then it can become:
goto l1:
l2:
set a
set b
goto l3
l1:
get b
get a
swap
goto l2
l3:...
// after that it becomes:
goto l1:
l2:
set a
set b
goto l3
get b
dup
add
l1:
get b
get a
swap
goto l2
l3:...
// and finally (? denotes an unprinted char)
goto l1:
l2:
set ?
set ?
goto l3
get ?
dup
add
l1:
get ?
get ?
swap
goto l2
l3:...

Теперь представьте, что это применимо ко всему вашему коду. Каждый раз по-разному. Я бы пошел дальше, чем утверждал, что обратное проектирование SWF-файлов становится таким же сложным, как собственный код. Я говорю, становится еще труднее.

Но возможно ли это? Конечно, есть. Если у вас есть что-то настолько важное, из-за чего злоумышленники пойдут на все эти проблемы, то это определенно не должно выполняться в потенциально враждебной среде (на клиенте). Хотя это помогает, обфускация не должна рассматриваться в основном как мера безопасности. Более подробную информацию можно найти здесь: Обработка инструкций и изменение способа выполнения кода в байт-коде не соответствуют тем же правилам ActionScript. Рассмотрим следующее:


// swapping the values of a and b
var t = a;
a = b;
b = t;
// will be compiled to something similar to:
get a
set t;
get b;
set a;
get t;
set b;
// and will be obfuscated to something similar to:
get a
get b
set a
set b
// then it can become:
goto l1:
l2:
set a
set b
goto l3
l1:
get b
get a
swap
goto l2
l3:...
// after that it becomes:
goto l1:
l2:
set a
set b
goto l3
get b
dup
add
l1:
get b
get a
swap
goto l2
l3:...
// and finally (? denotes an unprinted char)
goto l1:
l2:
set ?
set ?
goto l3
get ?
dup
add
l1:
get ?
get ?
swap
goto l2
l3:...

Теперь представьте, что это применимо ко всему вашему коду. Каждый раз по-разному. Я бы пошел дальше, чем утверждал, что обратное проектирование SWF-файлов становится таким же сложным, как собственный код. Я говорю, становится еще труднее.

Но возможно ли это? Конечно, есть. Если у вас есть что-то настолько важное, из-за чего злоумышленники пойдут на все эти проблемы, то это определенно не должно выполняться в потенциально враждебной среде (на клиенте). Хотя это помогает, обфускация не должна рассматриваться в основном как мера безопасности. Более подробную информацию можно найти здесь: Я бы пошел дальше, чем утверждал, что обратное проектирование SWF-файлов становится таким же сложным, как собственный код. Я говорю, становится еще труднее.

Но возможно ли это? Конечно, есть. Если у вас есть что-то настолько важное, из-за чего злоумышленники пойдут на все эти проблемы, то это определенно не должно выполняться в потенциально враждебной среде (на клиенте). Хотя это помогает, обфускация не должна рассматриваться в основном как мера безопасности. Более подробную информацию можно найти здесь: Я бы пошел дальше, чем утверждал, что обратное проектирование SWF-файлов становится таким же сложным, как собственный код. Я говорю, становится еще труднее.

Но возможно ли это? Конечно, есть. Если у вас есть что-то настолько важное, из-за чего злоумышленники пойдут на все эти проблемы, то это определенно не должно выполняться в потенциально враждебной среде (на клиенте). Хотя это помогает, обфускация не должна рассматриваться в основном как мера безопасности. Более подробную информацию можно найти здесь: обфускацию не следует в основном рассматривать как меру безопасности. Более подробную информацию можно найти здесь: обфускацию не следует в основном рассматривать как меру безопасности. Более подробную информацию можно найти здесь: http://en.wikipedia.org/wiki/Security_through_obscurity

Другие альтернативы включают сохранение конфиденциального кода, работающего на сервере, и шифрование. Кодирование на стороне сервера не всегда возможно. Во многих случаях вам действительно нужно, чтобы ваш код запускался на клиенте. Шифрование еще хуже, дешифрование должно происходить на клиенте, и вам нужно будет отправить клиенту код дешифрования и ключ, ничего не оставляя, чтобы злоумышленник не мог расшифровать код сам.

Надеюсь, я предоставил достаточно технического контента для поддержки мои взгляды. А теперь вернемся к бессовестному маркетингу :). Скачайте демо-версию и проверьте сами. Это не ограничено по времени и полностью функционально, за исключением водяного знака, который мы оставляем на обработанных файлах. Поскольку мы ищем людей на форумах и на сайте stackoverflow.com, чтобы помочь, http://www.kindisoft.com/secureSWF/faq.php

8
ответ дан 3 November 2019 в 14:19
поделиться

У меня нет большого опыта работы с обсфускаторами, но несколько месяцев назад меня попросили попробовать пару из них для конкретного проекта (на самом деле это была - довольно простая - многопользовательская игра. ). Я пробовал SecureSWf и Amayeta SWFEncript (обе пробные версии, которые были полностью функциональны, если я правильно помню).

У обоих были проблемы с более «продвинутыми» функциями. Если бы я просто переименовал идентификаторы, все было бы гладко. Но даже при настройках по умолчанию (минимум обфускации потока управления) один из обфускаторов выдал недопустимый байт-код, т.е. он будет отклонен верификатором игрока. Это вызывает исключение и все. Я действительно не могу вспомнить, какой именно, но он не удался, как только вы запустите swf.

Я больше не тестировал, но я понял, что это тоже нужно учитывать. Использование этих инструментов требует дополнительных затрат . Это может быть приемлемо или неприемлемо для ваших целей, но вы должны это учитывать. После того, как вы измените и измените свой swf, это уже не тот swf, который вы отлаживали и тестировали . Итак, теперь у вас будет вдвое больше рабочего тестирования, потому что есть вероятность, что обфускатор внес ошибки. Тот, что я увидел, был довольно очевиден и сразу поразил игрока, но могли быть и более тонкие, более сложные. И если у вас есть ошибка, которая проявляется только в вашей «защищенной» версии (или, что еще хуже, похоже, что это происходит только в вашей защищенной версии, но вы не уверены), отлаживать ее не будет весело.

Конечно, это не настоящий обзор, просто мой ограниченный опыт. У большинства обфускаторов есть бесплатные пробные версии, так что вы можете попробовать их сами. И я также должен сказать, что декомпилированный и дизассемблированный код был хорошо, действительно запутан, и разобраться в нем было бы сложной задачей.

Тем не менее, я подумал, что добавлю другую точку зрения, о которой нечасто упоминают.

7
ответ дан 3 November 2019 в 14:19
поделиться

Правило 1:

Любой, у кого есть интеллект и решимость, всегда получит ваш код / ​​ключи / источник / файлы / данные
Все, что вы делаете, просто увеличивает потенциальное время / усилия, необходимые для компрометации

С или без SecureSWF, пойдут ли люди на неприятности?

Быстрый Google предполагает, что было сделано не так много попыток декомпилировать файлы SWF, созданные с помощью secureSWF. .. но они все еще должны соответствовать спецификации скомпилированного байт-кода ... так что это просто обфускация. Отсутствие тестирования предполагает:

  1. Никто на самом деле не тестировал его независимо, и поэтому невозможно оценить его безопасность
  2. Люди тестировали его, он очень эффективен, и люди не публиковали результаты

Я думаю, что первое более вероятно. Если вы сказали, что делает приложение Flash, эти моменты могут быть более конкретными.

Я бы поискал источники данных, касающиеся того, как долго после выпуска эти вещи были отменены , а не , а не безопасности самой системы (что не имеет значения).

Также убедитесь, что обеспечение безопасности вашего источника (а не сотрудничество с сообществом) - лучшая стратегия, учитывая, что в какой-то момент решительный разум сможет получить доступ к вашей логике.

С точки зрения бизнеса, ваша стратегическая позиция не должна заключаться в том, чтобы держать вашу логику в беспорядке ... поскольку это бесполезно. Вы можете быть настолько проприетарным, насколько хотите ... но люди будут обходить это стороной (просто спросите игровую индустрию). А жесткая безопасность вызывает негативную реакцию (см. DRM).

Если вы уверены, что ваше приложение настолько потрясающе , что люди приложат все усилия, чтобы обратить его вспять, поищите другое ценностное предложение.

Flash - одна из тех вещей, как JavaScript, где ограничено , и действительно ли это важно? Какая польза от логики приложения без других звеньев в цепочке?

В любом случае, ищите требуемых усилий для реверсирования кодирования , а не , чем предполагаемую силу клиентов программного обеспечения.

В любом случае, удачи!

10
ответ дан 3 November 2019 в 14:19
поделиться

Взгляните на компиляторы с открытым исходным кодом, такие как SWFMill и Haxe http://haxe.org/ , они сгенерировали другой байт-код в своем окончательном SWF-файле, что может привести к сбою многих популярных декомпиляторов. Очевидно, что код может быть получен так же, как и обычный скомпилированный в Adobe SWF файл, но многие декомпиляторы просто не будут работать с ним, поэтому, если вы хотите увеличить «количество необходимых усилий», я бы посоветовал вам взглянуть на это решение. и, возможно, создать что-нибудь, смешав все это.

2
ответ дан 3 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: