Autor
|
Tema: Abril Negro 2008: Taller de ASM (Leído 74,706 veces)
|
SheKeL_C$
Desconectado
Mensajes: 549
_-=[Sh3K3L_C$]=-_
|
NO HE DIXO NADA
|
|
« Última modificación: 15 Abril 2008, 15:42 pm por SheKeL_C$ »
|
En línea
|
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
pero como sería para llamar a una API sin el include?
mirate los ejemplos que trae fasm, permite definir tu mismo las funciones que usaras de varias formas.
|
|
|
En línea
|
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
A) Usar solamente el include de kernel32 ( en caso de fasm ( no lo uso pero masm o nasm si ) ).
B) Sacar el kernelbase ( en plan shellcode ).
hay mas, si vas a ir de listo lo minimo es que te informes. Y ahora llega un punto importante ( esto no lo ley en ningun sitio lo saque depurando un programa en C simplemente vi que registro cambiaba y es ecx )
lo cual quiere decir que en vez de eax responde en ecx.
o tu estas muy mal o cambia de depurador. la respuesta a una funcion se da en eax y GetProcAddress no es que sea otra cosa. PD: [fs:edx] ( use el registro fs en mi codigo como pista pero nadie lo pillo ). si, esque usar el PEB es nuevo ahora. (no tiene años ya). PD2: Respuesta a E0N no es que no seas pro es que es una ***** de codigo y tutorial , es un tuto de ensamblador muy basico no de desarrollo de virus. Lo de esp es para estabilizar la pila como te atreves a preguntar que para que es siendo el autor del tutorial? :S xDDDDDDDDD
deslumbranos con tus artes viricas que nos vamos a reir un rato. ROZOR eres un patan y un petardo de tio, igual que todos los codigos que pones en el foro que amontonas instrucciones y no sabes ni para que funcionan. push push push popa call [funcion] popa ret
no me funciona esto ¿alguien sabe pq?. Lo de esp es para estabilizar la pila como te atreves a preguntar que para que es siendo el autor del tutorial? yo quiero que lo contestes tu, maestro de las artes ocultas. PD: E0N no sera pro, pero tampoco va de pro. si hace una introduccion al lenguaje ensamblador esta en su derecho y mas ¿tu que ofreces? (aparte de las risas que nos pegamos a tu costa) solo intentas tirar a tierra el trabajo de los demas.
|
|
|
En línea
|
|
|
|
Flamareoon2000
Desconectado
Mensajes: 37
|
sigue con este estupendo manual EON mucho te lo vamos a agradecer mucho , ya lo estoy leyendo y practicando muchas gracias!!!
|
|
|
En línea
|
|
|
|
Distorsion
Desconectado
Mensajes: 238
15Hz ~ 20Hz
|
Ha palabras necias oidos sordos. Habre tu propio post no desvirtualices a los demas, ademas esta claro que la casa se empieza por los cimientos. Weno aqui una duda, se puede 'apañar' para que el segmento de datos ocupe lo justo y tambien estaria bien eliminar los DB 0 del final que ocupan mas que el codigo propio. Supongo que habra que modificar el PE indicando al compilador lo que queremos. Gracias por el manual tengo mi asm un poco oxidado jeje y solo habia programado en 16 bits. Un saludo.
|
|
|
En línea
|
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
lo de el tamaño extra se debe a los redondeos que se hacen. en el tutorial de ferchu se explica.
|
|
|
En línea
|
|
|
|
~~
|
@DistorsionSi, mira, por poner un ejemplo compila esto con el fasm: format PE GUI 4.0 include 'H:\archivos de programa\fasm\include\win32a.inc' invoke MessageBox,0,cuerpo, titulo,MB_OK invoke ExitProcess,0 cuerpo db 'Hola mundo', 0 titulo db ':P', 0 data import library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL' import kernel32,\ ExitProcess,'ExitProcess' import user32,\ MessageBox,'MessageBoxA' end data
Veras que solo se crea una sección en el ejecutable, la flat, q es la crea fasm por defecto cuando se estructura de esta manera el código Ahora haz esto: borras todos los bytes con un editor hexadecimal a partir del 0x2BC y cambias el RawSize de la sección por 0xBC. Con esto te kedará un archivo de 700 bytes Posiblemente se pueda reducir un poco mas el tamaño del ejecutable, pero de esta manera ya tienes la sección de "codigo" bien ajustadita
Respecto a lo de Rozor, ya lo hemos hablado por privado y me a pedido disculpas, parece q por fin ha entrad en razon, asi q si algun mod puede borrar todos los post q no estén relaccionados con el taller pues mejor. Salu2
|
|
|
En línea
|
|
|
|
elmeister
Desconectado
Mensajes: 43
|
E0N, tengo una duda, estaba trasteando con los ejemplos que trae el FASM, y modifiqué el BEER.ASM quedando así ; Beer - example of tiny (one section) Win32 program format PE GUI 4.0 include 'H:/Archivos de Programa/FASM/include/win32a.inc' ; no section defined - fasm will automatically create .flat section for both ; code and data, and set entry point at the beginning of this section invoke MessageBoxA,0,_message,_caption,MB_ICONQUESTION+MB_YESNO cmp eax,IDYES jne exit invoke mciSendString,_cmd_open,0,0,0 invoke mciSendString,_cmd_eject,0,0,0 invoke mciSendString,_cmd_close,0,0,0 invoke MessageBoxA,0,_aburrimiento, _aburres,MB_ICONQUESTION+MB_OK exit: invoke ExitProcess,0 _message db 'Te veo aburrido, quieres echar unas canastas?',0 _caption db 'Estás aburrido',0 _cmd_open db 'open cdaudio',0 _cmd_eject db 'set cdaudio door open',0 _cmd_close db 'close cdaudio',0 _aburrimiento db 'Hala! Haz un Triple!',0 _aburres db 'NBA',0 ; import data in the same section data import library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL',\ winmm,'WINMM.DLL' import kernel32,\ ExitProcess,'ExitProcess' import user32,\ MessageBoxA,'MessageBoxA' import winmm,\ mciSendString,'mciSendStringA' end data
Añadí un mensaje despues de que se abriese la bandeja del CD, mi duda es, como puedo cambiar el icono?, lo he compilado y funciona perfecto, pero no puedo cambiarlo (el código lo adjunta para mostrar como quedó y nada más, aunque solo he añadido y traducido, no he cambiado más)
|
|
|
En línea
|
|
|
|
~~
|
Fijate en los parametros del MessageBoxA. Si miras en la MSDN la descripcion de este api veras que para modificar el icono hay que cambiar el último parametro. http://msdn2.microsoft.com/en-us/library/ms645505(VS.85).aspx Por poner un ejemplo: include 'H:/Archivos de Programa/FASM/include/win32ax.inc' .code start: invoke MessageBox, 0, 'Error', 0, MB_ICONERROR invoke MessageBox, 0, 'Pregunta', '', MB_ICONQUESTION invoke MessageBox, 0, 'Warning', '', MB_ICONWARNING invoke MessageBox, 0, 'Información', '', MB_ICONINFORMATION
invoke ExitProcess, 0 .end start En la MSDN encontrarás prácticamente todo lo que necesites respecto a apis Salu2 E0N
|
|
|
En línea
|
|
|
|
elmeister
Desconectado
Mensajes: 43
|
no me refiero a eso, aunque tambien me viene bien, gracias, me refiero al icono del ejecutable
|
|
|
En línea
|
|
|
|
|
|