Autor
|
Tema: Abril Negro 2008: Taller de ASM (Leído 74,272 veces)
|
~~
|
Veo q has hecho progresos ^^ Si quieres dejar el código un poco más legible te recomiendo el uso de invoke para poder llamar a las apis como se haria en un lenguaje de alto nivel. Por ejemplo esto: push 0 push 0 push archivo push web push 0 call [Descargar]
Te quedaría así: invoke Descargar, 0, web, archivo, 0, 0
Mucho más legible Salu2
|
|
|
En línea
|
|
|
|
krackwar
Desconectado
Mensajes: 900
|
Veo q has hecho progresos ^^ Si quieres dejar el código un poco más legible te recomiendo el uso de invoke para poder llamar a las apis como se haria en un lenguaje de alto nivel. Por ejemplo esto: push 0 push 0 push archivo push web push 0 call [Descargar]
Te quedaría así: invoke Descargar, 0, web, archivo, 0, 0
Mucho más legible Salu2 gracias por el consejo , pero lo hice asi por que no me quedaba bien claro lo de los push entonces para probar los hice de esta forma. s4lu2!
|
|
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
krackwar
Desconectado
Mensajes: 900
|
algo que me interesaria mucho saber es como se trabajo con archivos ,osea como en vb6 pongo: open "archivo " for bynary as #1 i asi puedo leer el archivo i luego ago un split para obtener informacion , osea lo que me interesa es como hacer un edit server pero que este en asm el "server"
|
|
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
~~
|
Pues usando el api como todo en asm Eso lo explicaré mas adelante, q no me das tiempo!! Puedes usar CreateFile para abrir el archivo deseado y a partir de aki tienes dos opciones: 1 - Usar ReadFile y WriteFile para escribir y leer el archivo 2 - Mapear el archivo con CreateFileMapping y MapViewOfFile Para obtener el tamaño del archivo usa GetFileSize y no se te olvide usar CloseHandle y UnmapViewOfFile. Salu3 E0N PD - Mirate el código de mi Small Joiner, que te será útil para lo que quieres hacer
|
|
|
En línea
|
|
|
|
krackwar
Desconectado
Mensajes: 900
|
Pues usando el api como todo en asm Eso lo explicaré mas adelante, q no me das tiempo!! Puedes usar CreateFile para abrir el archivo deseado y a partir de aki tienes dos opciones: 1 - Usar ReadFile y WriteFile para escribir y leer el archivo 2 - Mapear el archivo con CreateFileMapping y MapViewOfFile Para obtener el tamaño del archivo usa GetFileSize y no se te olvide usar CloseHandle y UnmapViewOfFile. Salu3 E0N PD - Mirate el código de mi Small Joiner, que te será útil para lo que quieres hacer GRaqcias por la respuesta lo e leido y creo que debo aprender un poquito mas antes de irme a ese nivel(Me tiene mal acostumbrado el vb),Bueno tambien e traducido codes i les dejo una musiquita con el Beep del pc que hizo lympex en vb6 i yo lo pase a asm: include 'C:\Documents and Settings\krackwar\Escritorio\fasmw16726\INCLUDE\WIN32a.inc' format PE GUI ; Tipo de ejecutable push 95 push 300 call [Beep] push 50 call[dormir] push 95 push 300 call [Beep] push 100 call[dormir] push 95 push 300 call [Beep] push 250 push 400 call [Beep] push 100 call[dormir] push 250 push 400 call [Beep] push 100 call[dormir] push 250 push 400 call [Beep] push 100 call[dormir] push 100 call[dormir] push 600 push 600 call [Beep] push 160 push 500 call[Beep] push 160 push 400 call[Beep] push 100 call[dormir] push 160 push 400 call [Beep] push 50 call[dormir] push 160 push 400 call [Beep] push 200 push 500 call [Beep] push 50 call[dormir] push 160 push 400 call[Beep] push 225 push 375 call [Beep] push 100 call [dormir] push 700 push 540 call [Beep] push 100 call[dormir] push 275 push 450 call [Beep] push 75 push 375 call [Beep] push 50 call [dormir] push 650 push 400 call [Beep] push 0 call [terminar] data import library kernel,'KERNEL32.DLL',\ user,'USER32.DLL' import kernel,\ dormir , 'Sleep',\ terminar,'ExitProcess',\ Beep , 'Beep' end data
|
|
« Última modificación: 3 Mayo 2008, 04:49 am por krackwar »
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
elmeister
Desconectado
Mensajes: 43
|
krackwar, ese code está muy bien, se lo he enseñado a mi primo que esta haciendo segundo de ingenieria informática y se ha empezado a reir solo con verlo, despues casi acaba por tierra al enseñarselo ya compilado
|
|
|
En línea
|
|
|
|
elmeister
Desconectado
Mensajes: 43
|
Tengo un pequeño problema, estoy haciendo el tipico programa de broma tocahuevos, lo he compilado y va todo bien, al cerrar el mensaje vuelve a salir una y otra vez, y solo se puede cerrar con control alt suprimir, ahora lo que quiero hacer es que lleve un contador, diciendo cuantas veces ha cerrado ya la ventana (por recochineo más que nada), te dejo el código, y cuando puedas me dices como podria hacerlo, lo he hecho mas o menos como pensaba que sería include 'H:\archivos de programa\fasm\include\win32ax.inc' .code start: mov eax,1 invoke MessageBoxA,0,'Quieres que te toque los huevos?','Quieres?',MB_YESNO jmp putada ; si no pongo el JMP no pasa a la siguiente sección, por lo que no sale la ventanita y empieza a usar sobre el 90% de mi CPU putada: invoke MessageBoxA,0,eax'veces','te he tocado los huevos',0 add eax,1 jmp putada .end start
|
|
|
En línea
|
|
|
|
~~
|
Eso así obiamente no te va a funcionar nunca, tienes que usar el api wsprintf para concatenar texto con números. Ojito a esto: Note Unlike other Windows functions, wsprintf uses the C calling convention (_cdecl), rather than the Pascal calling convention. As a result, it is the responsibility of the calling process to pop arguments off the stack, and arguments are pushed on the stack from right to left. In C-language modules, the C compiler performs this task. Vamos, que tienes que cuadrar la pila tu, por que el api no lo hace por ti. El programa sería así: include 'H:\archivos de programa\fasm\include\win32ax.inc' .data veces db ' veces',0 texto dd 0 .code start: invoke MessageBoxA,0,'Quieres que te toque los huevos?','Quieres?',0 mov ebx, 1 ; No uses eax como contdor porque cambia tras llamar a un api :P putada: invoke LocalAlloc, LPTR, 100 mov [texto], eax push veces push ebx invoke wsprintf, [texto], '%d%s' add esp, 16 invoke MessageBox, 0, [texto], 'te he tocado los huevos', 0 invoke LocalFree, [texto] add ebx,1 jmp putada .end start
Hechale un ojo con el debugger para ver como el api no restaura la pila y por que hay que poner ese add esp,16 Salu2
|
|
|
En línea
|
|
|
|
krackwar
Desconectado
Mensajes: 900
|
e estado viendo codes de troyanos en asm i todos estan compilados con masm i e visto el code de eon de un manual que esta en C i no e logrado saber como se conecta¿alguien me podria dar un code de un troyano en fasm? o ¿orientarme como hacerlo?
|
|
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
|
|
|