Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: AleX Inc. en 4 Septiembre 2009, 18:45 pm



Título: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 4 Septiembre 2009, 18:45 pm
Hola foro, pues recien en mi tiempo libre he estado leyendo este cursito de ASM http://foro.elhacker.net/asm/tutoriales_videoturiales_de_masm_radmasm-t263579.0.html
Ya logre llegar a la parte de creacion de ventanas hijas pero se me ocurrio que podria hacer que un boton redirija hacia alguna web "x" en internet asi como para que visite esta web o cualquier otra.
Espero no molestar pero la verdad tengo esa inquietud, gracias de antemano.


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: YST en 4 Septiembre 2009, 19:53 pm
Mediante ShellExecute (http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx) podrias abrir una web con el navegador :P


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: AleX Inc. en 8 Septiembre 2009, 03:30 am
Gracias, en cuanto la escuela me de algo de tiempo lo pruebo y comento. :D


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: AleX Inc. en 22 Septiembre 2009, 02:50 am
De nuevo yo con otra duda.
Y es posible ejecutar comandos de ms-dos usando RadASM + MASM?
tengo algunas ideas y si eso fuera posible seria genial para mi, gracias de antemano.


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: YST en 22 Septiembre 2009, 03:44 am
Msdos ? te refieres a interrupciones ?a comandos de batch ? o a que ? :P


Para comandos de batch podes usar pipes que te permitirian leer lo que deuvuelve el comando :P


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: Eternal Idol en 22 Septiembre 2009, 10:57 am
Usando CreateProcess, el primer parametro es (PATH COMPLETO pese a lo que dice la MSDN) cmd.exe y el segundo /c + el nombre del archivo batch (o comando).


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: AleX Inc. en 22 Septiembre 2009, 22:50 pm
Si me refierfo a la consola "cmd".
Lo que pasa es que me eh encontrado con este tipo de scripts que usan la consola y la verdad me parece algo muy util.
http://dc102.4shared.com/download/46342775/5519d19d/mata_virus_amvo_usb.vbs?tsid=20090922-163156-b8dc9c7f
Y si lograra controlar la consola usando instrucciones en ASM podria serme muy util en la creacion de programas.
Supongamos que quiero ejecutar el comando "makedir" alguien podria decirme como hacerlo en ASM?
Nesesito declarar alguna instruccion en especial y despues colocar los comandos a ejecutar? o como?
Supongamos:
Ejecuton la plantilla para una caja de dialogo y creo un boton, pero no se que agregar para ejecutar dicho comando, en .vbs es muy sencillo pero aqui no tengo la mas minima idea, podria alguien explicarmelo en este codigo?
Código:
.elseif  eax==WM_COMMAND
mov edx,wParam
.if edx==Boton1
?????????????
Espero me expliquen por favor.
thanks


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: Eternal Idol en 22 Septiembre 2009, 23:36 pm
CreateProcess (http://www.google.com/url?sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms682425(VS.85).aspx&ei=Y0O5SpfbDcWMjAf7kunrBQ&usg=AFQjCNGoOJ6ndBHvRHNNsrf-8pfd9R_ZBw) necesitas, un vb script lo podes ejecutar igual, en lugar de cmd necesitas cscript o wscript y el nombre del script.


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: AleX Inc. en 23 Septiembre 2009, 03:55 am
La verdad no entendi mucho (Estoy pesimo en ingles), creo que si me explicaras un ejemplo entenderia mejor, solo con un comando y ya para borrar mis dudas.


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: Eternal Idol en 23 Septiembre 2009, 07:59 am
Ahi mismo sobre el final hay un ejemplo, no es un comando, es una API de Windows y para poder usarla tenes que comprender los parametros que necesita.


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: AleX Inc. en 14 Octubre 2009, 03:24 am
Gracias, otra dudita.
Que instrucciones nesecito para realizar multiplicaciones y divisiones?


Título: Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet?
Publicado por: YST en 14 Octubre 2009, 06:50 am
Para multiplicar

Imul y Mul

para dividir

idiv y div :P


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 18 Octubre 2009, 03:23 am
La de "imul" me funciono pero no la de "div" ni "idiv" no entiendo porque, solo estaaba probando y escribi:
idiv eax,ebx
claro esta que ya habia moido valores a esos registros pero no me deja compilar.
Que sera??


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: YST en 18 Octubre 2009, 03:33 am
Código
  1. xor edx,edx
  2. mov eax,9 ;Le pasamos el dividendo
  3. mov edi,3 ;Le pasamos el divisor
  4. idiv edi  ;Dividimos pasandole edi como dividendo
  5. ;En eax se devuelve el valor y en edx el resto  
  6.  


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 18 Octubre 2009, 04:07 am
Gracias, funciono correctamente.
Ahora tengo la duda de porque me salen mal las sumas.
estuve diseñando una calculadora para que sume y todo bien pero al momento de la suma toma los valores como si 1=49 osea si pongo 1+1=98.
Podrias revisar que es lo incorrecto por favor.
ASM:
Código:
.elseif eax==WM_COMMAND
mov edx,wParam
.if edx==boton1
invoke GetDlgItemText,hWin,edit1,addr valor1,100
invoke GetDlgItemText,hWin,edit2,addr valor2,100
mov eax,valor1
mov ebx,valor2
add eax,ebx
invoke dwtoa,eax,addr resultado
invoke MessageBox,hWin,addr resultado,addr tittlemsj,MB_OK

INC
Código:
.data

msgtittle db "Salir?",0
msgtexto db "Desea salir?",0
tittlemsj db "SUMA",0

.data?(?)
resultado dd ?
valor1 dd ?
valor2 dd ?


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: YST en 18 Octubre 2009, 05:02 am
Tienes que transformar el ASCII ;)

Mira esta función
Código
  1. ;Funcion que pasa ASCII a un DWORD :P
  2. proc StrToInt uses ebx esi, lpStr
  3.        mov     esi,[lpStr]
  4.        mov     ecx,10
  5.        xor     edx,edx
  6. @StrToIntLoop:
  7.        lodsb
  8.        test    al,al
  9.        jz      @StrToIntEnd
  10.        sub     al,'0'
  11.        xor     ebx,ebx
  12.        mov     bl,al
  13.        lea     eax,[edx*2]
  14.        lea     eax,[eax+edx*8]
  15.        lea     edx,[eax+ebx]
  16.        dec     ecx
  17.        jnz     @StrToIntLoop
  18. @StrToIntEnd:
  19.        mov     eax,edx
  20.        ret
  21. endp                

También podrias usar la api GetDlgItemInt para obtener el numero directamente :P

http://msdn.microsoft.com/en-us/library/ms645485%28VS.85%29.aspx

PD: Algo interesante para ti

http://www.ascii.cl/es/


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 18 Octubre 2009, 07:00 am
Ohh, gracias.
La verdad un minuto despues de postear recorde que talvez ocuaba otra instruccion para hacer la convrsion de ASCII a DECIMAL pero antes de probar preferi esperar una respuesta, y creo que estaba en lo correcto, gracias, ahora intento y edito el mensaje para mostrar resultados:-)

EDITO:
Cambie la funcion "GetDlgItemText" por "GetDlgItemInt" pero ahora la me suma cada campo "edit" como "1", osea si escribo en un campo sin importar el numero me muestra la unidad como resultado y si escribo en los dos campos me muestra el numero "2".

Alguien sabe como usar la funcion "CreateProcces"?
lo intente pero no me funciono, me aparece esto en la informacion:
"CreateProcess,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDriectory,lpStartupInfo,lpProcessInformation"
alguien podria explicarme con un ejemplo por favor.

Disculpen tantas molestias.


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: Eternal Idol en 18 Octubre 2009, 22:03 pm
En la MSDN (http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx) se explica como usar esa funcion y hay codigo de ejemplo, sino Googlea.


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: YST en 19 Octubre 2009, 06:15 am
Ejemplo del uso de CreateProcessA
Código
  1. invoke CreateThread , 0, 0,Direccion de la funcion,Parametro para pasar a la función(alternativo),0 , 0;Creamos el hilo para descargar
  2.  
¿Podrias poner el codigo ? para ver que esta mal que todavia no soy adivino :xD


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 20 Octubre 2009, 04:18 am
Lo hice simple.
solo escribi asi.:
invoke CreateProcces,0,0,addr Ruta,0,0,0
Solo invoke la ruta, sabia que algo andaba mal pero no estoy seguro.


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: Eternal Idol en 20 Octubre 2009, 08:01 am
Esta mal, mira el enlace que deje, en los primeros parametros se le puede pasar el programa en cuestion.


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: AleX Inc. en 5 Julio 2010, 09:40 am
Me ausente un poco por eso de la escuela y esas cosas.
ahora bien.
El problema con la funcion "CreateProcces" y con coger los numeros de un campo edit fueron solucionados :)
Ahora estuve buscando una funcion para comprobar si un archivo existe en una ruta espeicifica, pero por desgracia no la encuentro,
Si la conocen me podrian dar el nombre porfavor.
PD: No consulte el MSDN porque no lo puedo ver con mi conexión a internet :(


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: bizco en 5 Julio 2010, 11:45 am
CreateFile


Título: Re: [DUDAS] Todas las dudas sobre RadASD + MASM aqui
Publicado por: Eternal Idol en 5 Julio 2010, 11:58 am
GetFileAttributes (http://msdn.microsoft.com/en-us/library/aa364944%28VS.85%29.aspx).