|
|
|
@ -25,7 +25,7 @@ phpdbg_btree phpdbg_memory_tree; |
|
|
|
|
|
|
|
int mprotect(void *addr, size_t size, int protection) { |
|
|
|
int var; |
|
|
|
//printf("Set protection of %p to %s\n", addr, protection == (PROT_READ | PROT_WRITE) ? "rw": "r-"); |
|
|
|
printf("Set protection of %p to %s\n", addr, protection == (PROT_READ | PROT_WRITE) ? "rw": "r-"); |
|
|
|
return (int)VirtualProtect(addr, size, protection == (PROT_READ | PROT_WRITE) ? PAGE_READWRITE : PAGE_READONLY, &var); |
|
|
|
} |
|
|
|
|
|
|
|
@ -33,7 +33,7 @@ size_t virtual_size(void *ptr) { |
|
|
|
return (size_t)phpdbg_btree_find(&phpdbg_memory_tree, (zend_ulong)ptr)->ptr; |
|
|
|
} |
|
|
|
|
|
|
|
void *virtual_malloc(size_t size) { |
|
|
|
/*void *virtual_malloc(size_t size) { |
|
|
|
size_t real_size = phpdbg_get_total_page_size(NULL, size); |
|
|
|
void *addr = VirtualAlloc(NULL, real_size, MEM_COMMIT, PAGE_READWRITE); |
|
|
|
phpdbg_btree_insert(&phpdbg_memory_tree, (zend_ulong)addr, (void *)real_size); |
|
|
|
@ -58,15 +58,22 @@ void *virtual_realloc(void *ptr, size_t size) { |
|
|
|
memcpy(ret, ptr, original_size); |
|
|
|
virtual_free(ptr); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
}*/ |
|
|
|
|
|
|
|
void phpdbg_win_set_mm_heap(zend_mm_heap *heap) { |
|
|
|
/*void phpdbg_win_set_mm_heap(zend_mm_heap *heap) { |
|
|
|
phpdbg_btree_init(&phpdbg_memory_tree, sizeof(void *) * 8); |
|
|
|
heap->_free = virtual_free; |
|
|
|
heap->_realloc = virtual_realloc; |
|
|
|
heap->_malloc = virtual_malloc; |
|
|
|
} |
|
|
|
|
|
|
|
void phpdbg_win_set_mm_storage(zend_mm_storage *storage) { |
|
|
|
phpdbg_btree_init(&phpdbg_memory_tree, sizeof(void *) * 8); |
|
|
|
storage->_free = virtual_free; |
|
|
|
storage->_realloc = virtual_realloc; |
|
|
|
storage->_malloc = virtual_malloc; |
|
|
|
}*/ |
|
|
|
|
|
|
|
int phpdbg_exception_handler_win32(EXCEPTION_POINTERS *xp) { |
|
|
|
EXCEPTION_RECORD *xr = xp->ExceptionRecord; |
|
|
|
CONTEXT *xc = xp->ContextRecord; |
|
|
|
|