mitmproxy/libmproxy/contrib/jsbeautifier/unpackers/README.specs.mkd

1017 B

UNPACKERS SPECIFICATIONS

Nothing very difficult: an unpacker is a submodule placed in the directory where this file was found. Each unpacker must define three symbols:

  • PRIORITY : integer number expressing the priority in applying this unpacker. Lower number means higher priority. Makes sense only if a source file has been packed with more than one packer.
  • detect(source) : returns True if source is packed, otherwise, False.
  • unpack(source) : takes a source string and unpacks it. Must always return valid JavaScript. That is to say, your code should look like:
if detect(source):
    return do_your_fancy_things_with(source)
else:
    return source

You can safely define any other symbol in your module, as it will be ignored.

__init__ code will automatically load new unpackers, without any further step to be accomplished. Simply drop it in this directory.