Index: sandbox/win/src/target_interceptions.cc |
diff --git a/sandbox/win/src/target_interceptions.cc b/sandbox/win/src/target_interceptions.cc |
deleted file mode 100644 |
index e6b0dcf780c53d071b7f13209cbf38b4abbd807b..0000000000000000000000000000000000000000 |
--- a/sandbox/win/src/target_interceptions.cc |
+++ /dev/null |
@@ -1,100 +0,0 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "sandbox/win/src/target_interceptions.h" |
- |
-#include "sandbox/win/src/interception_agent.h" |
-#include "sandbox/win/src/sandbox_factory.h" |
-#include "sandbox/win/src/sandbox_nt_util.h" |
-#include "sandbox/win/src/target_services.h" |
- |
-namespace sandbox { |
- |
-SANDBOX_INTERCEPT NtExports g_nt; |
- |
-// Hooks NtMapViewOfSection to detect the load of DLLs. If hot patching is |
-// required for this dll, this functions patches it. |
-NTSTATUS WINAPI TargetNtMapViewOfSection( |
- NtMapViewOfSectionFunction orig_MapViewOfSection, HANDLE section, |
- HANDLE process, PVOID *base, ULONG_PTR zero_bits, SIZE_T commit_size, |
- PLARGE_INTEGER offset, PSIZE_T view_size, SECTION_INHERIT inherit, |
- ULONG allocation_type, ULONG protect) { |
- NTSTATUS ret = orig_MapViewOfSection(section, process, base, zero_bits, |
- commit_size, offset, view_size, inherit, |
- allocation_type, protect); |
- |
- static int s_load_count = 0; |
- if (1 == s_load_count) { |
- SandboxFactory::GetTargetServices()->GetState()->SetKernel32Loaded(); |
- s_load_count = 2; |
- } |
- |
- do { |
- if (!NT_SUCCESS(ret)) |
- break; |
- |
- if (!InitHeap()) |
- break; |
- |
- if (!IsSameProcess(process)) |
- break; |
- |
- if (!IsValidImageSection(section, base, offset, view_size)) |
- break; |
- |
- UINT image_flags; |
- UNICODE_STRING* module_name = |
- GetImageInfoFromModule(reinterpret_cast<HMODULE>(*base), &image_flags); |
- UNICODE_STRING* file_name = GetBackingFilePath(*base); |
- |
- if ((!module_name) && (image_flags & MODULE_HAS_CODE)) { |
- // If the module has no exports we retrieve the module name from the |
- // full path of the mapped section. |
- module_name = ExtractModuleName(file_name); |
- } |
- |
- InterceptionAgent* agent = InterceptionAgent::GetInterceptionAgent(); |
- |
- if (agent) { |
- if (!agent->OnDllLoad(file_name, module_name, *base)) { |
- // Interception agent is demanding to un-map the module. |
- g_nt.UnmapViewOfSection(process, *base); |
- ret = STATUS_UNSUCCESSFUL; |
- } |
- } |
- |
- if (module_name) |
- operator delete(module_name, NT_ALLOC); |
- |
- if (file_name) |
- operator delete(file_name, NT_ALLOC); |
- |
- } while (false); |
- |
- if (!s_load_count) |
- s_load_count = 1; |
- |
- return ret; |
-} |
- |
-NTSTATUS WINAPI TargetNtUnmapViewOfSection( |
- NtUnmapViewOfSectionFunction orig_UnmapViewOfSection, HANDLE process, |
- PVOID base) { |
- NTSTATUS ret = orig_UnmapViewOfSection(process, base); |
- |
- if (!NT_SUCCESS(ret)) |
- return ret; |
- |
- if (!IsSameProcess(process)) |
- return ret; |
- |
- InterceptionAgent* agent = InterceptionAgent::GetInterceptionAgent(); |
- |
- if (agent) |
- agent->OnDllUnload(base); |
- |
- return ret; |
-} |
- |
-} // namespace sandbox |