0
메모리의 루틴 코드를 다른 위치로 복사하려고합니다. 예 :루틴 내용을 메모리의 다른 위치로 복사
procedure OldShowMessage;
begin
ShowMessage('Old message..');
end;
메모리의 다른 위치로 루틴을 복사한다고 말합니다. 나는 어떤 의사 코드가 난 그냥이 일을 어떤 가능성이 있는지 알고 싶은
// VirtualProtect(@OldShowMessage, <length of routine>, ..., ...);
// Allocate memory
// lopShowMessage := AllocMem(<length of routine>);
// Move(@OldMessage, Pointer(lopShowMessage)^, <length of routine>);
// FlushInstructioncache.....
같은 것
var
lopShowMessage : procedure; // procedural pointer.
같은 것을 선언했다. 새 루틴을 호출하는 루틴을 패치했지만 코드 우회로를 사용하여 JMP 명령을 배치했기 때문에 이전 루틴에서 제공된 기능을 사용할 수 없을 수도 있습니다.
내 앞의 질문에 대한 참조는 Detours이 실제로 작동하는 방법의 기술적 인 세부 사항에 읽을 경우, 당신은 당신의 일환으로 trampoline
을 이용하여 기존의 일상적인 사용을 할 수 있음을 볼 수 here
왜 이것을 다운 그레이드 했습니까? 그것은 유효한 대답입니다. –