Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2010
GunMiNiHo GunMiNiHo is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
GunMiNiHo Va por buen camino
ASM y Delphi

hola tengo una duda acerca de usar ASM en delphi y una definicion en C++ que espero que puedan ayudarme

OK tengo estas definiciones y funciones

Código:
 #define jmp(frm, to) (int)(((int)to - (int)frm) - 5)
Código:
bool Check(const BYTE* pData, const BYTE* bMask, const char* szMask)

      {

              for(; *szMask; ++szMask, ++pData, ++bMask)

              if(*szMask == 'x' && *pData != *bMask )

              return false;


              return (*szMask) == NULL;
Código:
DWORD FindPattern(BYTE *bMask, char* szMask, DWORD dwOffset)

      {

              DWORD dwAddress = 0x00400000;

              DWORD dwLen = 0x00B00000;

       

              for(DWORD i=0; i < dwLen; i++)

              if(Check((BYTE*)(dwAddress + i), bMask, szMask))

                 return (DWORD)(dwAddress + i + dwOffset);

       

              return 0x00400000;

      }
ASM:

Código:
    alloc(ItemEdit, 256)
    label(CS)
    label(back)
    registersymbol(counter)
    alloc(counter, 64)

    counter:
    db 00 00

    ItemEdit:
    mov [counter], eax
    cmp eax,1F72C8 //Blue Arrows
    je CS
    @@@@@@@
    mov [edi+34],eax
    mov edi, [ebp-14]
    jmp 49421b

    CS:
    mov [edi+34],0
    mov edi, [ebp-14]
    jmp back

    4956F8:
    jmp ItemEdit
    nop
    back:

    [disable]
    4956F8:
    mov [edi+34], eax
    mov edi, [ebp-14]
obiamente en C++ y quiero transladarlas a delphi alguna ayuda? =D

y una interpretacion de este procedure

Código Delphi [-]
procedure hook(target, newfuncointer);
var
  jmpto:dword;
begin
  jmpto:=dword(newfunc)-dword(target)-5;
  VirtualProtect(target, 5, PAGE_EXECUTE_READWRITE, nil);
  pbyte(target)^:=;
  pdword(dword(target)+1)^:=jmpto;
end;

Última edición por GunMiNiHo fecha: 24-04-2010 a las 21:57:18.
Responder Con Cita
Respuesta



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
Consulta Delphi 6, Delphi 2005 y Delphi 2006 Leviatan Varios 6 18-08-2007 16:02:08


La franja horaria es GMT +2. Ahora son las 21:03:19.


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