Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Как защитить от изменений профиль пользователя в AIR-приложении? (http://www.flasher.ru/forum/showthread.php?t=167850)

mikhailk 13.09.2011 20:38

Как защитить от изменений профиль пользователя в AIR-приложении?
 
Под профилем пользователя имеется в виду данные его перса, количество денег на счетах, предметы в сумках, выполненные квесты и т.д.

На вскидку представляется разумным хранить профиль тут: File.applicationStorageDirectory.
Но, как я понимаю, место общедоступное. Можно попробовать зашифровать содержимого файла (XOR или как посложнее), но ключ все равно будет храниться внутри приложения.

Есть какой-нибудь несложный способ защиты от совсем начинающих хакеров?

Gage 13.09.2011 21:56

Класс шифрования MD5. http://gsolo.com/temp/macromedia/fle...yption/MD5.zip

mikhailk 13.09.2011 22:43

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

Astraport 13.09.2011 23:42

Задача в общем случае не имеет решения. Можно только максимально усложнить взлом хакеру.
Цитата:

но ключ все равно будет храниться внутри приложения.
Как увидеть ключ внутри обфусцированного приложения?

mikhailk 14.09.2011 00:44

Ну разве что так - ключ+обфускация
Нет, конечно, можно еще ключ вложить во флешку, которую заэмбедить...

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

PikseL 14.09.2011 12:24

В AIR специально для этого есть EncryptedLocalStore. А вот если не AIR, то можно использовать http://pixxxxxel.blogspot.com/2010/09/as3crypto.html

Astraport 14.09.2011 12:40

Цитата:

Нет, конечно, можно еще ключ вложить во флешку, которую заэмбедить...
Интересное решение. И что нельзя влезть внутрь заэмбеденной флэшки? Нет ли примера кода реализации?

mikhailk 14.09.2011 12:56

Цитата:

И что нельзя влезть внутрь заэмбеденной флэшки? Нет ли примера кода реализации?
Выпилить из байткода вроде можно, но декомпилятор не видит.

Подключение:

Код AS3:

[Embed(source = '../libraries/data.swf', mimeType="application/octet-stream")]
public static var data:Class;

Загрузка:

Код AS3:

private function init(e:Event = null):void 
{
 
        removeEventListener(Event.ADDED_TO_STAGE, init);
        // entry point
 
        loader = new Loader();       
        loader.loadBytes(new data as ByteArray);
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, initWithCode);                       
}
 
private function initWithCode(e:Event):void
{
        var mc:MovieClip = loader.content as MovieClip;
        trace(mc.getCodes());
 
        // entry point with secret code
}

Подключаемый мувик с кодом должен иметь метод getCodes(), который и вернет код.

Добавлено через 4 минуты
Цитата:

В AIR специально для этого есть EncryptedLocalStore.
Это?
http://www.adobe.com/devnet/air/ajax...cal_store.html


Смущает:

Цитата:

Encryption details

Here's an overview of how encryption is implemented in Adobe AIR:

Each Adobe AIR application has its own encrypted local store.
The encrypted local store can only be accessed from the application security sandbox.
Adobe AIR uses DPAPI on Windows and Keychain on Mac OS X.
Data is encrypted to the local store using AES-CBC 128-bit.
Я решаю задачу под Android, а тут Windows и Mac OS X

etc 14.09.2011 13:06

Цитата:

Сообщение от Gage (Сообщение 1031201)
Класс шифрования MD5. http://gsolo.com/temp/macromedia/fle...yption/MD5.zip

А расшифровывать как будем?

mikhailk 14.09.2011 13:37

Там в этом классе много методов, в том числе симметричного шифрования.

Т.е., все равно получается вариант с шифрованием, как я понимаю...


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

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