Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ASM y Delphi (https://www.clubdelphi.com/foros/showthread.php?t=67592)

GunMiNiHo 24-04-2010 21:35:13

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, newfunc:pointer);
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;


La franja horaria es GMT +2. Ahora son las 23:14:55.

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