Interface INativeMethodItem

All Superinterfaces:
ICodeItem, ICodeMethod, INativeItem, INativeItemListenable

@Ser public interface INativeMethodItem extends INativeItem, ICodeMethod
A method item references an external or internal native routine. Internal routines have associated INativeMethodDataItem objects defining them.
  • Method Details

    • isAutoGeneratedPrototype

      boolean isAutoGeneratedPrototype()
      Determine if the native prototype was auto-generated. The value is irrelevant if getPrototype() returns null.
      Returns:
      true if the prototype was automatically generated
    • getPrototype

      IPrototypeItem getPrototype()
      Retrieve the method prototype, if one was set.
      Returns:
      the prototype or null (if unknown)
    • setPrototype

      void setPrototype(IPrototypeItem prototype)
      Set or update a prototype. Any wildcard prototype attached to the routine will be nullified.
      Parameters:
      prototype -
    • getData

      If the method is internal, retrieve the method's definition object.
      Returns:
      the method data object; null if the method is external
    • getMemoryAddress

      default Long getMemoryAddress()
      Convenience method to retrieve the physical address of the routine start, if a definition object is present.
      Returns:
      an address or null if this reference does not link to a definition object
    • getClassType

      IClassType getClassType()
      Description copied from interface: ICodeMethod
      Get the type of the class holding this method. This method will return null if the method is class-less (example, a native sub-routine not contained in any class).
      Specified by:
      getClassType in interface ICodeMethod
      Returns:
      the class type, null if unknown
    • getClassItem

      INativeClassItem getClassItem()
    • isVirtualMethod

      boolean isVirtualMethod()
    • getReturnType

      INativeType getReturnType()
      Description copied from interface: ICodeMethod
      Get the method's return type.
      Specified by:
      getReturnType in interface ICodeMethod
      Returns:
      the return type, null if unknown
    • getParameterTypes

      List<? extends INativeType> getParameterTypes()
      Description copied from interface: ICodeMethod
      Get the method's parameters list.
      Specified by:
      getParameterTypes in interface ICodeMethod
      Returns:
      the parameter types, null if unknown
    • getParameterNames

      List<String> getParameterNames()
      Retrieve a list of parameter names.
      Returns:
      a list, possibly empty (or containing less entries than the actual parameter count); never null
    • getParameterName

      String getParameterName(int index)
      Parameters:
      index -
      Returns:
    • setParameterNames

      void setParameterNames(Collection<String> names)
      Parameters:
      names -
    • setParameterName

      void setParameterName(int index, String name)
      Parameters:
      index -
      name -
    • getFunctionPointer

      IReferenceType getFunctionPointer()
    • getInstructions

      List<? extends IInstruction> getInstructions()
      Retrieve a list of instructions for this method. It is preferable to use getData() and INativeMethodDataItem.getCFG() instead.
      Specified by:
      getInstructions in interface ICodeMethod
      Returns:
      null if the method has no body; else, a list (possibly empty) of instructions
    • getNonReturning

      Boolean getNonReturning()
      Retrieve a hint specifying whether or not the method returns to its caller. Note that this information may be provided in prototype.
      Returns:
      null if not present or not computed
    • setNonReturning

      void setNonReturning(Boolean nonReturning)
      Specify whether the method returns to its caller upon completion. Note that this information may be provided in prototype.
      Parameters:
      nonReturning -
    • isPlaceholderMethod

      boolean isPlaceholderMethod()
      Returns:
    • isDetectedAsLibraryCode

      boolean isDetectedAsLibraryCode()
      Determine whether this method matched a well-known method signed by one of JEB's code signing system.
      Returns:
    • getFinalName

      String getFinalName()