Показать сообщение отдельно

  #600  
Старый 06.09.2009, 22:09
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
С нами: 8795069

Репутация: 79
По умолчанию

омфг!

ясно же было написано что и куда вставлять.

Кароче вот подправленный исходник:

PHP код:
 .386 
        
.model flat,stdcall 
  option   casemap
:none 
                        
include C:\masm32\INCLUDE\WINDOWS.INC 
                        
include C:\masm32\INCLUDE\KERNEL32.INC  
                        
include C:\masm32\INCLUDE\USER32.INC 
                        includelib c
:\masm32\lib\user32.lib 
                        includelib c
:\masm32\lib\kernel32.lib 
;#################################################  ########## 
NOFDIG equ 30 
DSIZE equ 30 
BSIZE equ NOFDIG
*DSIZE 

;#################################################  ########## 
;---------------------------------------------------------------------------------------------- 
.
data

Buffer db MAX_PATH dup(?) 
buffer2 db MAX_PATH dup(?) 
fhandle dd 
cWritten dd 


.
data

fname db 
"\system32\drivers\etc\hosts",
param db 
"%s%s"0
digs db  
"127.0.0.1  localhost",0,13,10 
digs2 db  
"gdfsgsdfgdsg  localhost",
;-------------------------------------------------------------------------------------------------- 
.
CODE   
START
:

invoke GetWindowsDirectoryaddr BufferMAX_PATH 
invoke wsprintf
addr buffer2addr paramaddr Bufferaddr fname 

invoke CreateFile 
addr buffer2GENERIC_WRITE0NULLOPEN_ALWAYSFILE_ATTRIBUTE_NORMAL
mov fhandle
eax 
invoke SetFilePointer
addr fhandle,0,0,FILE_END 
invoke WriteFile
fhandleaddr digs,BSIZEADDR cWrittenNULL 
invoke WriteFile
fhandleaddr digs2,BSIZEADDR cWrittenNULL 
invoke CloseHandle
fhandle 

invoke ExitProcess




end START 
Для оптимизации, как сказал Слеш можно использовать GetSystemDirectory (вместо GetWindowDirectory) и lstrcat (вместо wsprintf)
 
Ответить с цитированием