Class GhidraScriptProvider

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      int compareTo​(GhidraScriptProvider that)  
      abstract void createNewScript​(ResourceFile newScript, java.lang.String category)
      Creates a new script using the specified file.
      boolean deleteScript​(ResourceFile scriptSource)
      Deletes the script file and unloads the script from the script manager.
      boolean equals​(java.lang.Object obj)  
      protected java.lang.String fixupName​(java.lang.String scriptName)
      Deprecated.
      java.util.regex.Pattern getBlockCommentEnd()
      Returns a Pattern that matches block comment closings.
      java.util.regex.Pattern getBlockCommentStart()
      Returns a Pattern that matches block comment openings.
      protected java.lang.String getCertificationBodyPrefix()
      Return the prefix for each certification header body line if this file is subject to certification.
      protected java.lang.String getCertifyHeaderEnd()
      Return the end of certification header line if this file type is subject to certification.
      protected java.lang.String getCertifyHeaderStart()
      Return the start of certification header line if this file type is subject to certification.
      abstract java.lang.String getCommentCharacter()
      Returns the comment character.
      abstract java.lang.String getDescription()
      Returns a description for this type of script.
      abstract java.lang.String getExtension()
      Returns the file extension for this type of script.
      abstract GhidraScript getScriptInstance​(ResourceFile sourceFile, java.io.PrintWriter writer)
      Returns a GhidraScript instance for the specified source file.
      int hashCode()  
      java.lang.String toString()  
      protected void writeBody​(java.io.PrintWriter writer)
      Writes the script body template.
      protected void writeHeader​(java.io.PrintWriter writer, java.lang.String category)
      Writes the script header.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • GhidraScriptProvider

        public GhidraScriptProvider()
    • Method Detail

      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • deleteScript

        public boolean deleteScript​(ResourceFile scriptSource)
        Deletes the script file and unloads the script from the script manager.
        Parameters:
        scriptSource - the script source file
        Returns:
        true if the script was completely deleted and cleaned up
      • getDescription

        public abstract java.lang.String getDescription()
        Returns a description for this type of script.
        Returns:
        a description for this type of script
      • getExtension

        public abstract java.lang.String getExtension()
        Returns the file extension for this type of script. For example, ".java" or ".py".
        Returns:
        the file extension for this type of script
      • getScriptInstance

        public abstract GhidraScript getScriptInstance​(ResourceFile sourceFile,
                                                       java.io.PrintWriter writer)
                                                throws java.lang.ClassNotFoundException,
                                                       java.lang.InstantiationException,
                                                       java.lang.IllegalAccessException
        Returns a GhidraScript instance for the specified source file.
        Parameters:
        sourceFile - the source file
        writer - the print writer to write warning/error messages
        Returns:
        a GhidraScript instance for the specified source file
        Throws:
        java.lang.ClassNotFoundException - if the script class cannot be found
        java.lang.InstantiationException - if the construction of the script fails for some reason
        java.lang.IllegalAccessException - if the class constructor is not accessible
      • createNewScript

        public abstract void createNewScript​(ResourceFile newScript,
                                             java.lang.String category)
                                      throws java.io.IOException
        Creates a new script using the specified file.
        Parameters:
        newScript - the new script file
        category - the script category
        Throws:
        java.io.IOException - if an error occurs writing the file
      • getBlockCommentStart

        public java.util.regex.Pattern getBlockCommentStart()
        Returns a Pattern that matches block comment openings. If block comments are not supported by this provider, then this returns null.
        Returns:
        the Pattern for block comment openings, null if block comments are not supported
      • getBlockCommentEnd

        public java.util.regex.Pattern getBlockCommentEnd()
        Returns a Pattern that matches block comment closings. If block comments are not supported by this provider, then this returns null.
        Returns:
        the Pattern for block comment closings, null if block comments are not supported
      • getCommentCharacter

        public abstract java.lang.String getCommentCharacter()
        Returns the comment character. For example, "//" or "#".
        Returns:
        the comment character
      • writeHeader

        protected void writeHeader​(java.io.PrintWriter writer,
                                   java.lang.String category)
        Writes the script header. Include a place holder for each meta-data item.
        Parameters:
        writer - the print writer
        category - the default category
      • writeBody

        protected void writeBody​(java.io.PrintWriter writer)
        Writes the script body template.
        Parameters:
        writer - the print writer
      • fixupName

        @Deprecated
        protected java.lang.String fixupName​(java.lang.String scriptName)
        Deprecated.
        Fixup a script name for searching in script directories.

        This method is part of a poorly specified behavior that is due for future amendment, see GhidraScriptUtil.fixupName(String).

        Parameters:
        scriptName - the name of the script, must end with this provider's extension
        Returns:
        a (relative) file path to the corresponding script
      • getCertifyHeaderStart

        protected java.lang.String getCertifyHeaderStart()
        Return the start of certification header line if this file type is subject to certification.
        Returns:
        start of certification header or null if not supported
      • getCertificationBodyPrefix

        protected java.lang.String getCertificationBodyPrefix()
        Return the prefix for each certification header body line if this file is subject to certification.
        Returns:
        certification header body prefix or null if not supported
      • getCertifyHeaderEnd

        protected java.lang.String getCertifyHeaderEnd()
        Return the end of certification header line if this file type is subject to certification.
        Returns:
        end of certification header or null if not supported