def GenerateUploadRequest( self, offset: int, file_size: int, blob: rdf_crypto.SignedBlob ) -> Tuple[rdf_structs.RDFProtoStruct, Type[server_stubs.ClientActionStub]]: request = rdf_client_action.ExecuteBinaryRequest( executable=blob, offset=offset, write_path=self.state.write_path, more_data=(offset + len(blob.data) < file_size), use_client_env=False) return request, server_stubs.UpdateAgent
def GenerateUploadRequest(self, offset: int, file_size: int, blob: rdf_crypto.SignedBlob): # RecursiveBlobUploadMixin expected this function to be overridden. request = rdf_client_action.ExecuteBinaryRequest( executable=blob, args=shlex.split(self.args.command_line), offset=offset, write_path=self.state.write_path, use_client_env=False, more_data=(offset + len(blob.data) < file_size)) return request, server_stubs.ExecuteBinaryCommand
def testExecuteBinary(self): """Test the basic ExecuteBinaryCommand action.""" signed_blob = rdf_crypto.SignedBlob() signed_blob.Sign(open("/bin/ls", "rb").read(), self.signing_key) request = rdf_client_action.ExecuteBinaryRequest( executable=signed_blob, args=[__file__], write_path="ablob") result = self.RunAction(standard.ExecuteBinaryCommand, request)[0] self.assertTrue(result.time_used > 0) self.assertTrue(__file__ in result.stdout)
def testExecuteBinary(self): """Test the basic ExecuteBinaryCommand action.""" signed_blob = rdf_crypto.SignedBlob() signed_blob.Sign(open("/bin/ls", "rb").read(), self.signing_key) filepath = __file__.encode(sys.getfilesystemencoding()) request = rdf_client_action.ExecuteBinaryRequest( executable=signed_blob, args=[filepath], write_path="ablob") result = self.RunAction(standard.ExecuteBinaryCommand, request)[0] self.assertGreater(result.time_used, 0) self.assertIn(filepath, result.stdout)
def testExecuteBinary(self): """Test the basic ExecuteBinaryCommand action.""" if platform.system() == "Windows": cmd, args = r"C:\Windows\System32\cmd.exe", ["/C", "echo", "foobar"] else: cmd, args = "/bin/echo", ["foobar"] signed_blob = rdf_crypto.SignedBlob() signed_blob.Sign(open(cmd, "rb").read(), self.signing_key) request = rdf_client_action.ExecuteBinaryRequest( executable=signed_blob, args=args, write_path="ablob") result = self.RunAction(standard.ExecuteBinaryCommand, request)[0] if platform.system() != "Windows": # Windows time resolution is too coarse. self.assertGreater(result.time_used, 0) self.assertEqual("foobar{}".format(os.linesep).encode("utf-8"), result.stdout)