import pykd win_src = ''' typedef void* LPVOID; typedef size_t SIZE_T; typedef unsigned long DWORD; typedef bool BOOL; LPVOID __stdcall VirtualAlloc( LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect ); BOOL __stdcall VirtualFree( LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType ); DWORD __stdcall GetLastError(void);l ''' MEM_COMMIT = 0x1000 MEM_RELEASE = 0x8000 PAGE_READWRITE = 0x4 winTypeProvider = pykd.getTypeInfoProviderFromSource(win_src, "-w") kernel = pykd.module('KERNELBASE') VirtualAlloc = pykd.typedVar(winTypeProvider.getTypeByName('VirtualAlloc'), kernel.VirtualAlloc ) VirtualFree = pykd.typedVar(winTypeProvider.getTypeByName('VirtualFree'), kernel.VirtualFree ) GetLastError = pykd.typedVar(winTypeProvider.getTypeByName('GetLastError'), kernel.GetLastError ) addr = VirtualAlloc(0, 0x1000, MEM_COMMIT, PAGE_READWRITE) if addr: print("Allocated memory: %x" % addr ) if VirtualFree(addr, 0, MEM_RELEASE): print("Successfully free memory") else: print("Failed VirtualFree with error %x" % GetLastError() ) else: print("Failed VirtualAlloc with error %x" % GetLastError() )