首页
社区
课程
招聘
怎么用汇编调用CreateProcessA函数?
发表于: 2007-1-4 07:29 6064

怎么用汇编调用CreateProcessA函数?

2007-1-4 07:29
6064
可以通过GetStartupInfoA来获得Startupinfo,我看到代码
lea eax,[ebp-44]
push eax
call GetStartupInfoA
这个ebp-44怎么来的
还有我自己写的怎么没有用
如果我不用getstartupinfo我应该怎么用汇编创建进程?
谢谢!

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
[ebp-44]是子函数的局部变量,那个局部变量是STARTUPINFO类型的变量。在汇编中你可以这样写:
LOCAL sui:STARTUPINFO
invoke GetStartupInfo,ADDR sui

关于CreateProcess函数的使用,你可以参考Iczelion的汇编教程的《第十四课 进程》那一篇。
2007-1-4 09:19
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我的意思是直接用汇编写 不是用masm在编译,所以能不能给个例子啊?
2007-1-5 00:54
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
add esp,-44h
lea eax,[esp]
push eax ; 记住这个eax的地址值,这个地址值是STARTUPINFO结构的首地址,以便在CreateProcess中使用。
call GetStartupInfoA
2007-1-5 09:36
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
5
.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

.data
szFileName db 'C:\windows\system32\ping.exe',0
szCmdLine  db 'ping www.163.com',0
.data?
stStartUp        STARTUPINFO                <?>
stProcInfo        PROCESS_INFORMATION        <?>
.code
start:
invoke        GetStartupInfo,addr stStartUp
invoke        CreateProcess,addr szFileName,addr szCmdLine,NULL,NULL,NULL,\
                        NORMAL_PRIORITY_CLASS,NULL,NULL,addr stStartUp,addr stProcInfo
invoke ExitProcess,NULL
end start
2007-1-5 10:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哦,我也试试验证下
2007-1-8 16:10
0
游客
登录 | 注册 方可回帖
返回
//