SecurityChecks

SWF File Header checks

  • "Invalid Signature: <first 3 bytes converted to ASCII characters> ": Checks the first 3 bytes of a swf file indicate if it is a compressed (CWS) or uncompressed (FWS) SWF file. Blitzableiter.SWF.BaseFile.ReadHeader()
  • "Invalid / unknown version <value of byte 4> ": Checks byte 4 for the Version if it is valid.
    Blitzableiter.SWF.BaseFile.ReadHeader()
  • "Stream length length of the file shorter than header declared length <length entry in header> ": Checks if the real file length matches the file length given in the header of the SWF file.
    Blitzableiter.SWF.FWSFile.Read()

SWF File tag checks

  • "Tag list incomplete, does not end with END tag", "Trailing garbage after END tag detected. Position <position of the END tag> " : All SWF files have to end with an END tag. If a file does not follow the rule this error will be raised.
    Blitzableiter.SWF.FWSFile.Read()
  • "Tag # <tag number> is outside (0x <found offset> ) the declared SWF content range 0x <content range> ","Tag # <tag number> ends outside (0x <found offset> ) the declared SWF content range 0x_<content range>_": All SWF files have to end with an END tag. If a file does not follow the rule this error will be raised. There can not be data behind an END tag.
    Blitzableiter.SWF.FWSFile.Read()
  • "Tag type <found tag ID> not known/documented": Usage of a not known/documented tag in the SWF file.
    Blitzableiter.SWF.FWSFile.Read()
  • "Tag with invalid Bytecode" : The tag code is not documented or not used.
    Blitzableiter.SWF.TagHandler.AbstractTagCodeHandler.ParseCode()
  • "DoAction code length exceeds Tag length" : DoAction code length have to be as long as the length provided in the Action Record Header.
    Blitzableiter.SWF.TagHandler.DoAction.Parse()
  • "DoAction code length <overall code length> less than Tag length <tag length> ") :DoAction code length have to be as long as the length provided in the Action Record Header.
    Blitzableiter.SWF.TagHandler.DoAction.Parse()
  • "DoInitAction code length exceeds Tag length" : DoInitAction code length have to be as long as the length provided in the Action Record Header.
    Blitzableiter.SWF.TagHandler.DoInitAction.Parse()
  • "FileAttributes Tag too short." : FileAttributes tags (type 69) are always 4 Bytes long. If it is shorter this error will occur.
    Blitzableiter.SWF.TagHandler.FileAttributes.Parse()
  • "Object is neither a creation (PlaceFlagHasCharacter) nor an update (PlaceFlagMove)." : Not existing Objects can not be manipulated. The PlaceFlagHasCharacter or the PlaceFlagMove bit has to be set.
    Blitzableiter.SWF.TagHandler.PlaceObject2.ParsePlaceObject2Flags()
  • PlaceFlagHasClipActions in SWF Version <version number> " : PlaceFlagHasClipActions is available in version SWF 5 or higher. If the version is lower than 5 this error will occur.
    Blitzableiter.SWF.TagHandler.PlaceObject2.ParsePlaceObject2Flags()
  • "ClipActions in PlaceObject2 for SWF Version < 5" : Version before SWF 5 has no clip actions.
    Blitzableiter.SWF.TagHandler.PlaceObject2.ParsePlaceObject2Data()

SWF File button tags checks

  • "CondKeyPress != 0 with SWF version <the version of the flash file> " : KeyCodes are only supported by SWF version 4 or later.
    Blitzableiter.SWF.ButtonCondAction.Parse()
  • "Illegal CondKeyPress <the provided key code> " : The following key codes are provided: 1 - 19 and 32 - 126. If the key code is not in this range this error will occur.
    Blitzableiter.SWF.ButtonCondAction.Parse()
  • "ButtonRecord reserved bits used" : The first two bits of a button record are reserved and have to be zero. If not, this exception will be thrown.
    Blitzableiterpre.Blitzableiter.SWF.ButtonRecord.Parse()
  • "ButtonRecord2 BlendMode > 14" : Blend mode values ranging from 0 to 14 are defined. Values from 15 to 255 are reserved and will raise an error.
    Blitzableiterpre.Blitzableiter.SWF.ButtonRecord2.Parse()
  • "DefineButton with ButtonHasBlendMode requires SWF 8 (file: <version of the SWF file> )" : ButtonHasBlendMode is not available before SWF version 8.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton.Parse()
  • "DefineButton with ButtonHasFilterList requires SWF 8 (file: <version of the SWF file> )" : ButtonHasBlendMode is not available before SWF version 8.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton.Parse()
  • "DefineButton2 uses reserved bits" : DefineButton2 uses 7 reserved bits which have to be 0.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton2.Parse()
  • "ActionOffset was 0x <the action offset> at stream position 0x <old stream position> but stream is now at 0x <new stream position> ; : Occurs if the old stream position + offset is not equal to the new stream position.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton2.Parse()
  • "DefineButton2 contains invalid ActionCode" : The ActionCode in the Actio Record Header is not used or not documented.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton2.Parse()
  • "DefineButton2 has not fully consumed stream ( <stream position> of <stream length> )" : Occurs if the stream does not point to last red tag + tag length for some reason.
    Blitzableiterpre.Blitzableiter.SWF.TagHandler.DefineButton2.Parse()

SWF File movie clip checks

  • "Reserved 16Bit Field in CLIPACTION used" : There have been set reserved bits.
    Blitzableiter.ClipActions.Parse()
  • "ClipActionRecord length=0 but KeyCode indicated by ClipEventKeyPress" : ClipActionRecord length have to be greater than 0 if a ClipEventKeyPress was specified.
    Blitzableiter.ClipActionRecord.Parse()
  • "ClipActionRecord code reader consumed more than length indicated ( <indicated length> consumed <real length> length)" : Occurs if the stream does not point to last red tag + tag length for some reason.
    Blitzableiter.ClipActionRecord.Parse()
  • "ClipActionRecord parsing error" : Occurs if the file could not be parsed. Maybe it is damaged.
    Blitzableiter.ClipActionRecord.Parse()
  • "Reserved flags (following ClipEventData) used in ClipEventFlags" : Reserved bits are used which have to be 0.
    Blitzableiter.SWF.ClipEventFlags.Parse()
  • "ClipEventConstruct in SWF with Version < 7" : ClipEventConstruct is avaible for SWF version 8 or higher.
    Blitzableiter.SWF.ClipEventFlags.Parse()
  • "Reserved flags (following ClipEventDragOut) used in ClipEventFlags": Reserved bits are used which have to be 0.
    Blitzableiter.SWF.ClipEventFlags.Parse()
  • "Reserved flags (following ClipEventLoad) used in ClipEventFlags": Reserved bits are used which have to be 0.
    Blitzableiter.SWF.ClipEventFlags.Parse()

SWF File compression checks

  • "Invalid compressed content, Inflate() failed": For some reason Inflate returned 0. However. The file could not be decompressed.
    Blitzableiter.SWF.CWSFile.Uncompress()

SWF File filter checks

  • "BevelFilter with CompositeSource false" : The CompositeSource flag always has to be 1.
    Blitzableiter.SWF.Filter.BevelFilter.Parse()
  • "BlurFilter uses reserved bits" : Reserved bits are used which have to be 0.
    Blitzableiter.SWF.Filter.BlurFilter.Parse()
  • "ConvolutionFilter uses reserved bits" : Reserved bits are used which have to be 0.
    Blitzableiter.SWF.Filter.ConvolutionFilter.Parse()
  • "GradientGlowFilter with CompositeSource false" : The CompositeSource flag always has to be 1.
    Blitzableiter.SWF.Filter.GradientGlowFilter.Parse()
  • "Illegal Filter Type ID <the provided filter type ID> " : The is not a number between 0 and 7.
    Blitzableiter.SWF.Filter.FilterList.Parse()

Also available in: HTML TXT