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.
3A, B8, +3 이 부분들 어떻게 바뀐지 아시는 형님… 부탁드립니다
| 제목 | 작성자 | 작성일 | 조회 | |
|---|---|---|---|---|
| 공지 | 게시판 이용 안내+63 | 10-20 | 8624 | |
| 9709 | 18:00 | 12 | ||
| 9708 | 09:07 | 64 | ||
| 9707 | 04:26 | 61 | ||
| 9706 | 03:25 | 70 | ||
| 9705 | 03:22 | 61 | ||
| 9704 | 02:59 | 55 | ||
| 9703 | 11-08 | 50 | ||
| 9702 | 11-07 | 72 | ||
| 9701 | 11-07 | 111 | ||
| 9700 | 11-07 | 215 | ||
| 9699 | 11-06 | 174 | ||
| 9698 | 11-06 | 99 | ||
| 9697 | 11-03 | 206 | ||
| 9696 | 11-03 | 528 | ||
| 9695 | 11-02 | 344 | ||
| 9694 | 10-30 | 326 | ||
| 9693 | 10-30 | 616 | ||
| 9692 | 10-30 | 345 | ||
| 9691 | 10-29 | 444 |
댓글2
64비트에 맞는 포인터랑 타입 수정 부터 하세요
function BodySetValue(Value: Single): Boolean;
var
TempValue: UInt32;
begin
try
TempValue := PUInt32(@Value)^;
TempValue := TempValue xor $3A;
TempValue := TempValue xor $B8;
WPM4Byte(BodyAlloc[2] + $660, TempValue);
Result := True;
except
Result := False;
end;
end;