能力值:
( LV2,RANK:10 )
|
-
-
2 楼
invoke GetUserName,addr szUsername,esp
这个是个函数调用啊,他的返回值是在EAX里 前面PUSH EAX和后面的POP EAX之是保存和恢复
|
能力值:
(RANK:410 )
|
-
-
3 楼
GetUserName的第二个参数是第一个参数缓冲区的大小,你为什么要使用esp寄存作为函数的第二个参数???
|
能力值:
(RANK:170 )
|
-
-
4 楼
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\advapi32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\advapi32.lib
includelib \masm32\lib\user32.lib
.data?
szUsername db 256 dup(?)
dwLen dd ?
.code
start:
mov eax,sizeof szUsername
mov dwLen, eax
invoke GetUserName,addr szUsername,addr dwLen
invoke MessageBox,NULL,addr szUsername,addr szUsername,MB_OK
ret
end start
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
-- --如果是单纯的返回值,我的第一段程序应该可以吧?毕竟没有对eax的任何操作。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
--。。--
为了保险起见,我当时不清楚是不是我的变量设置的有问题,用esp会比较安全一点。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
esp怎么会安全 那么多寄存器, 你就挑了一个不能用的
|
能力值:
(RANK:10 )
|
-
-
8 楼
thanks Aker
|
|
|