PostHelpI cant figure nilly's client out

Posts 15 of 5 · Page 1 of 1
I cant figure nilly's client out
I geuss im just not seeing how you did this nilly :/ but i'd love to use these hacks :3
if anyone could tell me how to take apart the client that'd be great. nilly is just too good @nilly i cant figure it out :\
I dont know how to decompile an swf in an swf :'(
Same here... I didnt tried too hard.. :3
From what i've undersand, nilly's client work in 2 time :

Load swf from rotmg website and inject his script from a binary

I'm not sure but the main swf is like a "container"


Here is the bin i extracted :

https://www.virustotal.com/fr/file/3...is/1372069339/



And the scripts used :


 
GameClient.as
Code:
package 
{
   import flash.display.MovieClip;
   import flash.utils.ByteArray;
   import flash.display.Loader;
   import flash.events.Event;
   import flash.display.LoaderInfo;
   import flash.system.LoaderContext;


   public class GameClient extends MovieClip
   {
      public function GameClient() {
         var _loc2_:LoaderContext = new LoaderContext();
         _loc2_.allowCodeImport=true;
         super();
         var _loc1_:ByteArray = new Rotmg();
         if(_loc1_.length!=0)
         {
            readSwf(_loc1_,"www.realmofthemadgod.com");
            swfLoader=new Loader();
            swfLoader.contentLoaderInfo.addEventListener("complete",setup);
            swfLoader.loadBytes(_loc1_,_loc2_);
         }
         return;
      }

      private static function readSwf(param1:ByteArray, param2:String) : void {
         var _loc4_:* = NaN;
         var _loc3_:* = 23;
         _loc4_=0.0;
         while(_loc4_<param1.length)
         {
            param1[_loc4_]=param1[_loc4_]^param2.charCodeAt(_loc3_);
            _loc3_--;
            if(_loc3_<0)
            {
               _loc3_=23;
            }
            _loc4_++;
         }
         return;
      }

      private var swfLoader:Loader;

      public var codeObject:Object;

      private function setup(param1:Event) : void {
         codeObject=(param1.target as LoaderInfo).content;
         addChild(param1.target.content);
         return;
      }
   }

}


 
ROTMG.as
Code:
package 
{
   import flash.utils.ByteArray;


   public class Rotmg extends ByteArray
   {
      public function Rotmg() {
         super();
         return;
      }

      public function SWFAsset() : void {
         return;
      }
   }

}


 
rotmg_lite.as
Code:
package 
{
   import flash.display.Sprite;
   import flash.events.Event;


   public class rotmg_lite extends Sprite
   {
      public function rotmg_lite() {
         super();
         client=new GameClient();
         addChild(client);
         stage.addEventListener("resize",onResize);
         return;
      }

      private var client:GameClient;

      private function onResize(param1:Event) : void {
         if(!(client==null)&&!(client.codeObject==null)&&"onStageResize" in client.codeObject)
         {
            client.codeObject.onStageResize(null);
         }
         return;
      }
   }

}
1_mpgh.net.zip3.2 MB · 11 downloads Clean
@Scellow, the client has everything inside it (the rotmg game client). It doesn't download it from the rotmg website.
Posts 15 of 5 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

Need help?