首页
社区
课程
招聘
[求助]如何才能在我的程序中编译另一个asm文件?
发表于: 2008-5-8 22:53 5056

[求助]如何才能在我的程序中编译另一个asm文件?

2008-5-8 22:53
5056
我在我的程序中生成了另一个asm文件
然后我想在我的程序中编译它,所以用了一个Makefile3
然后在程序中创建新的进程,用nmake命令编译它,但是每次都有错误
代码如下:
	invoke	SetCurrentDirectory,CTXT("C:\Temp\Tls")
	invoke	CreateProcess,NULL, CTXT("nmake -f Makefile3"),NULL, NULL, FALSE, 0, NULL, NULL, addr @si, addr @pi


因为我手动试了一下,如果当前目录为C:\
我用如下命令编译: nmake -f c:\Temp\Tls\Makefile3的话,总是提示“不知道如何生成temp.obj
但当手动进到c:\Temp\Tls目录再用nmake命令的话,则一切正常了

所以我在程序中先把当前目录设为C:\Temp\Tls,然后再用nmake命令
但是如果这样的话,每次程序执行到这儿都有问题

提示的错误是:
0x7c922128指令引用的"0x0000009c"内存。该内存不能为"read"。

用OD打开之后,发现执行到0x7c922128时候,栈中的返回地址返回到memmove中,但执行几次之后,就会出现调试器无法处理异常,然后程序终止了~~~~

不知道应该如何解决??

3Q!!!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
试试直接用masm加参数编译呢
2008-5-8 23:28
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
试了,同样有错误~~~
我不是用的CreateProcess
参数传的ml和link

但是错误是相同的~~~
2008-5-8 23:37
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
对了,我用的两个CreateProcess,一个用来编译,一个用来链接~
2008-5-8 23:38
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
晕死, 终于找到原因了…………
在同一个地方拌倒了N次了~~~~
还是因为@si没有初始化的原因,出了好几次问题,都是这个问题…………
疯了………………
每次都忘……
2008-5-9 13:26
0
游客
登录 | 注册 方可回帖
返回
//