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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2006, 20:20
Techmaker вне форума Посмотреть профиль Отправить личное сообщение для Techmaker Найти все сообщения от Techmaker
  № 61  
Ответить с цитированием
Techmaker
"человек"
 
Аватар для Techmaker

Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
пора тему в Флейм =))
__________________
flash it

Старый 20.06.2006, 21:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 62  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Для души -- пожалуйста.
Защищать каждый сделанный ролик -- умаешься.

Старый 21.06.2006, 01:56
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 63  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
Цитата:
Сообщение от Homo Sapiens
2 Usnul: Как писал Шнайер (если не ошибаюсь) есть 2 вида криптографии, которая защищает от младшей сестры и от правительств других стран. Код Цезаря явно относится к первому виду.
ну почему все младшие сестры думают что они умнее меня?
__________________
I'm only happy when it rains.
Waka Laka

Старый 21.06.2006, 02:18
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 64  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Ммм, не знаю, лично не знаком
__________________
Всё гениальное просто.

Старый 21.06.2006, 03:06
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 65  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
мне известны сложные методы шифрования, но такой момент: если кто-то знает про цезаря и алфавитный анализ, то шансы того что он знаком с более замороченными методами очень велики. Я думаю что если ты хочешь скрыть такую вещь как например код для следующего уровня и перегоняешь его с помощью простенького шифра во что-то иное, то очень, очень низкий процент тех кто не полениться воспользоваться декомпилятором поймет (найдет) где собака зарыта. Умные и целеустремленные люди (что обычно не сочитается) смогут взловать все что вы им предложите. Лично я предпочитаю вещи вроде RC3 или AES, но с другой стороны они могут представлять интерес скорее с академической точки зрения нежеле с практической в данном случае. Если алгоритм щифрования доступен (через декомпилятор) то какой смысл в сложности самого метода?
__________________
I'm only happy when it rains.
Waka Laka

Старый 21.06.2006, 05:09
sourcer21 вне форума Посмотреть профиль Отправить личное сообщение для sourcer21 Найти все сообщения от sourcer21
  № 66  
Ответить с цитированием
sourcer21

Регистрация: Jun 2006
Сообщений: 22
По умолчанию Вот так может

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

И так начнем:

Код:
fuction encode(str)
{
	return str-кодированная по какому то алгоритму...
}

function decode(str)
{
	return str-декодированная по алгоритму которому кодировали...
}
вот две этих ф-ии... делаем абсолютно простой алгоритм шифрования и дешифрования чтобы не грузило флеш сильно...

пишем программу на php к примеру которая работает в несколько проходов - пускай в 10

имеем исходный код который надо закодировать.

напиример вот этот:
Код:
            with(this){
                if (drawing) return;//пока рисуем, не дергаемся
                clear ();
                if (fc != undefined) beginFill (fc,fa);
                moveTo (o ? this [0]._x : (this [0]._x + this [l - 1]._x) / 2, o ? this [0]._y : (this [0]._y + this [l - 1]._y) / 2);
                for (var i = 0;    i < l - 1;i ++)    {
                    if (lc != undefined) lineStyle (lw,lc, this [i].w ? 0 : 100);
                    curveTo (this [i]._x, this [i]._y, (this [i]._x + this [i + 1]._x) / 2, (this [i]._y + this [i + 1]._y) / 2)
                }
                if (!o) curveTo (this [i]._x, this [i]._y, (this [i]._x + this [0]._x) / 2, (this [i]._y + this [0]._y) / 2);
                if (fc) endFill ();
            }
кодируем его в несколько проходов по придуманному алгоритму. кодируем программой другой на PHP на C++ на чем угодно

1-ый проход программы
программа случайным образом(но не ломая синтексис) делит этот исходиник... допустим что она поделила вот так вот:

Код:
  with(this){
1---------------------------------------------
                if (drawing) return;//пока рисуем, не дергаемся
                clear ();
2---------------------------------------------
                 if (fc != undefined) beginFill (fc,fa);
                moveTo (o ? this [0]._x : (this [0]._x + this [l - 1]._x) / 2, o ? this [0]._y : (this [0]._y + this [l - 1]._y) / 2);
3---------------------------------------------
               for (var i = 0;    i < l - 1;i ++)    {
                    if (lc != undefined) lineStyle (lw,lc, this [i].w ? 0 : 100);
                    curveTo (this [i]._x, this [i]._y, (this [i]._x + this [i + 1]._x) / 2, (this [i]._y + this [i + 1]._y) / 2)
                }
4---------------------------------------------
                if (!o) curveTo (this [i]._x, this [i]._y, (this [i]._x + this [0]._x) / 2, (this [i]._y + this [0]._y) / 2);
5---------------------------------------------
                if (fc) endFill ();
            }
и кодирует некоторые куски, но не все...
допустим она выбрала так: куски 1-2 и 4-5 и вот во что превращает исходник:

Код:
with(this){
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
                 if (fc != undefined) beginFill (fc,fa);
                moveTo (o ? this [0]._x : (this [0]._x + this [l - 1]._x) / 2, o ? this [0]._y : (this [0]._y + this [l - 1]._y) / 2);
               for (var i = 0;    i < l - 1;i ++)    {
                    if (lc != undefined) lineStyle (lw,lc, this [i].w ? 0 : 100);
                    curveTo (this [i]._x, this [i]._y, (this [i]._x + this [i + 1]._x) / 2, (this [i]._y + this [i + 1]._y) / 2)
                }
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
                if (fc) endFill ();
            }
теперь повторяем такуюже манимуляцию с этим исходником... (приведу дяллее на нем пример для закрепления)

Допустим программа разбила на блоки слудующим образом:

Код:
with(this){
1-------------------------------
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
                 if (fc != undefined) beginFill (fc,fa);
                moveTo (o ? this [0]._x : (this [0]._x + this [l - 1]._x) / 2, o ? this [0]._y : (this [0]._y + this [l - 1]._y) / 2);
2-------------------------------
               for (var i = 0;    i < l - 1;i ++)    {
                    if (lc != undefined) lineStyle (lw,lc, this [i].w ? 0 : 100);
                    curveTo (this [i]._x, this [i]._y, (this [i]._x + this [i + 1]._x) / 2, (this [i]._y + this [i + 1]._y) / 2)
                }
3-------------------------------
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
                if (fc) endFill ();
4-------------------------------

            }
повторяем манимуляцию кодирования... ну к примеру кодируем блоки 1-2 и 2-3

выходит следующие

Код:
   with(this){
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
eval(decode("#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D"));
                if (fc) endFill ();

            }


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

или еще можно как делать

запрашивать у скрипта этот код и только во флеше его выдавать вщамен на логин пароль и какойнибудь кодик...
представим что флешка это ничто иное как просто
акшн скрипт который долбится в PHP скрипт, а скрпт ему взввращает некий код #$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D\
а флешак этот код исполняет как eval(decode(#$^%&*()%%$%$%^$%^$%$%^%^%$%$%$$%^$#$^#$$##@%ERYTFYTF^%FRDD^ED^D));

и получается рекурсивная распаковка...

ну вот аткая тема, если хватит репения расковырять, то расковыряют конечно


Последний раз редактировалось iNils; 21.06.2006 в 11:30.
Старый 21.06.2006, 11:11
Beastriker вне форума Посмотреть профиль Отправить личное сообщение для Beastriker Посетить домашнюю страницу Beastriker Найти все сообщения от Beastriker
  № 67  
Ответить с цитированием
Beastriker
 
Аватар для Beastriker

Регистрация: Jun 2004
Адрес: moscu
Сообщений: 194
Отправить сообщение для Beastriker с помощью ICQ
Вообще никто не хранит пароли на стороне клиента, не в Java апплетах, не в SWF плеерах, не хранят.

да, это тупиковый путь...
лучше всего - serverside scripts))

Старый 21.06.2006, 11:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 68  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
2sourcer21, а что будет флеш делать с тем кодом после того как его распакует, на полку положит?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.06.2006, 14:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 69  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
sourcer21, ужасный код. Больше такое не показывайте.

Старый 23.06.2006, 01:42
PSoWP вне форума Посмотреть профиль Отправить личное сообщение для PSoWP Найти все сообщения от PSoWP
  № 70  
Ответить с цитированием
PSoWP
[+3 18.06.06]
 
Аватар для PSoWP

Регистрация: Jun 2006
Сообщений: 113
Цитата:
Сообщение от Beastriker
Вообще никто не хранит пароли на стороне клиента, не в Java апплетах, не в SWF плеерах, не хранят.
Учись читать. Я писал что у меня только сторона клиента, а я не хочу, чтоб мой код ктонить просто так читал, пусть мучается если хочет...

Байткод из любой флэшки в хексе вытащить можно. А ещё оперативку просматривать можно и входящие и отбывающие пакеты(подкоректировать даже можно) тогда тебе сторона сервера не поможет)
Но не каждый разбирается в этом(некоторым ещё лень) так что от 70-80% потенциальных взломщиков ты освобожден при минимальной защите и от 80-90% при хорошей.

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

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

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


 


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


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