![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Algo aclara el vídeo, pero poco. ¿Exactamente, qué quieres hacer?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#2
|
|||
|
|||
|
Lo que hace el AOB Scan, es scanear un valor en array of byte, en un proceso determinado, y al scanear arroja solo un address, y ese address lo que quiero es que se muestre en un Edit.
Es igual como si scanearamos en el Cheat Engine este array of byte: 75 ? 38 87 ? ? ? ? 75 ? 8b ce en el proceso `Ejemplo.exe` solo me arrojara un address. Lo mismo quiero hacer en delphi, scanear automaticamente este array of byte: 75 ? 38 87 ? ? ? ? 75 ? 8b ce y el resultado del addres me lo muestre en un edit. A eso le llaman FindPattern/AoBScan Última edición por Milworm99 fecha: 19-12-2017 a las 23:11:20. |
|
#4
|
|||
|
|||
|
Cita:
Código:
Program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
function Match(pData: PByte; bMask: PByte; szMask: PChar): Boolean;
begin
while (szMask^ <> #0) do
begin
if (szMask^ = 'x') and (pData^ <> bMask^) then
begin
Result := false;
exit;
end;
Inc(szMask);
Inc(pData);
Inc(bMask);
end;
Result:= (szMask^ = #0);
end;
function FindPattern(dwAddress, dwLen : Cardinal; bMask : PBYTE; szMask : PCHAR) : Cardinal;
var
i : Cardinal;
begin
Result:= 0;
for i := 0 to dwLen-1 do
if(Match(PBYTE(dwAddress + i), bMask, szMask)) then
begin
Result := Cardinal((dwAddress + i));
break;
end;
end;
function test() : string;
begin
Result := 'Hola'
end;
procedure Fin;
begin
end;
var
i: Cardinal;
dwLen: Cardinal;
szMask: PCHAR;
bMask: PBYTE;
Addr: cardinal;
begin
i := Cardinal($401000);
dwLen := Cardinal($409000);
bMask:= @Test; // bMask contiene el código de la función a buscar puesto que es un puntero a la misma.
szMask := PCHAR('xxxxxxxxxxx???xxx');
// MaxLen:= Cardinal(@Fin)-Cardinal(@Test); // máxima longitud de la máscara
WriteLn(test);
Addr:= FindPattern(i, dwLen, bMask, szMask);
WriteLn(IntToHex(Addr,8));
ReadLn;
end.
en un proceso determinado Ejemplo: Prueba.exe y al scanear ese array el address me lo muestre en un edit. Espero tu ayuda, gracias |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Scan dispositivos Bluetooth en Android? | NPIdea | Desarrollo en Delphi para Android | 6 | 20-11-2014 07:57:41 |
|