Я хочу скопировать код программы в памяти в другое место. Например,
procedure OldShowMessage;
begin
ShowMessage('Old message..');
end;
Скажите, что я хочу скопировать процедуру в другое место в памяти. Я объявил что-то вроде
var
lopShowMessage : procedure; // procedural pointer.
Какой-то псевдокод будет выглядеть как
// VirtualProtect(@OldShowMessage, <length of routine>, ..., ...);
// Allocate memory
// lopShowMessage := AllocMem(<length of routine>);
// Move(@OldMessage, Pointer(lopShowMessage)^, <length of routine>);
// FlushInstructioncache.....
Я просто хочу знать, есть ли возможность сделать это. Я пропатчил подпрограмму для вызова новой подпрограммы, но, поскольку мы помещаем инструкцию JMP с использованием обходных путей кода, я не могу использовать функциональность, предоставленную в старой подпрограмме.
Ссылка на мой предыдущий вопрос: здесь