Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - _Enko

#371
ASM / Re: urldownloadtofile FASM
20 Febrero 2012, 20:54 PM
Citargracias txavales!
De nada :)


Citar
Como si las, al menos dos, cabeceras no fueran suficientes fijate que faltando el library o el import da el mismo error ... ¿Es error al ensamblar o al enlazar?
Hola, no te entendí muy bien.

Por ahi me explique mal, win32ax.inc en fasm, es un include que trae macros complejas similares a las de masm. No hace falta hacer include de ninguna library ya que las trae incorporadas.

.end es una macro, y tiene esto en win32ax
Citar

macro .end label
{
  entry label

  section '.idata' import data readable writeable

    library kernel32,'KERNEL32.DLL',\
        user32,'USER32.DLL',\
        gdi32,'GDI32.DLL',\
        advapi32,'ADVAPI32.DLL',\
        comctl32,'COMCTL32.DLL',\
        comdlg32,'COMDLG32.DLL',\
        shell32,'SHELL32.DLL',\
        wsock32,'WSOCK32.DLL'

    import_kernel32
    import_user32
    import_gdi32
    import_advapi32
    import_comctl32
    import_comdlg32
    import_shell32
    import_wsock32

    all_api
}

Como ves, hace todos los include que pueda y ya crea la sección de importes. Por eso para usar el código que posteaste, lo que hay que hacer es usar win32a.inc que no tiene las macros complejas.
(win32ax.inc incluye win32a.inc)
Citar
¿Es error al ensamblar o al enlazar?
Seria un error del preprocesador en el caso. (la sección .import se estaria creando dos veces si se usa win32ax. Creo que se le podria dar otro nombre, pero no estoy seguro que sea valido tener dos secciones de importes.)

con "format pe", fasm crea directamente la ejecutable, no se gasta en producir el archivo objeto.
con "format coff", si crea el archivo objeto que luego se puede enlazar por ejemplo con el vc++.

#372
ASM / Re: urldownloadtofile FASM
20 Febrero 2012, 04:55 AM
estas usando las macros complejas, y no llevan incluidas igualmente el urlmon.dll

Tendras que agregar lo que puso Eternal Idol pero en vez de usar win32ax.inc, simplemente win32a.inc e incluir todo lo demas.


Código (asm) [Seleccionar]

format PE Console
entry start

include 'win32a.inc'

section '.data' data readable writeable


       url db 'http://www.google.es/robots.txt',0
src db 'robots.txt',0

section '.code' code readable executable
start:
push NULL
push url
push src
push 0
push NULL
call [URLDownloadToFile]

push 0
call [ExitProcess]
     


section '.idata' import data readable writeable

library kernel32,'kernel32.dll',\
user32,'user32.dll',\
urlmon,'urlmon.dll'

include 'api\kernel32.inc'
include 'api\user32.inc'
import urlmon,\
URLDownloadToFile,'URLDownloadToFileA'


una cosa, porque: "c:\\robots.txt"?
el codigo igual no me anduvo tal cual lo posteaste, pero creo que con una barra simple tendria que bastar.

Citar
Insertar Cita
Puff, por suerte no uso FASM ... todo esto en .data antes de .code:
ehem, ehem... proque por suerte?

En fasm se pueden poner los imports donde sea (en .data podrian ir), pero mayoria de las veces, prefieren crear una sección a parte para ellos. A los antivirus les gusta mas asi.

la misma ejecutable pero con una sección sola:
https://www.virustotal.com/file/93a73e35c0ea5015c3c4fc53f33cde3d62eb79c5a3b91bfbe195d1f4888a0faf/analysis/1329711094/
#373
ASM / Re: cast en asm
16 Febrero 2012, 18:01 PM
Hola, me parece que tienes un  error aqui:
Citar
 add ebx,[resultado]
es al reves.

add [resultado], ebx


Luego, resultado es un dword. MessageBox puede imprimir cadenas. Para eso tendrias que convertir de DWORD a STRING de alguna u otra manera.

Una opcion facil, es usar la api de windows, la funcion wsprintf.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms647550(v=vs.85).aspx
(se parece al printf de c)

Acordate que esta funcion no es STDCALL, despues de hacer el call, tienes que limpiar la pila de los parametros que hiciste push.

Código (asm) [Seleccionar]

.data
       resultado dd  0
       szInt db '%i',0
       str_resultado db 24 dup ?
       

.code
       start:
           mov [resultado], 7
           ;
           push [resultado]
           push szInt
           push str_resultado
           call [wsprintf]
           add esp, 12 ;wsprintf es cdecl, 3 parametros = 3 * 4bytes = 12.
           ;
           ;listo, ahora str_resultado es un puntero a una cadena.


Saludos.
#374
ASM / Re: [HLA] - Error de comprensión
11 Febrero 2012, 20:50 PM
Citar
Por lo que vi en internet, es de los mejores libros para aprender asm),
No, definitivamente no. Mejor revisa la sección de Libros y Entry Point de este subforo.

Demas decir que su sintaxis se aleja de cualquiera de los ensambladores BUENOS del mercado como masm, fasm, nasm (mh... tasm32?).

masm está hiper documentado y es el ensamblador mas usado para windows.
Si quieres programar para otros OS ademas de windows, fasm o masm.

Citar
(true o false).
ya creo que habia quedado que guarda 1 o 0.
Habria que depurar esa funcion, pero se me hace que es algo asi:

if var=1
   print("true")
elseif var=0
   print("false")
else
   exception
endif



Saludos.
#375
ASM / Re: [HLA] - Error de comprensión
10 Febrero 2012, 16:41 PM
Sinceramente, hasta ahí tenia alguna idea.

Pocas ganas de tratar de entender un lenguaje que es una mezcolanza entre Pascal, C y Asm.
No le veo utilidad. C con inline assembly me parece una opción mejor.
Que va, Pascal con Inline assembly me sigue pareciendo una  mejor alternativa.

Me imagino que stdout.put debe ser parte de una libreria interna de hla, de manera que acepta solo 1 o 0 para booleanos, otro valor y emite un error.
Si quieres saltearte eso, usa el stdout de la winapi o de c runtime que es mas sencillo.
#376
ASM / Re: [HLA] - Error de comprensión
8 Febrero 2012, 17:49 PM
El bit es lo unico que puede tener como valor 1 o 0.
Un byte almacena 8 bits en x86. Por eso puede tener valores de 0 a 255.

Normalmente, si es 0 es FALSE.
Si es cualquier otro valor, TRUE. Es decir, TRUE == not FALSE.
( por ejemplo 5 seria true)


Esta muy sacado de contexto, habria que leer el texto completo para ver a que se referia.
#377
esto es del 2008
http://www.youtube.com/watch?v=X034R3yzDhw
Citar
Subido por tonyb486 el 24/08/2008
Adam Savage at The Last Hope explaining why there will never be RFID on Mythbusters.
#378
para saltearse ese "demonio" no hay nada mejor que malware santificado.
#379
Desde que se enventó la cadena de montaje la industria paso a ser bastante "esclavizadora".

No me parece que tengan asi a personas, pero es asi como funciona  y no hay signos de que algo cambie por un buen tiempo.
#380
Citar
Realmente no entiendo muy bien lo que quieres decir, pero me suena a    QUE SE JODAN TODOS ESOS CAPULLOS, MIENTRAS YO PUEDA COMPRARME UN IPHONE MAS BARATO, POR MI COMO SI SE MUEREN...
No, no me referia a eso. Sino que si lo hacen, el costo va aumentar y ya no sería competente para el mercado. O acaso cuando compras algo  te fijas si los que lo fabricaron trabajaron en condiciones dignas o te fijas relacion precio calidad?
Apple  no va a reducir su ganancia para pagar mas a los trabajadores, aumentarian el precio y lo transportarian a los consumidores.

Tu decide:
a)iphone 4s  libre 900 u$d fabricado por trabajadores esclavizados.
b)iphone 4s libre 1200 u$d fabricado por trabajadores felices.

cual compras?