hunk.code_window:                     logger.info(infoMsg)
                       continue
                   query = rootQuery.inband.query.replace("%s", db)
                   value = inject.getValue(query, blind=False)
                   if not isNoneValue(value):
                       kb.data.cachedTables[db] = arrayizeValue(value)
           if not kb.data.cachedTables and not conf.direct:
  
hunk.labels: keep keep keep keep replace replace keep keep keep keep keep
hunk.after_edit:                 for query in (rootQuery.inband.query, rootQuery.inband.query2):
                       query = query.replace("%s", db)
                       value = inject.getValue(query, blind=False)
                       if not isNoneValue(value):
                           break
  
hunk.file_path: plugins/dbms/mssqlserver/enumeration.py
hunk.type: replace
file: #!/usr/bin/env python
  
  """
  $Id$
  
  Copyright (c) 2006-2011 sqlmap developers (http://www.sqlmap.org/)
  See the file 'doc/COPYING' for copying permission
  """
  
  from lib.core.data import logger
  from lib.core.exception import sqlmapSyntaxException
  from plugins.generic.syntax import Syntax as GenericSyntax
  
  class Syntax(GenericSyntax):
      def __init__(self):
          GenericSyntax.__init__(self)
  
      @staticmethod
      def unescape(expression, quote=True):
          if quote:
              while True:
                  index = expression.find("'")
                  if index == -1:
                      break
  
                  firstIndex = index + 1
                  index = expression[firstIndex:].find("'")
  
                  if index == -1:
                      raise sqlmapSyntaxException, "Unenclosed ' in '%s'" % expression
  
                  lastIndex = firstIndex + index
                  old = "'%s'" % expression[firstIndex:lastIndex]
                  unescaped = ""
  
                  for i in xrange(firstIndex, lastIndex):
                      unescaped += "CHR(%d)" % (ord(expression[i]))
                      if i < lastIndex - 1:
                          unescaped += "||"
  
                  expression = expression.replace(old, unescaped)
          else:
              expression = "||".join("CHR(%d)" % ord(c) for c in expression)
  
          return expression
  
      @staticmethod
      def escape(expression):
          logMsg = "escaping %s" % expression
          logger.info(logMsg)
          while True:
              index = expression.find("CHR(")
              if index == -1:
                  break
  
              firstIndex = index
              index = expression[firstIndex:].find(")")
  
              if index == -1:
                  raise sqlmapSyntaxException, "Unenclosed ) in '%s'" % expression
  
              lastIndex = firstIndex + index + 1
              old = expression[firstIndex:lastIndex]
              oldUpper = old.upper()
              oldUpper = oldUpper.lstrip("CHR(").rstrip(")")
              oldUpper = oldUpper.split("||")
  
              escaped = "'%s'" % "".join(chr(int(char)) for char in oldUpper)
              expression = expression.replace(old, escaped)
  
          return expression
  