Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Что за защита (http://www.flasher.ru/forum/showthread.php?t=211986)

Dmitriy154 21.12.2015 00:19

Что за защита
 
Изучаю способ защиты приложения, не могу понять, может добрые люди помогут
Код AS3:

private function onLoaded(_arg1:Event):void
{
var _local8:int;
 if (stage){
stage.scalemode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT; };
var _local2:ByteArray = new ByteArray();
var _local3:Z = new Z();
_local3.position = (_local3.length - 8);
var _local4:int = _local3.readInt();
var _local5:int = (_local4 + _local3.readInt());
_local3.position = _local4;
var _local6:int = _local4;
while (_local6 < _local5)
{ _local8 = _local3.readUnsignedByte();
_local8 = (_local8 ^ 18); _local2.writeByte(_local8); _local6++;
};
var _local7:Loader = new Loader();
addChild(_local7);
_local7.loadBytes(_local2); } 
}
}
//package
package
{
import flash.utils.*
public class Z extends ByteArray {  }
}

Не понятно, откуда берутся нужные данные ByteArray

GBee 21.12.2015 01:03

Мы все здесь злые.

ZackMercury 21.12.2015 01:08

Из экземпляра класса Z.

caseyryan 21.12.2015 07:42

Декомпилятор не может получить содержимое флешки, которая была вшита в основную через Embed. Поэтому здесь нет никакого кода в классе Z. В реальности он, конечно же, есть.
Защита здесь примитивная, простое смещение байт. Весь алгоритм на виду. А можно было сделать динамичческое составление ключа внутри вшитой флешки, а наружу из нее выдавать уже готовый ключ. Так было бы надежнее, и само шифрование использовать, например, AES

Dmitriy154 21.12.2015 10:30

Почему же тогда класс Z расширяет ByteArray, и как добраться до основного класса? Я так понимаю класс Z переводит основной класс приложения в байт массив с необходимым сдвигом байт. Прошу прощения за такую нелегальную тему, просто интересуюсь с целью понять суть защиты.

caseyryan 21.12.2015 12:27

Ничего он не переводит никуда. Z - это простой swf файл, который был предварительно обработан какой-то прогой, делающий сдвиг байт, и вшит в основную флешку через Embed.
А расширяет он ByteArray потому, что компилятор так сделал.
Ты так же можешь увидеть кучу якобы пустых классов расширяющих BitmapAsset или BitmapData которых не было в изначальном приложении

Dmitriy154 21.12.2015 13:15

Вот тебе и примитивная защита, короче не будем заморачиваться, спасибо за помощь

i.o. 21.12.2015 16:59

на момент
_local7.loadBytes(_local2);

уже известны байты реального ролика, нужно просто сохранить байты из_local2 как файл и это будет искомый swf :)

Tails 21.12.2015 17:06

Вот есть у вас совесть?

undefined 21.12.2015 18:01

Цитата:

на момент
_local7.loadBytes(_local2);

уже известны байты реального ролика, нужно просто сохранить байты из_local2 как файл и это будет искомый swf
откуда они известны, если класс z - пустой?

Добавлено через 13 минут
Я знаю, что в реальности он не пустой, но как можно его выцепить без модификации кода?


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

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