Высший разум
(1271054)
7 лет назад
Смотри на DUP. У него есть такой функционал. Могу дать код для делфей, но сам с ним разбираться будешь:
function dwFindPattern(const dwAddress: DWORD; const dwLen: DWORD; const bMask: DWORD;constszMask: string): DWORD;
//===========
function bDataCompare(pData, bMask: PByte; szMask: Pointer): Boolean;
begin
while (Byte(szMask^) <> $00) do
begin
if (Byte(szMask^) = Byte('x')) and (pData^ <> bMask^) then
begin
Result := False;
Exit;
end;
pData := PByte(DWORD(pData) + 1);
bMask := PByte(DWORD(bMask) + 1);
szMask := Pointer(DWORD(szMask) + 1);
end;
Result := (Byte(szMask^) = $00);
end;
//===========
var
i, n: DWORD;
begin
Result := 0;
n := dwLen - Length(String(PAnsiChar(szMask)));
for i := 0 to n do
begin
if bDataCompare(PByte(DWORD(dwAddress) + i), PByte(bMask), @szMask[1]) then
begin
Result := dwAddress + i;
Exit;
end;
end;
end;
под "х" могут быть любые числа.