1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
function BSwap(const a : longword) : longword;
// EXIGE Math ds Uses
asm
BSWAP EAX;
end;
function findOffset(FileName :String; Value:longword):longword;
var
m : TMemoryStream;
n: longword;
rv : longword;
begin
result := 0;
m := TMemoryStream.Create;
m.LoadFromFile(filename);
value := bswap(value);
for n := 0 to m.Size-1 do
begin
m.Seek(n,0);
m.Read(rv,sizeof(value));
if CompareValue(rv,value,4) = 0 then
begin
result := n;
break;
end;
end;
m.Free;
end; |
Partager