Página 1 de 1

Juntar La Ruta [ASM]

Publicado: 28 Jun 2010, 15:09
por p0is0n-123
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

Re: Juntar La Ruta [ASM]

Publicado: 28 Jun 2010, 15:55
por FroZenFeW
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

Re: Juntar La Ruta [ASM]

Publicado: 28 Jun 2010, 20:14
por p0is0n-123
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