Página 1 de 1

[FASM]lStrlen [c0d3d p0is0n]

Publicado: 28 Jun 2011, 23:45
por p0is0n-123
Un simple ejemplo... después de estar resolviendo un "Crackme" de CrueHead en el que pasaba los carácteres a Mayúscula sumandole 20... se me ocurrió esta función...

Código: Seleccionar todo

    include 'F:\Cracking\fasmw16931\INCLUDE\WIN32AX.INC'
     
    .data
    poison db 'Hola Indetectables... esto es un ejemplo de strlen',0
    hLen rb 260
    contador dd ?
     
    .code
     
    proc lsStrlen,sStr
        ; Limpiamos los Registros.
        xor eax,eax
        xor ecx,ecx
     
       ;Guardamos la string.
       mov eax,[sStr]
       mov ecx,-1
     
       bucle:
        add ecx,1
        inc eax
        cmp byte[eax],0
        je Listo
        jmp bucle
      Listo:
       push ecx
       ret
    endp
     
    start:
      stdcall lsStrlen,poison
      mov [contador],ecx
      invoke wsprintfA,hLen,"%d",[contador]
      invoke MessageBox,0,hLen,0,0
      invoke ExitProcess,0
    .end start
...

Re: [FASM]lStrlen [c0d3d p0is0n]

Publicado: 29 Jun 2011, 16:07
por ap0calypt0
Todo un maestro . Gracias p0is0n seguro que vendra bien a mas de uno

Re: [FASM]lStrlen [c0d3d p0is0n]

Publicado: 30 Jun 2011, 17:29
por linkgl
Buena funcion yo no usaba el byte en la mía usaba lodsb para cortar la cadena en caracteres y de ahí el bucle hasta que fuese 0 me gusta mas la tuya