Tema: ASM y Delphi
Ver Mensaje Individual
  #1  
Antiguo 24-04-2010
GunMiNiHo GunMiNiHo is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Reputación: 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