Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2017
Milworm99 Milworm99 is offline
Miembro
 
Registrado: Nov 2017
Posts: 31
Poder: 0
Milworm99 Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 19-12-2017
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: Jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 5.714
Poder: 19
Ñuño Martínez Va camino a la famaÑuño Martínez Va camino a la fama
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?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 19-12-2017
Milworm99 Milworm99 is offline
Miembro
 
Registrado: Nov 2017
Posts: 31
Poder: 0
Milworm99 Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 19-12-2017
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: Jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 5.714
Poder: 19
Ñuño Martínez Va camino a la famaÑuño Martínez Va camino a la fama
Algo aclara el vídeo, pero poco. ¿Exactamente, qué quieres hacer?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 19-12-2017
Milworm99 Milworm99 is offline
Miembro
 
Registrado: Nov 2017
Posts: 31
Poder: 0
Milworm99 Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 20-12-2017
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.927
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Seguro que este tema te sirve para empezar.

Saludos.
Responder Con Cita
  #7  
Antiguo 20-12-2017
Milworm99 Milworm99 is offline
Miembro
 
Registrado: Nov 2017
Posts: 31
Poder: 0
Milworm99 Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Seguro que este tema te sirve para empezar.

Saludos.
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.
El codigo esta excelente, pero como lo haria para que scanee este Array of byte: 75 ? 38 87 ? ? ? ? 75 ? 8b ce
en un proceso determinado Ejemplo: Prueba.exe y al scanear ese array el address me lo muestre en un edit. Espero tu ayuda, gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 05:57:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi