summaryrefslogtreecommitdiff
path: root/sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc')
-rw-r--r--sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc102
1 files changed, 0 insertions, 102 deletions
diff --git a/sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc b/sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc
deleted file mode 100644
index 03e12ba522..0000000000
--- a/sandbox/win/sandbox_poc/pocdll/processes_and_threads.cc
+++ /dev/null
@@ -1,102 +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 <windows.h>
-#include <Tlhelp32.h>
-#include "sandbox/win/sandbox_poc/pocdll/exports.h"
-#include "sandbox/win/sandbox_poc/pocdll/utils.h"
-
-// This file contains the tests used to verify the security of threads and
-// processes.
-
-void POCDLL_API TestProcesses(HANDLE log) {
- HandleToFile handle2file;
- FILE *output = handle2file.Translate(log, "w");
-
- HANDLE snapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
- if (INVALID_HANDLE_VALUE == snapshot) {
- fprintf(output, "[BLOCKED] Cannot list all processes on the system. "
- "Error %ld\r\n", ::GetLastError());
- return;
- }
-
- PROCESSENTRY32 process_entry = {0};
- process_entry.dwSize = sizeof(PROCESSENTRY32);
-
- BOOL result = ::Process32First(snapshot, &process_entry);
-
- while (result) {
- HANDLE process = ::OpenProcess(PROCESS_VM_READ,
- FALSE, // Do not inherit handle.
- process_entry.th32ProcessID);
- if (NULL == process) {
- fprintf(output, "[BLOCKED] Found process %S:%ld but cannot open it. "
- "Error %ld\r\n",
- process_entry.szExeFile,
- process_entry.th32ProcessID,
- ::GetLastError());
- } else {
- fprintf(output, "[GRANTED] Found process %S:%ld and open succeeded.\r\n",
- process_entry.szExeFile, process_entry.th32ProcessID);
- ::CloseHandle(process);
- }
-
- result = ::Process32Next(snapshot, &process_entry);
- }
-
- DWORD err_code = ::GetLastError();
- if (ERROR_NO_MORE_FILES != err_code) {
- fprintf(output, "[ERROR] Error %ld while looking at the processes on "
- "the system\r\n", err_code);
- }
-
- ::CloseHandle(snapshot);
-}
-
-void POCDLL_API TestThreads(HANDLE log) {
- HandleToFile handle2file;
- FILE *output = handle2file.Translate(log, "w");
-
- HANDLE snapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, NULL);
- if (INVALID_HANDLE_VALUE == snapshot) {
- fprintf(output, "[BLOCKED] Cannot list all threads on the system. "
- "Error %ld\r\n", ::GetLastError());
- return;
- }
-
- THREADENTRY32 thread_entry = {0};
- thread_entry.dwSize = sizeof(THREADENTRY32);
-
- BOOL result = ::Thread32First(snapshot, &thread_entry);
- int nb_success = 0;
- int nb_failure = 0;
-
- while (result) {
- HANDLE thread = ::OpenThread(THREAD_QUERY_INFORMATION,
- FALSE, // Do not inherit handles.
- thread_entry.th32ThreadID);
- if (NULL == thread) {
- nb_failure++;
- } else {
- nb_success++;
- fprintf(output, "[GRANTED] Found thread %ld:%ld and able to open it.\r\n",
- thread_entry.th32OwnerProcessID,
- thread_entry.th32ThreadID);
- ::CloseHandle(thread);
- }
-
- result = Thread32Next(snapshot, &thread_entry);
- }
-
- DWORD err_code = ::GetLastError();
- if (ERROR_NO_MORE_FILES != err_code) {
- fprintf(output, "[ERROR] Error %ld while looking at the processes on "
- "the system\r\n", err_code);
- }
-
- fprintf(output, "[INFO] Found %d threads. Able to open %d of them\r\n",
- nb_success + nb_failure, nb_success);
-
- ::CloseHandle(snapshot);
-}