hoarddetours.cpp File Reference
Hooks to Hoard for Detours.
More...
#include "VERSION.h"
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include "detours.h"
#include "cpuinfo.h"
#include "hldefines.h"
#include "check.h"
#include "fixedrequestheap.h"
#include "hoardmanager.h"
#include "addheaderheap.h"
#include "threadpoolheap.h"
#include "redirectfree.h"
#include "ignoreinvalidfree.h"
#include "conformantheap.h"
#include "hoardsuperblock.h"
#include "lockmallocheap.h"
#include "alignedsuperblockheap.h"
#include "alignedmmap.h"
#include "globalheap.h"
#include "ansiwrapper.h"
#include "debugheap.h"
#include "lockedheap.h"
#include "winlock.h"
#include "bins4k.h"
#include "bins8k.h"
#include "bins16k.h"
#include "bins64k.h"
#include "oneheap.h"
#include "freelistheap.h"
#include "threadheap.h"
#include "hybridheap.h"
#include "posixlock.h"
#include "spinlock.h"
#include "wrapper.cpp"
Classes |
| class | TheCustomHeapType |
Defines |
| #define | CUSTOM_PREFIX(n) hoard##n |
| #define | WIN32_LEAN_AND_MEAN |
| #define | _WIN32_WINNT 0x0500 |
| #define | NT |
| #define | REPLACE(module, x, fn) |
| #define | REMOVE(module, x, fn) |
Typedefs |
| typedef void(* | exitFunctionType )(void) |
Functions |
| static TheCustomHeapType * | getCustomHeap (void) |
| | DETOUR_TRAMPOLINE (void __cdecl real_onexit(void(*f)(void)), onexit) |
| | DETOUR_TRAMPOLINE (void __cdecl real_exit(int code), exit) |
| | DETOUR_TRAMPOLINE (void *__cdecl real_malloc(size_t sz), malloc) |
| | DETOUR_TRAMPOLINE (void *__cdecl real_realloc(void *ptr, size_t sz), realloc) |
| | DETOUR_TRAMPOLINE (void *__cdecl real_calloc(size_t sz, size_t n), calloc) |
| | DETOUR_TRAMPOLINE (void *__cdecl real_free(void *ptr), free) |
| | DETOUR_TRAMPOLINE (size_t __cdecl real_msize(void *ptr), _msize) |
| | DETOUR_TRAMPOLINE (void *__cdecl real_expand(void *memblock, size_t size), _expand) |
| | DETOUR_TRAMPOLINE (char *__cdecl real_strdup(const char *s), strdup) |
| void | my_onexit (void(*function)(void)) |
| void | my_exit (int code) |
| void | my_cexit (void) |
| void * | my_expand (void *memblock, size_t size) |
| void | trampolineInstall (HMODULE hModule, bool insert) |
| void | trampolineWith (HMODULE hModule) |
| static void | initializeMaps (void) |
| static void | findUnusedHeap (void) |
| static void | releaseHeap (void) |
| BOOL APIENTRY | DllMain (HINSTANCE hModule, DWORD dwReason, PVOID lpReserved) |
Variables |
| volatile int | anyThreadCreated = 0 |
| const int | MaxThreads = 512 |
| const int | NumHeaps = 64 |
| static void * | objectAllocated = (void *) 0x1 |
| static const int | HOARD_MAX_EXIT_FUNCTIONS = 512 |
| static int | exitCount = 0 |
| exitFunctionType | exitFunctionBuffer [HOARD_MAX_EXIT_FUNCTIONS] |
Detailed Description
Hooks to Hoard for Detours.
- Author:
- Emery Berger <http://www.cs.umass.edu/~emery>
Define Documentation
| #define _WIN32_WINNT 0x0500 |
| #define CUSTOM_PREFIX |
( |
n |
|
) |
hoard##n |
| #define REMOVE |
( |
module, |
|
|
x, |
|
|
fn |
|
) |
|
Value:{ \
PBYTE p; \
p = DetourFindFunction ((module), (x)); \
if (p) { \
DetourRemove (p, (PBYTE) (fn)); \
} \
}
| #define REPLACE |
( |
module, |
|
|
x, |
|
|
fn |
|
) |
|
Value:{ \
PBYTE p; \
p = DetourFindFunction ((module), (x)); \
if (p) { \
DetourFunction (p, (PBYTE) (fn)); \
} \
}
| #define WIN32_LEAN_AND_MEAN |
Typedef Documentation
Function Documentation
| DETOUR_TRAMPOLINE |
( |
char *__cdecl |
real_strdupconst char *s, |
|
|
strdup |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void *__cdecl |
real_expandvoid *memblock, size_t size, |
|
|
_expand |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
size_t __cdecl |
real_msizevoid *ptr, |
|
|
_msize |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void *__cdecl |
real_freevoid *ptr, |
|
|
free |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void *__cdecl |
real_callocsize_t sz, size_t n, |
|
|
calloc |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void *__cdecl |
real_reallocvoid *ptr, size_t sz, |
|
|
realloc |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void *__cdecl |
real_mallocsize_t sz, |
|
|
malloc |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void __cdecl |
real_exitint code, |
|
|
exit |
| |
|
) |
| | |
| DETOUR_TRAMPOLINE |
( |
void __cdecl |
real_onexitvoid(*f)(void), |
|
|
onexit |
| |
|
) |
| | |
| BOOL APIENTRY DllMain |
( |
HINSTANCE |
hModule, |
|
|
DWORD |
dwReason, |
|
|
PVOID |
lpReserved | |
|
) |
| | |
| static void findUnusedHeap |
( |
void |
|
) |
[static] |
| static void initializeMaps |
( |
void |
|
) |
[static] |
| void my_exit |
( |
int |
code |
) |
|
| void* my_expand |
( |
void * |
memblock, |
|
|
size_t |
size | |
|
) |
| | |
| void my_onexit |
( |
void(*)(void) |
function |
) |
|
| static void releaseHeap |
( |
void |
|
) |
[static] |
| void trampolineInstall |
( |
HMODULE |
hModule, |
|
|
bool |
insert | |
|
) |
| | |
| void trampolineWith |
( |
HMODULE |
hModule |
) |
|
Variable Documentation