Bueno estoy desarrollando una aplicacion que envenena el Archivo Host de Windows
Primero obtuve la Ruta de Windows y despues puse la de Host
Mi problema esque quiero juntar ambas para quedarme con la ruta,y con el MOV se me borra la anterior,he probado con ADD pero Crashea...

Código: Seleccionar todo

include 'E:\FASM\FASMP\INCLUDE\WIN32AX.INC'
.data
WindowsCarp dd ?
host db '\system32\drivers\etc\host',0

.code
start:
        invoke LocalAlloc, LPTR, 11
        mov [WindowsCarp], eax
        invoke GetWindowsDirectory, [WindowsCarp], 11
        invoke MessageBox,0,[WindowsCarp],'Here',MB_OK
        mov [WindowsCarp],host
        invoke MessageBox,0,[WindowsCarp],'Here',MB_OK
        invoke ExitProcess,0

.end start        
Salu2
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
p0is0n-123 escribió:Bueno estoy desarrollando una aplicacion que envenena el Archivo Host de Windows
Primero obtuve la Ruta de Windows y despues puse la de Host
Mi problema esque quiero juntar ambas para quedarme con la ruta,y con el MOV se me borra la anterior,he probado con ADD pero Crashea...

Código: Seleccionar todo

include 'E:\FASM\FASMP\INCLUDE\WIN32AX.INC'
.data
WindowsCarp dd ?
host db '\system32\drivers\etc\host',0

.code
start:
        invoke LocalAlloc, LPTR, 11
        mov [WindowsCarp], eax
        invoke GetWindowsDirectory, [WindowsCarp], 11
        invoke MessageBox,0,[WindowsCarp],'Here',MB_OK
        mov [WindowsCarp],host
        invoke MessageBox,0,[WindowsCarp],'Here',MB_OK
        invoke ExitProcess,0

.end start        
Salu2
tus errors son simple reservas memoria en vano, cuando obtienes el directorio de windows lo guardas en la variable windowscarp la borras con la variable host tienes que unir los string no asignarle valor para que entiendas en c estarias haciendo asi

buffer='windows'; le asignas el valor windows a la variable
buffer='blbla\host';borras lo que tenia para asignarle este valor

te dejo un ejemplo en masm es facil pasar a fasm

Código: Seleccionar todo

.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib user32.lib
includelib kernel32.lib

.data
host db '\drivers\etc\host',0
buffer db 50 dup (?)
ok db 'ok',0
.code
start:
invoke GetSystemDirectory,addr buffer,sizeof buffer
invoke MessageBox,NULL,addr buffer,addr ok,MB_OK
invoke lstrcat,addr buffer,addr host
invoke MessageBox,NULL,addr buffer,addr ok,MB_OK
invoke ExitProcess,0
end start
Imagen
en el msn ♣Conejo escribió:[26/03/11 10:39:13] Su firma contiene 281 caracteres. El máximo número de caracteres permitidos es 200.
menos mal que soy admin
Muchissimas Gracias FzF....De verdad te debo un favor enormissimo
Edito: No hubo Mucho que traducir,solo un par de palabras
En FASM

Código: Seleccionar todo

include 'C:\FASM\INCLUDE\WIN32AX.INC'
.data
host db '\drivers\etc\host',0
buffer db 50 dup (?)
ok db 'OK',0
.code
start:
invoke GetSystemDirectory,addr buffer, buffer
invoke MessageBox,NULL,addr buffer,addr ok,MB_OK
invoke lstrcat,addr buffer,addr host
invoke MessageBox,0,addr buffer,addr ok,MB_OK
invoke ExitProcess,0
.end start
Salu2
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Cerrado

Volver a “Asm”