text: from lib.common import helpers
  
  class Module:
  
      def __init__(self, mainMenu, params=[]):
  
          self.info = {
              'Name': 'SID-to-User',
  
              'Author': ['@harmj0y'],
  
              'Description': ("Converts a specified domain sid to a user."),
  
              'Background' : False,
  
              'OutputExtension' : None,
              
              'NeedsAdmin' : False,
  
              'OpsecSafe' : True,
              
              'Language' : 'powershell',
  
              'MinLanguageVersion' : '2',
              
              'Comments': []
          }
  
          # any options needed by the module, settable during runtime
          self.options = {
              # format:
              #   value_name : {description, required, default_value}
              'Agent' : {
                  'Description'   :   'Agent to run module on.',
                  'Required'      :   True,
                  'Value'         :   ''
              },
              'SID' : {
                  'Description'   :   'Domain SID to translate.',
                  'Required'      :   True,
                  'Value'         :   ''
              }
          }
  
          # save off a copy of the mainMenu object to access external functionality
          #   like listeners/agent handlers/etc.
          self.mainMenu = mainMenu
          
          for param in params:
              # parameter format is [Name, Value]
              option, value = param
              if option in self.options:
                  self.options[option]['Value'] = value
  
  
      def generate(self, obfuscate=False, obfuscationCommand=""):
          
          script = "(New-Object System.Security.Principal.SecurityIdentifier(\"%s\")).Translate( [System.Security.Principal.NTAccount]).Value" %(self.options['SID']['Value'])
          if obfuscate:
              script = helpers.obfuscate(self.mainMenu.installPath, psScript=script, obfuscationCommand=obfuscationCommand)
          return script
  