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>"); } }
public static AbcNamespace ReadAbcNamespace(this SwfReader reader) { var index = (int)reader.ReadUIntEncoded(); return(reader.ABC.Namespaces[index]); }
public static AbcMethod ReadAbcMethod(this SwfReader reader) { var index = (int)reader.ReadUIntEncoded(); return(reader.ABC.Methods[index]); }
public override void ReadTagData(SwfReader reader) { _symbols.Read(reader, SwfAssetFlags.Symbol); }
public override void Read(SwfReader reader) { _matrix = reader.ReadSingle(20); }
protected abstract void ReadBody(SwfReader reader);
public override void ReadTagData(SwfReader reader) { Color = reader.ReadRGB(); }
public override void ReadBody(SwfReader reader) { Label = reader.ReadString(); }
public void Read(SwfReader reader) { while (ReadTag(reader)) { } }
public void Load(string path) { _path = path; using (var reader = new SwfReader(File.ReadAllBytes(path))) Read(reader); }
/// <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); }
public void Read(SwfReader reader) { Initializer = reader.ReadAbcMethod(); _traits.Read(reader); }
protected override void ReadBody(SwfReader reader) { ReadBody(reader, false); }
public override void ReadTagData(SwfReader reader) { MaxRecursionDepth = reader.ReadUInt16(); Timeout = reader.ReadUInt16(); }
public override void Read(SwfReader reader) { BlurX = reader.ReadFixed32(); BlurY = reader.ReadFixed32(); Passes = reader.ReadUInt8(); }
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(); } }
public override sealed void ReadTagData(SwfReader reader) { CharacterId = reader.ReadUInt16(); ReadBody(reader); }
public void Read(AbcMethodBody body, SwfReader reader) { Value = Read(body, reader, Type); }
public override void ReadTagData(SwfReader reader) { _assets.Read(reader, SwfAssetFlags.Exported); }
public override void ReadTagData(SwfReader reader) { CharId = reader.ReadUInt16(); Depth = reader.ReadUInt16(); }
public override void ReadTagData(SwfReader reader) { Data = reader.ReadAllBytes(); }
public virtual void Read(SwfReader reader) { int n = (int)reader.ReadUIntEncoded(); Read(n, reader); }
public override void ReadTagData(SwfReader reader) { Id = reader.ReadUInt16(); Splitter = reader.ReadRectF(); }
public void Read(SwfReader reader) { SlotId = (int)reader.ReadUIntEncoded(); //slot_id Method = reader.ReadAbcMethod(); //function }
public static AbcConst <string> ReadAbcString(this SwfReader reader) { var index = (int)reader.ReadUIntEncoded(); return(reader.ABC.StringPool[index]); }
public void Read(SwfReader reader) { SlotId = (int)reader.ReadUIntEncoded(); //disp_id Method = reader.ReadAbcMethod(); //method }
public static AbcMultiname ReadMultiname(this SwfReader reader) { var index = (int)reader.ReadUIntEncoded(); return(reader.ABC.Multinames[index]); }
public override void ReadTagData(SwfReader reader) { Label = reader.ReadString(); }
public override void ReadTagData(SwfReader reader) { throw new NotImplementedException(); }
public override void ReadBody(SwfReader reader) { }