FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
AOB Scan
Hola gente de la comunidad clubdelphi, como puedo hacer un scan automatico de Array of byte de un determinado proceso y que el address me lo muestre en un edit.
Proceso: Ejemplo.exe Array of byte: 75 ? 38 87 ? ? ? ? 75 ? 8b ce El address del array of byte scaneado, quiero que me lo muestre en un edit. He estado investigando y probando varios codigos en diferentes paginas web, pero no me ha funcionado. Espero su ayuda, muchas gracias |
#2
|
||||
|
||||
No tengo ni idea de qué es lo que quieres hacer. ¿Qué es "un scan automático de ARRAY OF BYTE"? ¿Y ese address del que hablas, qué dirección es, el del inicio del proceso?
|
#3
|
|||
|
|||
Array of Byte Scan igual a este video: https://www.youtube.com/watch?v=HQtkeu9lt4U&app=desktop
Lo que hace es scanear un array of byte de un determinado proceso y el address se lo muestra en un edit. Aqui hay un ejemplo, pero no tengo idea como aplicarlo: http://www.delphipraxis.net/180513-s...hi-arxlex.html Última edición por Milworm99 fecha: 19-12-2017 a las 13:36:20. |
#4
|
||||
|
||||
Algo aclara el vídeo, pero poco. ¿Exactamente, qué quieres hacer?
|
#5
|
|||
|
|||
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. |
#7
|
|||
|
|||
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 |
|
|
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 |
|