• Juntar La Ruta [ASM]

 #198421  por p0is0n-123
 28 Jun 2010, 15:09
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: [ Debe registrarse para ver este enlace ]
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
 #198437  por FroZenFeW
 28 Jun 2010, 15:55
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: [ Debe registrarse para ver este enlace ]
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: [ Debe registrarse para ver este enlace ]
.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
 #198554  por p0is0n-123
 28 Jun 2010, 20:14
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: [ Debe registrarse para ver este enlace ]
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