Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Joe Fraddy en 23 Febrero 2015, 06:07 am



Título: Ensamblador ¿¿¿es posible???
Publicado por: Joe Fraddy en 23 Febrero 2015, 06:07 am
Bueno amigos, me gusta mucho este asunto de la programación, se programar en algunos lenguajes, no soy muy bueno, me sigo aprendiendo.

Siempre he querido programar en lenguajes de nivel bajo y he programado algunas cosillas en C (Que es considerado por muchos de nivel intermedio) y si es algo complejo y difícil de aprender (sobre todo si no se ha tenido la oportunidad de ir a la universidad).

Bueno dejando el rollo, mi pregunta es, ¿es posible aprender ensamblador por medio de libros, videos y demás recursos que hay en internet? o terminaré frustrado al intentarlo???

Gracias!!!


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: engel lex en 23 Febrero 2015, 06:16 am
si es posible... pero ensamblador vale la pena saberlo es para ing inversa o cosas puntuales, intentar programar algo util en el no es practico, c posiblemente genere un código más eficiente que tú (y en menos días de trabajo)


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: Joe Fraddy en 23 Febrero 2015, 22:42 pm
si, es lo que he leído, por eso me interesa ASM, para ingeniería inversa y para jugar con los virus y esas cosas.

Podrías recomendarme algunos buenos libros para empezar??

Y por cierto que sería mejor FASM, NASM, GASM?? hay diferencias???

Gracias!!


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: TheEnmanuelRmrz en 25 Febrero 2015, 16:00 pm
Claro que si amigo, todo es posible si le pones empeño. Y no importa la universidad. Aún no me han dado programación porque voy en el primer trimestre y yo manejo mas de 7 lenguajes. Incluyendo ASM.

Como ensamblador te recomiendo MASM32. Es gratis, es legal y el SDK te ayuda mucho cuando migras de un lenguaje de alto nivel. Además trae un pseudo-runtime con muchas funciones de ayuda.

Y lo mas importante, tiene todas sus constantes y apis actualizadas hasta Windows 7. Tiene todas las funciones de Gdiplus incluyendo las estructuras.

Y como IDE a utilizar, te recomiendo muuuucho RadASM que tambien es gratis y legal. Cuenta con resaltado de Sintáxis, editor visual de formularios (Diálogos), organización de proyectos, editor de recursos y muchas cosas más. Ahí de olvidas de líneas de comandos y todo. Esta muuuuuy a la altura creeme.

Como libros te recomiendo que primero leas sobre arquitectura del computador y luego te metas de lleno en Asm. Y para los virus, será después, porque esa es más que programación avanzada.

Bueno si me dejas tu correo, te puedo pasar varios libros que tengo y que no se consiguen por ahí. Y que no hablan basura como la mayoría.

Puedes descargar MASM32 en http://masm32.com/masmdl.htm (http://masm32.com/masmdl.htm)
Y RadASM2(Ya salió la versión 3 pero prefiero la 2, es muuucho mejor)  http://www.oby.ro/rad_asm/ (http://www.oby.ro/rad_asm/) descarga todos los paquetes que necesites.

Saludos.


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: MCKSys Argentina en 25 Febrero 2015, 16:13 pm
Claro que si amigo, todo es posible si le pones empeño. Y no importa la universidad. Aún no me han dado programación porque voy en el primer trimestre y yo manejo mas de 7 lenguajes. Incluyendo ASM.

Como ensamblador te recomiendo MASM32. Es gratis, es legal y el SDK te ayuda mucho cuando migras de un lenguaje de alto nivel. Además trae un pseudo-runtime con muchas funciones de ayuda.

Y lo mas importante, tiene todas sus constantes y apis actualizadas hasta Windows 7. Tiene todas las funciones de Gdiplus incluyendo las estructuras.

Y como IDE a utilizar, te recomiendo muuuucho RadASM que tambien es gratis y legal. Cuenta con resaltado de Sintáxis, editor visual de formularios (Diálogos), organización de proyectos, editor de recursos y muchas cosas más. Ahí de olvidas de líneas de comandos y todo. Esta muuuuuy a la altura creeme.

Como libros te recomiendo que primero leas sobre arquitectura del computador y luego te metas de lleno en Asm. Y para los virus, será después, porque esa es más que programación avanzada.

Bueno si me dejas tu correo, te puedo pasar varios libros que tengo y que no se consiguen por ahí. Y que no hablan basura como la mayoría.

Puedes descargar MASM32 en http://masm32.com/masmdl.htm (http://masm32.com/masmdl.htm)
Y RadASM2(Ya salió la versión 3 pero prefiero la 2, es muuucho mejor)  http://www.oby.ro/rad_asm/ (http://www.oby.ro/rad_asm/) descarga todos los paquetes que necesites.

Saludos.

MASM no es 100% gratis. Si lees la licencia lo verás.

Por el contrario, JWASM (link (http://sourceforge.net/projects/jwasm/)) es 100% gratis. Aqui (https://code.google.com/p/winasm-studio/wiki/JWASM) tienes la comparación con los otros ASM.

Como IDE puedes usar el que sea. Yo uso WinAsm porque me resulta sencillo trabajar ahí.

Saludos!

PD: JWASM compila en 64 bits usando la sintaxis de MASM (MASM32 no compila en 64 bits y el compilador de 64 bits tiene problemas con los Invoke).
PD2: JWASM compila para DOS, Windows, Linux, OS/2 y FreeBSD.
PD3; JWasm es open source.
PD4: Lee el link de la comparación y verás las diferencias...  ;)


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: TheEnmanuelRmrz en 25 Febrero 2015, 16:22 pm
MASM32 si es gratis , solo que para programar solo para Windows,lo dice la licencia y bueno, yo programo para Windows así que me vale madres.
Y si no puedo hacer proyectos con licencia GNU, bueno, los hago Creative Common's o de licencia pública XD.

Y si entramos en tecnicismos, prefiero POASM es de sintáxis idéntica y ese si es opensource :D (Osea no como MASM) y su linker produce ejecutables mucho más pequeños. Y si ensambla para 64bits.

Y por los invoke no me preocupo, puedo hacer una macro, al fin y al cabo es lo mismo, no se si sabías, y si no, pues pongo los argumentos a mano en cada registro correspondiente.

En fin no quiero caer en polémica, es solo que ese me parece el más conveniente porque su SDK ME PARECE completa. Y capo, deberías probar RadASM, en serio loco, yo usaba primero WinASM.

Aunque de Editor de diálogos prefiero el de WinASM. Bueno con probar nunca se pierde.

Y probé JWASM y si tiene muchas ventajas, pero no es cierto que es MASM 100% compatible. Traté de Ensamblar un proyecto y me tiró más de 100 errores, además es engorroso tener que estar poniendo el modelo de procesador en la línea de comandos, cuando ya la has puesto en el código.

Bueno igual lo voy a seguir probando :D

Oye tengo una duda, como puedo hacer un proyecto open source con JWASM si este no tiene un SDK, puedo usar el de MASM y sigue siendo legal? yo creo que no :/

Bueno Saludos.


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: Joe Fraddy en 25 Febrero 2015, 20:43 pm
Gracias por sus comentarios, me han sido de mucha ayuda.

Alguno de ustedes ha programado en FASM, me han dicho que es muy bueno, espero puedan sacarme de dudas con sus comentarios!!!


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: xv0 en 27 Febrero 2015, 22:53 pm
El ASM es el mismo para todos los casos, simplemente puede cambiar la sintaxis, llamadas, declaraciones y demas, propias del ensamblador, pero al final sera el mismo opcode.

Un saludo.


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: Joe Fraddy en 28 Febrero 2015, 02:50 am
Excelente, eso era todo lo que quería saber, ps voy a entrarle a la programación en ASM y me he conseguido un libro que habla de la arquitectura del procesador, es lo primero que voy a leer como me han recomendado.

El libro lo pueden descargar de http://izafnat.insomnia247.nl/doc/Arquitectura.de.computadoras.Behrooz.Parhami.PDF (http://izafnat.insomnia247.nl/doc/Arquitectura.de.computadoras.Behrooz.Parhami.PDF)

O si tienen alguno mejor, por favor publiquen xD


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: xv0 en 28 Febrero 2015, 22:43 pm
Hay algunas cosas interesantes en el libro, pero otra es solo teoria que no se pone en practica. Que arquitectura estas usando?

Date cuenta que en algunos ejemplos estan en MIPS y demas, tambien si quieres ir enserio con esto, necesitaras mas cosas que este estilo de libro.

Busca el manual de tu arquitectura por la red, pero seguro que si lees eso desde el principio te asustas, ves mirando cositas estilo manuales y asi te vas enterando del tema, en el foro tienes algunos tutos prehistoricos, pero bueno estan bien.

Bueno depende de tu arquitectura te serviran o no.

Un saludo.


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: Joe Fraddy en 28 Febrero 2015, 23:06 pm
Uso Intel x64, tienes alguna libro que puedas recomendarme???


Título: Re: Ensamblador ¿¿¿es posible???
Publicado por: xv0 en 1 Marzo 2015, 18:12 pm
Recomendar libros en ASM en una tarea complicada, porque la mitad de los libros solamente te explican algunas instrucciones y son a base de hacer llamadas a bibliotecas.

Como no tienes una introduccion no te recomendaria leer manuales de intel o amd, hay uno de Ray Seyfarth que es de 64 bits, pero es para linux y mac os x, no importa simplemente usan interrupciones de esos S.O., pero recuerda que el ASM es igual que en Windows ya que son de la misma arquitectura, bueno tambien puedes leer alguno viejo, no tiene porque ser de 64 bits.

En Amazon lo tienes.

Citar
Introduction to 64 Bit Assembly Programming for Linux and OS X: Third Edition - for Linux and OS X

Y sobretodo leer algunos codes estilo Hello world para practicar, y si tienes preguntas aqui esta el foro.

Un saludo.