Смотря ещё как это использовать: как библиотеку(MSCOFF, а когда-то будет StrippedPE) или же подключать как модуль.
Вот здесь https://github.com/pleriche/FastMM4/blo … astMM4.pas
используется VirtualAlloc, VirtualFree, но нет LocalAlloc и LocalFree.
Эти функции можно заменить на аналоги из проекта PELoad
http://board.kolibrios.org/viewtopic.php?f=9&t=2318
▼
align 16
;**********************************************************************************
VirtualAlloc: ;////////////////////////////////////////////////////////////////////
;**********************************************************************************
%define lpAddress [esp + 4 +1*4]
%define dwSize [esp + 8 +1*4]
%define flAllocationType [esp + 12 +1*4]
%define flProtect [esp + 16 +1*4]
push ebx
mov eax, 68
mov ebx, 12
mov ecx, dwSize
int 64
pop ebx
ret 16
%undef lpAddress
%undef dwSize
%undef flAllocationType
%undef flProtect
align 16
;**********************************************************************************
VirtualFree: ;/////////////////////////////////////////////////////////////////////
;**********************************************************************************
%define lpAddress [esp + 4 +1*4]
%define dwSize [esp + 8 +1*4]
%define dwFreeType [esp + 12 +1*4]
push ebx
mov eax, 68
mov ebx, 13
mov ecx, lpAddress
int 64
pop ebx
ret 12
%undef lpAddress
%undef dwSize
%undef dwFreeType
Sleep тоже там есть, ExitProcess нет, но есть ExitThread — для однопоточного приложения эффект будет одинаковый.
System.Move и System.FillChar можно оставить как есть.
Насчёт
TlsSetValue
TlsGetValue
TlsFree
TlsAlloc
не нашёл в исходнике, но если используется, то тогда надо разбираться, я с этим пока не работал, в PELoad не было реализовано(вообще могу выложить самую последнюю версию PELoad, хотя там уже форк есть, но всё равно, если интересно, конечно)