You last visited: Today at 12:22
Advertisement
[help] loadingscreen.swf decompile
Discussion on [help] loadingscreen.swf decompile within the DarkOrbit forum part of the Browsergames category.
11/13/2013, 01:18
#1
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
[help] loadingscreen.swf decompile
hi
i try to decompile the loadingscreen.swf
This file is packed with zlib i think, and crypted before
i found AS3 source code from preloader.swf
Code:
package net.bigpoint.darkorbit.preloader
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLLoader;
import net.bigpoint.darkorbit.preloader.error.GlobalErrorHandler;
import flash.events.Event;
import flash.display.StageAlign;
import flash.system.Security;
import flash.display.StageScaleMode;
import flash.display.MovieClip;
import flash.display.LoaderInfo;
import --_--.-__--_;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.events.IOErrorEvent;
import flash.utils.ByteArray;
import flash.system.LoaderContext;
import flash.system.ApplicationDomain;
import --_-_.-_____;
import mx.logging.Log;
import flash.text.Font;
public class -_-_-- extends Sprite
{
public function -_-_--() {
var _loc1_:* = true;
var _loc2_:* = false;
this.-_-_- = -_---_;
super();
Font.registerFont(-____);
addEventListener(Event.ADDED_TO_STAGE,this.---__);
}
private static var -____:Class = -___-;
private var ---:-__-__;
private var -_----:Loader;
private var -__-:URLLoader;
private var errorHandler:GlobalErrorHandler;
private var -_-_-:Class;
private function ---__(param1:Event) : void {
var _loc2_:* = false;
var _loc3_:* = true;
removeEventListener(Event.ADDED_TO_STAGE,this.---__);
stage.addEventListener(Event.RESIZE,this.---_-);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Security.allowDomain("*");
this.--____();
this.-_-_();
this.-_---();
}
private function --_() : void {
var _loc1_:* = false;
var _loc2_:* = true;
this.errorHandler = new GlobalErrorHandler(this);
this.errorHandler.initialize();
}
private function ---_-(param1:Event) : void {
var _loc2_:* = false;
var _loc3_:* = true;
this.-___--();
}
private function -_-_() : void {
var _loc2_:* = false;
var _loc3_:* = true;
if(this.--- != null)
{
return;
}
var _loc1_:MovieClip = new this.-_-_-() as MovieClip;
this.--- = new -__-__(_loc1_);
this.-___--();
addChild(this.---);
this.---.show();
}
private function -___--() : void {
var _loc1_:* = false;
var _loc2_:* = true;
if(!(stage == null) && !(this.--- == null))
{
this.---.x = stage.stageWidth * 0.5;
this.---.y = stage.stageHeight * 0.5;
}
}
private function --____() : void {
var _loc5_:* = false;
var _loc6_:* = true;
var -__:String = null;
var -_--:String = null;
var --__-:Object = null;
var -_-:Boolean = false;
try
{
--__- = LoaderInfo(this.stage.loaderInfo).parameters;
for (-__ in --__-)
{
-_-- = String(--__-[-__]);
if("host" !== _loc4_)
{
if("cdn" !== _loc4_)
{
if("lang" !== _loc4_)
{
if("loadingscreenHash" !== _loc4_)
{
if("loadingClaim" !== _loc4_)
{
if("resolutionID" !== _loc4_)
{
switch(null)
{
case "errortracking":
-__--_.host = "http://" + -_-- + "/";
continue;
default:
continue;
}
}
}
}
}
}
}
}
}
catch(error:Error)
{
}
if(!(-__--_.host == "") && -__--_.--__ == "")
{
-__--_.--__ = -__--_.host;
}
}
public function -_---() : void {
var _loc3_:* = false;
var _loc4_:* = true;
var _loc2_:URLRequest = null;
var _loc1_:* = ".did.ID? c#sharp!";
_loc1_ = ".swf";
if(-__--_.--__ == "")
{
_loc2_ = new URLRequest("loadingscreen" + _loc1_);
}
else
{
_loc2_ = new URLRequest(-__--_.--__ + "spacemap/loadingscreen" + _loc1_ + "?__cv=" + -__--_.loadingscreenHash);
}
this.-__- = new URLLoader();
this.-__-.dataFormat = URLLoaderDataFormat.BINARY;
this.-__-.addEventListener(Event.COMPLETE,this.--_-__);
this.-__-.addEventListener(IOErrorEvent.IO_ERROR,this.-_-_-_);
this.-__-.load(_loc2_);
}
private function -_-_-_(param1:IOErrorEvent) : void {
var _loc2_:* = true;
var _loc3_:* = false;
}
private function --_-__(param1:Event) : void {
var _loc2_:* = false;
var _loc3_:* = true;
this.--__--(param1.target as URLLoader);
}
private function --__--(param1:URLLoader) : void {
var _loc5_:* = false;
var _loc6_:* = true;
var _loc2_:ByteArray = param1.data as ByteArray;
var _loc3_:* = true;
_loc2_.uncompress();
_loc2_ = this.--_-(_loc2_);
_loc2_.position = 0;
this.-_---- = new Loader();
this.--___-();
var _loc4_:LoaderContext = new LoaderContext(false,new ApplicationDomain(null));
this.-_----.loadBytes(_loc2_,_loc4_);
}
private function --_-(param1:ByteArray) : ByteArray {
var _loc7_:* = true;
var _loc8_:* = false;
var _loc3_:uint = 0;
var _loc4_:uint = 0;
var _loc2_:uint = param1.length;
param1.position = 0;
var _loc5_:uint = 57;
var _loc6_:* = 0;
while(_loc6_ < _loc2_)
{
_loc5_ = _loc5_ + 3;
_loc5_ = (_loc5_ + 3) & 255;
_loc4_ = _loc5_ & 4;
_loc3_ = param1[_loc6_];
param1[_loc6_] = _loc3_ ^ _loc5_;
_loc6_++;
}
param1.position = 0;
return param1;
}
private function -_(param1:uint, param2:uint) : uint {
var _loc3_:* = true;
var _loc4_:* = false;
return param1 << param2 | param1 >>> -param2;
}
private function -_--_(param1:Event) : void {
var _loc2_:* = true;
var _loc3_:* = false;
this.-_-__-();
this.---.hide();
stage.addChild(this.-_----);
this.-__-_-();
}
private function -(param1:IOErrorEvent) : void {
var _loc2_:* = true;
var _loc3_:* = false;
this.-_-__-();
}
private function --___-() : void {
var _loc1_:* = true;
var _loc2_:* = false;
this.-_----.contentLoaderInfo.addEventListener(Event.COMPLETE,this.-_--_);
this.-_----.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,this.-);
this.-_----.addEventListener("mx.managers.SystemManager.isBootstrapRoot",this.--__-_);
this.-_----.addEventListener("mx.managers.SystemManager.isStageRoot",this.--__-_);
}
private function -_-__-() : void {
var _loc1_:* = true;
var _loc2_:* = false;
this.-_----.contentLoaderInfo.removeEventListener(Event.COMPLETE,this.-_--_);
this.-_----.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,this.-);
this.-_----.removeEventListener("mx.managers.SystemManager.isBootstrapRoot",this.--__-_);
this.-_----.removeEventListener("mx.managers.SystemManager.isStageRoot",this.--__-_);
}
private function -____-() : void {
var _loc2_:* = false;
var _loc3_:* = true;
var _loc1_:-_____ = new -_____();
_loc1_.-- = "localhost";
Log.addTarget(_loc1_);
}
public function --__-_(param1:Event) : void {
var _loc2_:* = false;
var _loc3_:* = true;
param1.preventDefault();
}
private function -__-_-() : void {
var _loc1_:* = false;
var _loc2_:* = true;
stage.removeEventListener(Event.RESIZE,this.---_-);
if(!(this.--- == null) && (contains(this.---)))
{
removeChild(this.---);
}
}
}
}
I try to build now code to decrypt and save the decrypted file
here i my code
Code:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.events.Event;
import flash.display.StageAlign;
import flash.system.Security;
import flash.display.StageScaleMode;
import flash.display.MovieClip;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.events.IOErrorEvent;
import flash.utils.ByteArray;
import flash.system.LoaderContext;
import flash.system.ApplicationDomain;
import mx.logging.Log;
import flash.text.Font;
import flash.events.*;
import flash.net.*;
/**
* ...
* @author uragan
*/
public class Main extends Sprite
{
public var swfloader:Loader = new Loader();
public var url:String
public var request:URLRequest = new URLRequest();
public var loader:URLLoader = new URLLoader();
public var bytestring:ByteArray;
public var myfile:FileReference = new FileReference();
public var context:LoaderContext = new LoaderContext(false, new ApplicationDomain(null));
public function Main():void
{
url = "loadingscreen.swf" //"http://darkorbit-22.level3.bpcdn.net/spacemap/loadingscreen.swf";
request = new URLRequest(url);
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(request);
}
public function completeHandler(event:Event):void {
unpack(event.target as URLLoader);
//trace("completeHandler: " + loader.data);
}
public function unpack(loader:URLLoader):void {
bytestring = loader.data as ByteArray;
bytestring.uncompress();
bytestring = decompile(bytestring);
bytestring.position = 0;
myfile.save(bytestring.toString(), "text.swf");
swfloader.loadBytes(bytestring, context);
//trace("completeHandler: " + loader.data);
}
public function decompile(param1:ByteArray) : ByteArray {
var _loc7_:* = true;
var _loc8_:* = false;
var _loc3_:uint = 0;
var _loc4_:uint = 0;
var _loc2_:uint = param1.length;
param1.position = 0;
var _loc5_:uint = 57;
var _loc6_:* = 0;
while(_loc6_ < _loc2_)
{
_loc5_ = _loc5_ + 3;
_loc5_ = (_loc5_ + 3) & 255;
_loc4_ = _loc5_ & 4;
_loc3_ = param1[_loc6_];
param1[_loc6_] = _loc3_ ^ _loc5_;
_loc6_++;
}
param1.position = 0;
return param1;
}
public function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
}
}
}
But this file is still crypted
Maybe somebody can compare this codes and find the BUG on my code
I will put some used files to a packet and zip it.
Thank you
Attached Files
pack.zip
(1.41 MB, 38 views)
11/13/2013, 02:14
#2
elite*gold: 0
Join Date: Dec 2012
Posts: 120
Received Thanks: 6
Thanks you
)
11/13/2013, 06:50
#3
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Try to decompile the code with FFDEC (JPEXS). I guess, you used Sothink, but in decompiling of as code it's very bad.
11/13/2013, 12:24
#4
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
my code was decompiled with FFDEC (JPEXS)
Softlink crashes if i open the code
11/13/2013, 12:36
#5
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
I know this problem. Why didn't you try the deobfuscate function in FFDEC? I think it's better than do it by your hand.
11/13/2013, 13:38
#6
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
the code that i have posted from file is still deobfuscated with FFDEC
dunno how to deobfuscate the code more with FFDEC
maybe you can tell me how, and post the deobfuscated code
files are at the first post
11/14/2013, 02:11
#7
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
i have found a way to get the loadingscreen.swf
but its the wrong way, cause it some some time to get
maybe somebody need it:
Attached Files
loadingscreen.rar
(1.32 MB, 65 views)
07/06/2016, 14:10
#8
elite*gold: 0
Join Date: Aug 2014
Posts: 1
Received Thanks: 0
Hello,
I found a way to easily get the
loadingscreen.swf , juste use this function to decompile the file :
Quote:
private function loadingscreenDecrypter(param1:ByteArray) : ByteArray
{
var _loc3_:* = 0;
var _loc4_:* = 0;
var _loc2_:uint = param1.length;
param1.position = 0;
var _loc5_:* = 57;
var _loc6_:int = 0;
while(_loc6_ < _loc2_)
{
//_loc5_ = uint(_loc5_ + 3); I think it's a decompilation error
_loc5_ = uint(uint(_loc5_ + 3) & 255);
_loc4_ = uint(_loc5_ & 4); // Var useless
_loc3_ = uint(param1[_loc6_]);
param1[_loc6_] = _loc3_ ^ _loc5_;
_loc6_++;
}
param1.position = 0;
return param1;
}
Enjoy
Similar Threads
Summonername im Loadingscreen auslesen
08/31/2013 - League of Legends - 7 Replies
Hey,
Ich suche jemand, der mir vll helfen kann den Pointer für die Summonernames aus dem momory im loadingscreen auszulesen. Das Problem was ich aktuell immer habe, ist das es Pointer mit * 04 oder so etwas ist, und da sich dan z.B. der EAX wert ändert auch wenn ich den Pointer habe kan ich den Wert komplett vergessen...
Ich hoffe ihr wisst was ich meine und könnt mir helfen :)
MfG Niccoo
Gold loadingscreen
02/15/2013 - League of Legends - 2 Replies
Hey mir ist gerade aufgefallen, dass ich auf einmal einen Goldenen Rahmen habe hatte vorher einen Silber Rahmen. Wurde was geändert??? War Pre- s3 1650Elo aber S2 1300
[Mod]Warrock LoadingScreen
08/21/2011 - WarRock Guides, Tutorials & Modifications - 14 Replies
Huhu hab mal kurz das "LoadingScreen" von Warrock verändert :)
Jajaja ich weiß nix bsonders aber wollte euch eine Freude machen :p
Dieses LoadingScreen ist mein erstes und ist gezielt für "Notgeile" gedacht :D
Es werden weiter LoadingScreens wie "Teletubbies, Detektiv Conan, Naruto, Wrong Turn" und was ich sonst noch mag, folgen :D
http://www7.pic-upload.de/16.08.11/k3ib6z2fogxw.p ng
Virustotal
Wo einfügen ?
[HowTo]LoadingScreen ... Paint.NET
10/18/2010 - WarRock Guides, Tutorials & Modifications - 21 Replies
Hi ... ich werde euch heute mal zeigen wie man ein eigenes lade bild in warrock macht:
erst mal suchen wir ein beliebiges bild (1024x1024), und kopieren es:
http://img510.imageshack.us/img510/8964/tutorialp ic1.png
jetzt öffnen wir das bild:
http://img185.imageshack.us/img185/9741/tutorialp ic2.png
jetzt fügen wir unser bild dort ein:
http://img89.imageshack.us/img89/6646/tutorialpic 3d.png
Sro crash on loadingscreen
05/10/2009 - Silkroad Online - 10 Replies
So yesterday eve my silkroad started crashing after at the first loading screen..
Any idea's/solutions?
All times are GMT +2. The time now is 12:22 .