security/sandbox/win/src/target_services.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
     2 // Use of this source code is governed by a BSD-style license that can be
     3 // found in the LICENSE file.
     5 #ifndef SANDBOX_SRC_TARGET_SERVICES_H__
     6 #define SANDBOX_SRC_TARGET_SERVICES_H__
     8 #include "base/basictypes.h"
     9 #include "sandbox/win/src/sandbox.h"
    10 #include "sandbox/win/src/win_utils.h"
    12 namespace sandbox {
    14 class ProcessState {
    15  public:
    16   ProcessState() : process_state_(0) {}
    18   // Returns true if kernel32.dll has been loaded.
    19   bool IsKernel32Loaded();
    21   // Returns true if main has been called.
    22   bool InitCalled();
    24   // Returns true if LowerToken has been called.
    25   bool RevertedToSelf();
    27   // Set the current state.
    28   void SetKernel32Loaded();
    29   void SetInitCalled();
    30   void SetRevertedToSelf();
    32  public:
    33   int process_state_;
    34   DISALLOW_COPY_AND_ASSIGN(ProcessState);
    35 };
    37 // This class is an implementation of the  TargetServices.
    38 // Look in the documentation of sandbox::TargetServices for more info.
    39 // Do NOT add a destructor to this class without changing the implementation of
    40 // the factory method.
    41 class TargetServicesBase : public TargetServices {
    42  public:
    43   TargetServicesBase();
    45   // Public interface of TargetServices.
    46   virtual ResultCode Init();
    47   virtual void LowerToken();
    48   virtual ProcessState* GetState();
    49   virtual ResultCode DuplicateHandle(HANDLE source_handle,
    50                                      DWORD target_process_id,
    51                                      HANDLE* target_handle,
    52                                      DWORD desired_access,
    53                                      DWORD options);
    55   // Factory method.
    56   static TargetServicesBase* GetInstance();
    58   // Sends a simple IPC Message that has a well-known answer. Returns true
    59   // if the IPC was successful and false otherwise. There are 2 versions of
    60   // this test: 1 and 2. The first one send a simple message while the
    61   // second one send a message with an in/out param.
    62   bool TestIPCPing(int version);
    64  private:
    65   ProcessState process_state_;
    66   DISALLOW_COPY_AND_ASSIGN(TargetServicesBase);
    67 };
    69 }  // namespace sandbox
    71 #endif  // SANDBOX_SRC_TARGET_SERVICES_H__

mercurial