| Index: sandbox/src/resolver_64.cc
|
| diff --git a/sandbox/src/resolver_64.cc b/sandbox/src/resolver_64.cc
|
| deleted file mode 100644
|
| index 96d039b9b5bfa6b00f3bb219bc22a6ae12963496..0000000000000000000000000000000000000000
|
| --- a/sandbox/src/resolver_64.cc
|
| +++ /dev/null
|
| @@ -1,69 +0,0 @@
|
| -// Copyright (c) 2006-2010 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/src/resolver.h"
|
| -
|
| -#include "sandbox/src/sandbox_nt_util.h"
|
| -
|
| -namespace {
|
| -
|
| -const BYTE kPushRax = 0x50;
|
| -const USHORT kMovRax = 0xB848;
|
| -const ULONG kMovRspRax = 0x24048948;
|
| -const BYTE kRetNp = 0xC3;
|
| -
|
| -#pragma pack(push, 1)
|
| -struct InternalThunk {
|
| - // This struct contains roughly the following code:
|
| - // 00 50 push rax
|
| - // 01 48b8f0debc9a78563412 mov rax,123456789ABCDEF0h
|
| - // 0b 48890424 mov qword ptr [rsp],rax
|
| - // 0f c3 ret
|
| - //
|
| - // The code modifies rax, but that should not be an issue for the common
|
| - // calling conventions.
|
| -
|
| - InternalThunk() {
|
| - push_rax = kPushRax;
|
| - mov_rax = kMovRax;
|
| - interceptor_function = 0;
|
| - mov_rsp_rax = kMovRspRax;
|
| - ret = kRetNp;
|
| - };
|
| - BYTE push_rax; // = 50
|
| - USHORT mov_rax; // = 48 B8
|
| - ULONG_PTR interceptor_function;
|
| - ULONG mov_rsp_rax; // = 48 89 04 24
|
| - BYTE ret; // = C3
|
| -};
|
| -#pragma pack(pop)
|
| -
|
| -} // namespace.
|
| -
|
| -namespace sandbox {
|
| -
|
| -size_t ResolverThunk::GetInternalThunkSize() const {
|
| - return sizeof(InternalThunk);
|
| -}
|
| -
|
| -bool ResolverThunk::SetInternalThunk(void* storage, size_t storage_bytes,
|
| - const void* original_function,
|
| - const void* interceptor) {
|
| - if (storage_bytes < sizeof(InternalThunk))
|
| - return false;
|
| -
|
| - InternalThunk* thunk = new(storage, NT_PLACE) InternalThunk;
|
| - thunk->interceptor_function = reinterpret_cast<ULONG_PTR>(interceptor);
|
| -
|
| - return true;
|
| -}
|
| -
|
| -NTSTATUS ResolverThunk::ResolveTarget(const void* module,
|
| - const char* function_name,
|
| - void** address) {
|
| - // We don't support sidestep & co.
|
| - return STATUS_NOT_IMPLEMENTED;
|
| -}
|
| -
|
| -} // namespace sandbox
|
|
|