Pages: [1]
|
 |
|
Author
|
Topic: 3 string into 1 variable (Read 6019 times)
|
akna
Guest
|
Hi!
My code does not work. What's wrong?
.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\include\user32.inc includelib \masm32\lib\user32.lib include \masm32\include\advapi32.inc includelib \masm32\lib\advapi32.lib
.data
dir db "c:\Documents and Settings\",0 file db "\log.txt",0 .data?
user_name db 64 DUP(?) b_size dd ?
.code start: invoke GetUserName,addr user_name,addr b_size invoke CreateFile,addr dir and user_name and file,GENERIC_READ,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL invoke ExitProcess,0 end start
|
|
|
Logged
|
|
|
|
dedndave
|
addr dir and user_name and file
make one variable with the complete path/file
AND is a logical operator
|
|
|
Logged
|
|
|
|
dedndave
|
also, instead of....
.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\include\user32.inc includelib \masm32\lib\user32.lib include \masm32\include\advapi32.inc includelib \masm32\lib\advapi32.lib
just use
include \masm32\include\masm32rt.inc
it takes care of all that stuff (including .486, model, case)
|
|
|
Logged
|
|
|
|
akna
Guest
|
thx, but how I know the 3 string to bind?
|
|
|
Logged
|
|
|
|
ramguru
Guest
|
'and' doesn't work with strings, it's only for bits you want to: 1) copy DIRECTORY_name to a big enough char buffer 2) append FILE_name to that buffer like: .data? recv_buf db 64 dup (?) .. invoke lstrcpy, ADDR recv_buf, ADDR dir invoke lstrcat, ADDR recv_buf, ADDR file invoke CreateFile,addr recv_buf...
|
|
|
Logged
|
|
|
|
dedndave
|
lol well - you need to take the pieces and make one string there are string concatonation macros in the masm32 files, but i would probably make my own little routine try to avoid using names like "dir" and "file" - bad habit
.DATA
PathStr db "c:\Documents and Settings\" PathCat db 80 dup(0) ;end of Path structure
FileNam db "\log.txt",0
.DATA?
user_name db 64 DUP(?) b_size dd ?
.CODE
. . . cld mov esi,offset user_name mov edi,offset PathCat
loop01: lodsb or al,al jz AddFil
stosb jmp loop01
AddFil: mov esi,offset FileNam
loop02: lodsb or al,al jz PnDone
stosb jmp loop02
PnDone: stosb . . .
|
|
|
Logged
|
|
|
|
akna
Guest
|
.data? recv_buf db 64 dup (?) .. invoke lstrcpy, ADDR recv_buf, ADDR dir invoke lstrcat, ADDR recv_buf, ADDR file invoke CreateFile,addr recv_buf...
Thanx man, it's work!
|
|
|
Logged
|
|
|
|
dedndave
|
my pleasure..... $50 please
|
|
|
Logged
|
|
|
|
|
Pages: [1]
|
|
|
 |