mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 19:47 Benutzername: Passwort: Auto-Login

Thema: SWF vor decompiling schützen? vom 08.08.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> SWF vor decompiling schützen?
Seite: 1, 2  Weiter
Autor Nachricht
Kai.S
Threadersteller

Dabei seit: 20.12.2005
Ort: München
Alter: 41
Geschlecht: Männlich
Verfasst Di 08.08.2006 16:00
Titel

SWF vor decompiling schützen?

Antworten mit Zitat Zum Seitenanfang

Hey Leute,

also ich bin derzeit auf der Suche nach einer geeigneten Technik um ein LivePaper zu publizieren.
Ich bin dabei auf die Magazine von MagWerk, welche allesamt wirklich hervorragen ist.

Zu sehen unter:
Probe - Das GAMES-MAGAZIN:
http://www.magwerk.com/mag.php?magazine=probe&language=en
encore - Das Design Magazin:
http://www.magwerk.com/mag.php?magazine=encore&language=de
playmusic - Das Musik-Magazin:
http://www.magwerk.com/mag.php?magazine=playmusic&language=en

Nun wollte ich mal sehen, wie die das machen, um den Aufwand abzuschätzen, der bei der Erstellung eines solchen Magazins entsteht und hab das Ding doch den SWF Decompiler gejagt.

Merkwürdigerweise bekomm ich da aber nix gerades bei raus, nur merkwürdige if else und eval Funktionen im ersten Keyframe. Es ist zwar ein Haufen Zeug in der Bibliothek und ich kann da auch mit Doppelklick rein, aber die Actions die dann auf dem 1. Bild in einem MC liegen kann ich nicht einsehen.

Bei dem livepaper des entertainment mediaverlages ( kino.de setzt es u.A. ein ) bekomm ich den gleichen Rotz ...

Jetzt meine Frage an die großen Flash-Götter:

Gibt es mittlerweile endlich einen Weg seine SWFs verlässlich vor der Decompilierung zu schützen?!?!
Oder haben die korrupte SWF Dateien erzeugt, die vom Player abgespielt werden aber nicht wieder kompilierbar sind?!

Wenn ja, wie geht das?!
Wenn nein, warum kann ich dann nicht die Aktionen einsehen?


Ich habe die neueste Version vom SWF Decompiler (3.3) und Flash 8 benutzt.


Zuletzt bearbeitet von Kai.S am Di 08.08.2006 16:00, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Di 08.08.2006 16:13
Titel

Antworten mit Zitat Zum Seitenanfang

Ich bin zwar keiner der Götter, aber kurz gesagt: NEIN.

Man kann zwar versuchen, mit lustigen Obfuscate-Tools den Code zu verschleiern, aber ich hab noch keins gefunden, das funktioniert. Und ich bin seit 2 1/2 Jahren VERZWEIFELT auf der Suche.

Mir ist keins bekannt, da der ASViewer nicht zerlegen könnte
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Di 08.08.2006 16:18
Titel

Antworten mit Zitat Zum Seitenanfang

Es gibt da ein paar Möglichkeiten, die zumindestens Freunde der Dekompilierung zur Weißglut bringen können. *zwinker*

Du kannst z.B. Filme mit Einzelscripten verschachteln (z.B. mit loadMovie) oder Prüfcodes einbauen.

Ansonsten:
http://www.flashincrypt.com/
http://tech.motion-twin.com/obfu.html
http://www.amayeta.com/software/swfencrypt/
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Kai.S
Threadersteller

Dabei seit: 20.12.2005
Ort: München
Alter: 41
Geschlecht: Männlich
Verfasst Di 08.08.2006 16:31
Titel

Antworten mit Zitat Zum Seitenanfang

FlamingArt hat geschrieben:
Mir ist keins bekannt, da der ASViewer nicht zerlegen könnte


Dann versuch doch mal http://www.magwerk.com/mag.php?magazine=playmusic&language=en zu öffnen,
das geht weder mit SoThink SWF Decompiler 3.3 noch mit Action Script Viewer 5.01.

Habe beide versucht - keine Chance, kommt immer der selbe Müll bei raus.

EDIT: Sieht verdammt nach SWF Encrypt 3.0 aus. Ist das nun zuverlässig? Lohnt die Anschaffung? (95€)


Zuletzt bearbeitet von Kai.S am Di 08.08.2006 17:01, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Di 08.08.2006 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

Also bei mir gehts

Beispiel:

Code:


 if (!_global.mx) {
        _global.mx = new Object ();
    }
    if (!_global.mx.skins) {
        _global.mx.skins = new Object ();
    }
    if (!_global.mx.skins.halo) {
        _global.mx.skins.halo = new Object ();
    }
    if (!_global.mx.skins.halo.FocusRect) {
        var _local1 = function () {
            super();
            this.boundingBox_mc._visible = false;
            this.boundingBox_mc._width = (this.boundingBox_mc._height = 0);
        };
        mx.skins.halo.FocusRect = _local1;
        var _local2 = new mx.skins.SkinElement();
        mx.skins.halo.FocusRect.prototype = _local2;
        _local2.draw = function (o) {
            o.adjustFocusRect();
        };
        _local2.setSize = function (w, h, r, a, rectCol) {
            this._xscale = (this._yscale = 100);
            this.clear();
            if (typeof (r) == "object") {
                r.br = ((r.br > 2) ? (r.br - 2) : 0);
                r.bl = ((r.bl > 2) ? (r.bl - 2) : 0);
                r.tr = ((r.tr > 2) ? (r.tr - 2) : 0);
                r.tl = ((r.tl > 2) ? (r.tl - 2) : 0);
                this.beginFill(rectCol, a * 0.3);
                this.drawRoundRect(0, 0, w, h, r);
                this.drawRoundRect(2, 2, w - 4, h - 4, r);
                this.endFill();
                r.br = ((r.br > 1) ? (r.br + 1) : 0);
                r.bl = ((r.bl > 1) ? (r.bl + 1) : 0);
                r.tr = ((r.tr > 1) ? (r.tr + 1) : 0);
                r.tl = ((r.tl > 1) ? (r.tl + 1) : 0);
                this.beginFill(rectCol, a * 0.3);
                this.drawRoundRect(1, 1, w - 2, h - 2, r);
                r.br = ((r.br > 1) ? (r.br - 1) : 0);
                r.bl = ((r.bl > 1) ? (r.bl - 1) : 0);
                r.tr = ((r.tr > 1) ? (r.tr - 1) : 0);
                r.tl = ((r.tl > 1) ? (r.tl - 1) : 0);
                this.drawRoundRect(2, 2, w - 4, h - 4, r);
                this.endFill();
            } else {
                var _local5;
                if (r != 0) {
                    _local5 = r - 2;
                } else {
                    _local5 = 0;
                 }
                this.beginFill(rectCol, a * 0.3);
                this.drawRoundRect(0, 0, w, h, r);
                this.drawRoundRect(2, 2, w - 4, h - 4, _local5);
                this.endFill();
                this.beginFill(rectCol, a * 0.3);
                if (r != 0) {
                    _local5 = r - 2;
                    r = r - 1;
                } else {
                    _local5 = 0;
                    r = 0;
                 }
                this.drawRoundRect(1, 1, w - 2, h - 2, r);
                this.drawRoundRect(2, 2, w - 4, h - 4, _local5);
                this.endFill();
             }
        };
        _local2.handleEvent = function (e) {
            if (e.type == "unload") {
                this._visible = true;
            } else if (e.type == "resize") {
                e.target.adjustFocusRect();
            } else if (e.type == "move") {
                e.target.adjustFocusRect();
            }
        };
        _local1.classConstruct = function () {
            mx.core.UIComponent.prototype.drawFocus = function (focused) {
                var _local2 = this._parent.focus_mc;
                if (!focused) {
                    _local2._visible = false;
                    this.removeEventListener("unload", _local2);
                    this.removeEventListener("move", _local2);
                    this.removeEventListener("resize", _local2);
                } else {
                    if (_local2 == undefined) {
                        _local2 = this._parent.createChildAtDepth("FocusRect", mx.managers.DepthManager.kTop);
                        _local2.tabEnabled = false;
                        this._parent.focus_mc = _local2;
                    } else {
                        _local2._visible = true;
                     }
                    _local2.draw(this);
                    if (_local2.getDepth() < this.getDepth()) {
                        _local2.setDepthAbove(this);
                    }
                    this.addEventListener("unload", _local2);
                    this.addEventListener("move", _local2);
                    this.addEventListener("resize", _local2);
                 }
            };
            mx.core.UIComponent.prototype.adjustFocusRect = function () {
                var _local2 = this.getStyle("themeColor");
                if (_local2 == undefined) {
                    _local2 = 8453965 /* 0x80FF4D */;
                }
                var _local3 = this._parent.focus_mc;
                _local3.setSize(this.width + 4, this.height + 4, 0, 100, _local2);
                _local3.move(this.x - 2, this.y - 2);
            };
            TextField.prototype.drawFocus = mx.core.UIComponent.prototype.drawFocus;
            TextField.prototype.adjustFocusRect = mx.core.UIComponent.prototype.adjustFocusRect;
            mx.skins.halo.FocusRect.prototype.drawRoundRect = mx.skins.halo.Defaults.prototype.drawRoundRect;
            return (true);
        };
        _local1.classConstructed = mx.skins.halo.FocusRect.classConstruct();
        _local1.DefaultsDependency = mx.skins.halo.Defaults;
        _local1.UIComponentDependency = mx.core.UIComponent;
        (ASSetPropFlags(mx.skins.halo.FocusRect.prototype, null, 1));// not popped
    }
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Kai.S
Threadersteller

Dabei seit: 20.12.2005
Ort: München
Alter: 41
Geschlecht: Männlich
Verfasst Mi 09.08.2006 09:32
Titel

Antworten mit Zitat Zum Seitenanfang

Also gehts doch ... *hu hu huu*

maaaaaaan und ich dachte schon ... * Ich muß mich mal kurz übergeben... *

Welche Version hast du denn benutzt, weils bei mir so verzockt ist?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
ALEXX

Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht: Männlich
Verfasst Mi 09.08.2006 15:03
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

ich kenne ein sehr gutes tool zur verschlüsselung von swf files.
bis jetzt wurde diese verschlüsselung noch nicht geknackt.
benutze das proggi selber und habe es auf herz und nieren getestet.
Fazit: Sehr sicher! Lächel

http://www.amayeta.com/software/swfencrypt/


mfg alex
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sarky

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Mi 09.08.2006 16:52
Titel

Antworten mit Zitat Zum Seitenanfang

* Ööhm... ja? *
[ ] Du hast den Thread gelesen

pejot hat geschrieben:

http://www.amayeta.com/software/swfencrypt/


Kai.S hat geschrieben:

Sieht verdammt nach SWF Encrypt 3.0 aus.


FlamingArt hat geschrieben:

Also bei mir gehts
  View user's profile Private Nachricht senden
 
Ähnliche Themen Datei schützen
Grafik schützen
pdf für website schützen
Flash vor klau schützen
login-bereich schützen
PHP: MySQL-Zugangsdaten schützen?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.