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
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