code: def get_data(self, start=None, length=None):
          
  
          PointerToRawData_adj = self.pe.adjust_FileAlignment( self.PointerToRawData,
              self.pe.OPTIONAL_HEADER.FileAlignment )
          VirtualAddress_adj = self.pe.adjust_SectionAlignment( self.VirtualAddress,
              self.pe.OPTIONAL_HEADER.SectionAlignment, self.pe.OPTIONAL_HEADER.FileAlignment )
  
          if start is None:
              offset = PointerToRawData_adj
          else:
              offset = ( start - VirtualAddress_adj ) + PointerToRawData_adj
  
          if length is not None:
              end = offset + length
          else:
              end = offset + self.SizeOfRawData
          # PointerToRawData is not adjusted here as we might want to read any possible extra bytes
          # that might get cut off by aligning the start (and hence cutting something off the end)
          #
          if end > self.PointerToRawData + self.SizeOfRawData:
              end = self.PointerToRawData + self.SizeOfRawData
          return self.pe.__data__[offset:end]
docs: Get data chunk from a section.
  
          Allows to query data from the section by passing the
          addresses where the PE file would be loaded by default.
          It is then possible to retrieve code and data by their real
          addresses as they would be if loaded.
  
          Returns bytes() under Python 3.x and set() under Python 2.7