Приветствую!
Имеется такой вот код, который затем компилится в шеллкод и исполняется в другом процессе.
При вызове HeapAlloc, процесс падает. Однако если я вызову тот же код (за исключением лишь того, что не импортированный по апи) в том же процессе, все пройдет гладко.
В чем ошибка может быть?
Имеется такой вот код, который затем компилится в шеллкод и исполняется в другом процессе.
C:
typedef HANDLE(WINAPI* PGETPROCESSHEAP)(VOID);
typedef LPVOID(WINAPI* PHEAPALLOC)(HANDLE, DWORD, SIZE_T);
...
PGETPROCESSHEAP pGetProcessHeap = (PGETPROCESSHEAP)GetApiByHash(0x1dacacd3);
HANDLE procheap = pGetProcessHeap();
PHEAPALLOC pHeapAlloc = (PHEAPALLOC)GetApiByHash(0xe00e87fb);
PBYTE holder = (PBYTE)pHeapAlloc(procheap, HEAP_ZERO_MEMORY, szPayload);
...
C:
...
HANDLE procheap = GetProcessHeap();
PBYTE holder = (PBYTE)HeapAlloc(procheap, HEAP_ZERO_MEMORY, szPayload);
...