首页
社区
课程
招聘
汇编编程不能正确运行
发表于: 2010-3-19 11:11 4294

汇编编程不能正确运行

2010-3-19 11:11
4294
源代码如下:
运行后会打开无数的程序副本进程,如果直接运行副本,能正确运行,就是用原程序通过WinExec运行副本就会出错,请高手指点一下?
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
include advapi32.inc
includelib user32.lib
includelib kernel32.lib
includelib advapi32.lib
include shell32.inc
includelib shell32.lib
.data
szStr1 db "原程序执行完毕",0
szStr2 db "程序副本执行完毕",0
szFileName db "MyTest2010.exe",0
szCurPath db MAX_PATH dup (?)
szSysPath db MAX_PATH dup (?)
.code
_main proc
       

        invoke GetCurrentDirectory,sizeof szCurPath,offset szCurPath
        invoke GetSystemDirectory,offset szSysPath,sizeof  szSysPath
        mov ecx,eax
        lea esi, szSysPath
        lea edi, szCurPath
        repe cmpsb
       
        .if ecx==0
                invoke MessageBox,NULL,offset szStr2,offset szStr2,MB_OK
        .else
                invoke lstrlen,offset szSysPath
                lea esi,szSysPath
                add esi,eax
                .if byte ptr [esi-1]!="\"
                         mov byte ptr [esi],"\"
                         mov byte ptr [esi+1],0
                 .endif
                invoke lstrcat,offset szSysPath,offset szFileName
                invoke GetModuleFileName,NULL,offset szCurPath,sizeof szCurPath
                invoke CopyFile,offset szCurPath,offset szSysPath,FALSE
                invoke WinExec,offset szSysPath,SW_SHOWNORMAL
                invoke MessageBox,NULL,offset szStr1,offset szStr1,MB_OK
        .endif
       
        ret

_main endp
start:
call _main
invoke ExitProcess,NULL
end start

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
请问"副本"是什么意思?
2010-3-19 12:04
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
居心叵测!
2010-3-19 12:44
0
雪    币: 218
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
只是研究,还请指点。所谓副本就是copy后的产物
2010-3-20 21:49
0
游客
登录 | 注册 方可回帖
返回
//