function BodySetValue(Value: Single): Boolean;
begin
try
PBYTE(@Value)^ := PBYTE(@Value)^ xor $3A;
PBYTE(Pointer(DWORD(@Value) + 3))^ := PBYTE(Pointer(DWORD(@Value) + 3))^ xor $B8;
WPM4Byte(BodyAlloc[2] + $660, PDWORD(@Value)^);
except
end;
end;
end.
이부분 어떻게 바뀐지 아시는 형님….
댓글2
function BodySetValue(Value: Single): Boolean;
begin
try
PByte(@Value)^ := PByte(@Value)^ xor $3A;
PByte(Pointer(NativeUInt(@Value) + 3))^ := PByte(Pointer(NativeUInt(@Value) + 3))^ xor $B8;
WPM4Byte(BodyAlloc[2] + $660, PUInt32(@Value)^);
except
end;
end;
Pointer와 DWORD 자료형은 포인터의 크기를 나타내는 NativeUInt로 대체
PDWORD는 PUInt32로 대체 정수