Ejemplo n.º 1
0
  def StoreMBR(self, responses):
    """This method stores the MBR."""

    if not responses.success:
      msg = "Could not retrieve MBR: %s" % responses.status
      self.Log(msg)
      raise flow.FlowError(msg)

    response = responses.First()

    self.state.buffers.append(response.data)
    self.state.bytes_downloaded += len(response.data)

    if self.state.bytes_downloaded >= self.args.length:
      mbr_data = "".join(self.state.buffers)
      self.state.buffers = None

      mbr = aff4.FACTORY.Create(
          self.client_id.Add("mbr"),
          aff4_grr.VFSFile,
          mode="w",
          token=self.token)
      mbr.write(mbr_data)
      mbr.Close()
      self.Log("Successfully stored the MBR (%d bytes)." % len(mbr_data))
      self.SendReply(rdfvalue.RDFBytes(mbr_data))
Ejemplo n.º 2
0
 def Done(self, responses):
   response = responses.First()
   if not responses.success:
     raise flow.FlowError("Execute Python hack failed: %s" % responses.status)
   if response:
     result = utils.SmartStr(response.return_val)
     # Send reply with full data, but only log the first 200 bytes.
     str_result = result[0:200]
     if len(result) >= 200:
       str_result += "...[truncated]"
     self.Log("Result: %s" % str_result)
     self.SendReply(rdfvalue.RDFBytes(utils.SmartStr(response.return_val)))
Ejemplo n.º 3
0
  def StoreMBR(self, responses):
    """This method stores the MBR."""

    if not responses.success:
      msg = "Could not retrieve MBR: %s" % responses.status
      self.Log(msg)
      raise flow.FlowError(msg)

    response = responses.First()

    mbr = aff4.FACTORY.Create(
        self.client_id.Add("mbr"), aff4_grr.VFSFile, mode="w", token=self.token)
    mbr.write(response.data)
    mbr.Close()
    self.Log("Successfully stored the MBR (%d bytes)." % len(response.data))
    self.SendReply(rdfvalue.RDFBytes(response.data))
Ejemplo n.º 4
0
 def GenerateSample(self, number=0):
     return rdfvalue.RDFBytes("\x00hello%s\x01" % number)