Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: AlxSpy en 22 Junio 2011, 01:10 am



Título: ¿algun tuto y libro sobre flat assembler?
Publicado por: AlxSpy en 22 Junio 2011, 01:10 am
holas me gustarias aprender a fondo el lenguaje asm para win32 usando el flat assembler, lei un tutorial de E0N sobre un taller en flat assembler, pero quisiera avansar más principalmente aprender las intrucciones propias del micro (push mov, cmp, jmp , las de alto nivel no mucho: invoke) , en algunos codigos vi el uso de la instruccion invoke

Código:
"invoke Funcion Parametros..."

y tambien vi de esta forma:

Código:
push Paramtro1
Push Parametro2
Call [Funcion]

Esta segunda forma es la que me parece mas interesante para saber como funciona eso lo de la pila (antes no sabia nada sobre la pila), y saber las demas cosas que suceden en el micro al ejecutar tal instruccion.
¿sabran de algun tutorial en español de flat assembler ?(array, funciones apis, funciones de usuario, etc..)
-tambien quisiera que me recomienden algun libro sobre esto(si hubiera uno donde trate sobre flat assemble seria mejor).
gracias.

*una duda : ¿se pueden hacer DLL en asm(flat assembler)?


Título: Re: ¿algun tuto y libro sobre flat assembler?
Publicado por: _Enko en 22 Junio 2011, 01:52 am
a) Tutoriales:
En este mismo subforo, EntryPoint
http://foro.elhacker.net/asm/entry_point-t256455.0.html

b)Invoke es una macro, algo así como codigo del preprocesador.
Tienes el codigo fuente de esa macro dentro del include de fasm.

Invoke FuncA, B, C, D

Genera:
push D
push C
push B
call [FuncA]

Es tan solo para que el codigo sea más facil de leer. push/pop  no es lo mas interesante de la pila. Mas interesantes aun son las variables locales de una funcion que se guardan en la pila que al terminar la funcion se libera.

c)No conozco manuales de fasm en español, pero revisa el enlace del EntryPoint a ver si encuentras algo.
La mejor documentacion de FASM está en ingles y esta en el sitio oficial de fasm.

d)Para aprender assembly para win32 no hay nada mejor que los tutos de iczelion que esta el enlace en el post EntryPoint, son para masm, pero las diferencias no son tan grandes.
Solo debes distinguir "variable" y "[variable]" en la manera que se usa en masm "offset/addr variable" "variable".
Tambien la MSDN es de mucha ayuda.

e)Si se puede hacer dll en fasm, hay un ejemplo en la carpeta EXAMPLES del ensamblador
Código:

; DLL creation example

format PE GUI 4.0 DLL
entry DllEntryPoint

include 'win32a.inc'

section '.text' code readable executable

proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
mov eax,TRUE
ret
endp

; VOID ShowErrorMessage(HWND hWnd,DWORD dwError);

proc ShowErrorMessage hWnd,dwError
  local lpBuffer:DWORD
lea eax,[lpBuffer]
invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0
invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK
invoke LocalFree,[lpBuffer]
ret
endp

; VOID ShowLastError(HWND hWnd);

proc ShowLastError hWnd
invoke GetLastError
stdcall ShowErrorMessage,[hWnd],eax
ret
endp

section '.idata' import data readable writeable

  library kernel,'KERNEL32.DLL',\
  user,'USER32.DLL'

  import kernel,\
GetLastError,'GetLastError',\
SetLastError,'SetLastError',\
FormatMessage,'FormatMessageA',\
LocalFree,'LocalFree'

  import user,\
MessageBox,'MessageBoxA'

section '.edata' export data readable

  export 'ERRORMSG.DLL',\
ShowErrorMessage,'ShowErrorMessage',\
ShowLastError,'ShowLastError'

section '.reloc' fixups data discardable


Título: Re: ¿algun tuto y libro sobre flat assembler?
Publicado por: d(-_-)b en 22 Junio 2011, 20:02 pm
En la web oficial hay buena documentancion.

http://flatassembler.net/docs.php

saludos...


Título: Re: ¿algun tuto y libro sobre flat assembler?
Publicado por: AlxSpy en 23 Junio 2011, 02:32 am
muy interesante  :laugh: los enlaces , imprimiendo tutos...  , creen que deba comprar algun libro de asm para win32 como apoyo?, si es asi ¿me recomiendan algun autor o nombre de libro? ¿o quizas haya alguno en la web para imprimirlo?  ¿o con todo esto sera suficiente?(no estoy llevando asm como un curso en una universidad o instituto sino que soy aficionado y pues quiero aprender).
saludos-gracias.


Título: Re: ¿algun tuto y libro sobre flat assembler?
Publicado por: d(-_-)b en 24 Junio 2011, 07:30 am
Aqui tienes buan material.

http://atc.ugr.es/docencia/udigital/

-------------------------------------------

http://foro.elhacker.net/asm/entry_point-t256455.0.html

saludos...