Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("SWF DUMP TOOL - swf v8");
            Console.WriteLine("");
#if !DEBUG
            if (args.Length < 1)
            {
                Console.WriteLine("");
                Console.WriteLine("Need some swf file format help? Parser tools? Generators?");
                Console.WriteLine("Just give me a shout : )   [email protected]");
                Console.WriteLine("");
                Console.WriteLine("");
                Console.WriteLine("Usage: swfdump <filename>");
                return;
            }
#endif

            string fileName = (args.Length < 1) ? "test.swf" : args[0];
            if (File.Exists(fileName))
            {
                fileName = Path.GetFullPath(fileName);
                Directory.SetCurrentDirectory(Path.GetDirectoryName(fileName));
                FileStream   fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);

                string             name = Path.GetFileNameWithoutExtension(fileName);
                SwfReader          r    = new SwfReader(br.ReadBytes((int)fs.Length));
                SwfCompilationUnit scu  = new SwfCompilationUnit(r, name);
                if (scu.IsValid)
                {
                    StringWriter       sw = new StringWriter();
                    IndentedTextWriter w  = new IndentedTextWriter(sw);
//					scu.Dump(w);
//					Console.WriteLine(sw.ToString());

                    SwfToVex  s2v = new SwfToVex();
                    VexObject vo  = s2v.Convert(scu);

                    DumpTextObject(vo);
                    //VexTo2DPhysics.VexTo2DPhysics v2dp = new VexTo2DPhysics.VexTo2DPhysics();
                    //v2dp.Convert(vo, scu);

                    Console.WriteLine("");
                    Console.WriteLine("Need some swf file format help? [email protected]");
                    Console.WriteLine("");

                    //temp
                    MemoryStream ms        = new MemoryStream();
                    SwfWriter    swfWriter = new SwfWriter(ms);
                    scu.Header.IsCompressed = false;
                    scu.ToSwf(swfWriter);
                    byte[]     swfBytes = swfWriter.ToArray();
                    FileStream fsw      = new FileStream("dump.swf", FileMode.Create, FileAccess.Write);
                    fsw.Write(swfBytes, 0, swfBytes.Length);
                    fsw.Close();
                    ms.Close();

                    //Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Not a valid swf file: " + fileName);
                    Console.WriteLine("Usage: swfdump <filename>");
                }
            }
            else
            {
                Console.WriteLine(fileName + " does not exist.");
                Console.WriteLine("Usage: swfdump <filename>");
            }
        }
Ejemplo n.º 2
0
        public static AbcNamespace ReadAbcNamespace(this SwfReader reader)
        {
            var index = (int)reader.ReadUIntEncoded();

            return(reader.ABC.Namespaces[index]);
        }
Ejemplo n.º 3
0
        public static AbcMethod ReadAbcMethod(this SwfReader reader)
        {
            var index = (int)reader.ReadUIntEncoded();

            return(reader.ABC.Methods[index]);
        }
Ejemplo n.º 4
0
 public override void ReadTagData(SwfReader reader)
 {
     _symbols.Read(reader, SwfAssetFlags.Symbol);
 }
Ejemplo n.º 5
0
 public override void Read(SwfReader reader)
 {
     _matrix = reader.ReadSingle(20);
 }
Ejemplo n.º 6
0
 protected abstract void ReadBody(SwfReader reader);
Ejemplo n.º 7
0
 public override void ReadTagData(SwfReader reader)
 {
     Color = reader.ReadRGB();
 }
Ejemplo n.º 8
0
 public override void ReadBody(SwfReader reader)
 {
     Label = reader.ReadString();
 }
Ejemplo n.º 9
0
 public void Read(SwfReader reader)
 {
     while (ReadTag(reader))
     {
     }
 }
Ejemplo n.º 10
0
 public void Load(string path)
 {
     _path = path;
     using (var reader = new SwfReader(File.ReadAllBytes(path)))
         Read(reader);
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Instantiates abc file and reads it using given <see cref="SwfReader"/>.
 /// </summary>
 /// <param name="reader"><see cref="SwfReader"/> used to read the ABC file</param>
 public AbcFile(SwfReader reader) : this()
 {
     Read(reader);
 }
Ejemplo n.º 12
0
 public void Read(SwfReader reader)
 {
     Initializer = reader.ReadAbcMethod();
     _traits.Read(reader);
 }
Ejemplo n.º 13
0
 protected override void ReadBody(SwfReader reader)
 {
     ReadBody(reader, false);
 }
Ejemplo n.º 14
0
 public override void ReadTagData(SwfReader reader)
 {
     MaxRecursionDepth = reader.ReadUInt16();
     Timeout           = reader.ReadUInt16();
 }
Ejemplo n.º 15
0
 public override void Read(SwfReader reader)
 {
     BlurX  = reader.ReadFixed32();
     BlurY  = reader.ReadFixed32();
     Passes = reader.ReadUInt8();
 }
Ejemplo n.º 16
0
        public static object Read(AbcMethodBody body, SwfReader reader, OperandType type)
        {
            switch (type)
            {
            case OperandType.U30:
                return((int)reader.ReadUIntEncoded());

            case OperandType.S30:
                return(reader.ReadIntEncoded());

            case OperandType.U8:
                return(reader.ReadUInt8());

            case OperandType.U16:
                return(reader.ReadUInt16());

            case OperandType.U24:
                return(reader.ReadUInt24());

            case OperandType.U32:
                return(reader.ReadUInt32());

            case OperandType.S24:
            case OperandType.BranchTarget:
                return(reader.ReadInt24());

            case OperandType.ConstInt:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.IntPool[index]);
            }

            case OperandType.ConstUInt:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.UIntPool[index]);
            }

            case OperandType.ConstDouble:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.DoublePool[index]);
            }

            case OperandType.ConstString:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.StringPool[index]);
            }

            case OperandType.ConstMultiname:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.Multinames[index]);
            }

            case OperandType.ConstNamespace:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.Namespaces[index]);
            }

            case OperandType.MethodIndex:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.Methods[index]);
            }

            case OperandType.ClassIndex:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(reader.ABC.Classes[index]);
            }

            case OperandType.ExceptionIndex:
            {
                int index = (int)reader.ReadUIntEncoded();
                return(body.Exceptions[index]);
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Ejemplo n.º 17
0
 public override sealed void ReadTagData(SwfReader reader)
 {
     CharacterId = reader.ReadUInt16();
     ReadBody(reader);
 }
Ejemplo n.º 18
0
 public void Read(AbcMethodBody body, SwfReader reader)
 {
     Value = Read(body, reader, Type);
 }
Ejemplo n.º 19
0
 public override void ReadTagData(SwfReader reader)
 {
     _assets.Read(reader, SwfAssetFlags.Exported);
 }
Ejemplo n.º 20
0
 public override void ReadTagData(SwfReader reader)
 {
     CharId = reader.ReadUInt16();
     Depth  = reader.ReadUInt16();
 }
Ejemplo n.º 21
0
 public override void ReadTagData(SwfReader reader)
 {
     Data = reader.ReadAllBytes();
 }
Ejemplo n.º 22
0
        public virtual void Read(SwfReader reader)
        {
            int n = (int)reader.ReadUIntEncoded();

            Read(n, reader);
        }
Ejemplo n.º 23
0
 public override void ReadTagData(SwfReader reader)
 {
     Id       = reader.ReadUInt16();
     Splitter = reader.ReadRectF();
 }
Ejemplo n.º 24
0
 public void Read(SwfReader reader)
 {
     SlotId = (int)reader.ReadUIntEncoded(); //slot_id
     Method = reader.ReadAbcMethod();        //function
 }
Ejemplo n.º 25
0
        public static AbcConst <string> ReadAbcString(this SwfReader reader)
        {
            var index = (int)reader.ReadUIntEncoded();

            return(reader.ABC.StringPool[index]);
        }
Ejemplo n.º 26
0
 public void Read(SwfReader reader)
 {
     SlotId = (int)reader.ReadUIntEncoded(); //disp_id
     Method = reader.ReadAbcMethod();        //method
 }
Ejemplo n.º 27
0
        public static AbcMultiname ReadMultiname(this SwfReader reader)
        {
            var index = (int)reader.ReadUIntEncoded();

            return(reader.ABC.Multinames[index]);
        }
Ejemplo n.º 28
0
 public override void ReadTagData(SwfReader reader)
 {
     Label = reader.ReadString();
 }
Ejemplo n.º 29
0
 public override void ReadTagData(SwfReader reader)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 30
0
 public override void ReadBody(SwfReader reader)
 {
 }