Index: chrome_elf/blacklist/blacklist_interceptions.cc |
diff --git a/chrome_elf/blacklist/blacklist_interceptions.cc b/chrome_elf/blacklist/blacklist_interceptions.cc |
index d0f64ea3721c0da47c368529ef6c53d254f12b60..236e5f6d3846b71d5c3b8075dd315b4c8c6d1638 100644 |
--- a/chrome_elf/blacklist/blacklist_interceptions.cc |
+++ b/chrome_elf/blacklist/blacklist_interceptions.cc |
@@ -169,6 +169,12 @@ bool IsSameAsCurrentProcess(HANDLE process) { |
} // namespace |
namespace blacklist { |
+#if defined(_WIN64) |
+// Allocate storage for the pointer to the old NtMapViewOfSectionFunction. |
+#pragma section(".oldntmap",write,read) |
+__declspec(allocate(".oldntmap")) |
+NtMapViewOfSectionFunction g_nt_map_view_of_section_func = NULL; |
+#endif |
bool InitializeInterceptImports() { |
g_nt_query_section_func = reinterpret_cast<NtQuerySectionFunction>( |
@@ -229,4 +235,13 @@ SANDBOX_INTERCEPT NTSTATUS WINAPI BlNtMapViewOfSection( |
return ret; |
} |
+NTSTATUS WINAPI BlNtMapViewOfSection64( |
+ 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) { |
+ return BlNtMapViewOfSection(g_nt_map_view_of_section_func, section, process, |
+ base, zero_bits, commit_size, offset, view_size, |
+ inherit, allocation_type, protect); |
+} |
+ |
} // namespace blacklist |