![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#5
|
|||
|
|||
|
Cita:
Cambie un poco la funcion: Código:
Function FindPattern(dwAddress, dwLen : Cardinal; bMask : PBYTE; szMask : PCHAR) : Cardinal ; stdcall;
var
f : Cardinal;
begin
while (f < dwLen) do
begin
if(Match(PBYTE(dwAddress + f), bMask, szMask)) then
begin
Result := Cardinal((dwAddress + f));
Exit;
end;
Inc(f);
Result := 0;
end;
end;
Por ejemplo si yo creo un .exe en delphi con una funcion que se ejecuta en el main esos valores que yo dije arriba serian: Código:
program test;
{$APPTYPE CONSOLE}
uses
SysUtils;
function Match(pData:PBYTE; bMask:PBYTE; szMask:PCHAR) : boolean; stdcall; external 'test.dll';
Function FindPattern(dwAddress, dwLen : Cardinal; bMask : PBYTE; szMask : PCHAR) : Cardinal ; stdcall; external 'test.dll';
function test() : string;
begin
Result := 'Hola'
end;
var
i : Cardinal;
j : Cardinal;
k : PBYTE;
l : PCHAR;
tmp : string;
begin
i := Cardinal(401000);
j := Cardinal(8000);
tmp := '\x53\x8B\xD8\x8B\xC3\xBA\x00\x00\x00\x00\xE8\x00\x00\x00\x00';
k := PBYTE(tmp);
l := PCHAR('xxxxxx????x????');
WriteLn(test);
WriteLn(FindPattern(i,j,k,l));
ReadLn;
end.
![]() Cuando imprimo el valor del FindPattern me devuelve: 4229464 en vez de 4088CC. Supongo que debe ser o un problema al pasar los parametros o ya de la funcion FindPattern. Muchas Gracias por la atencion. Última edición por ecfisa fecha: 04-06-2016 a las 01:15:00. Razón: agregar enlace a imágen |
|
|
|