首页
社区
课程
招聘
请问一个调用WinExec函数的问题
2006-6-17 17:53 7939

请问一个调用WinExec函数的问题

2006-6-17 17:53
7939
我在OD中加了一个“工具”按钮,然后调用WinExec函数来打开常用的工具。出现了这样一个问题:如果先直接运行OD,然后加载被调试程序,就可以正常运行“工具”菜单中的工具,也就是能正常调用WinExec函数。但如果用“发送到”直接加载被调试程序后再点击“工具”菜单中的工具,就不能运行“工具”菜单中的工具,调用WinExec函数失败,返回值为2。请问这是什么原因造成的?(传入的两个参数都正确。)

PUSH 1
PUSH ECX //"..\Hex-Char\Hex-Char.EXE"
CALL DWORD PTR DS:[kernel32.WinExec]

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (6)
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-6-17 18:25
2
0
没试过,不清楚,试试用ShellExecute函数。
雪    币: 319
活跃值: (2349)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
csjwaman 24 2006-6-17 18:35
3
0
按理winexec函数调用程序最简单了,不应该会出错的。
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-6-17 18:55
4
0
//这个是你的错误代码解释:
#define ERROR_FILE_NOT_FOUND             2L

//
// MessageId: ERROR_PATH_NOT_FOUND
//
// MessageText:
//
//  The system cannot find the path specified.
//
你用的是相对路径吧?试试用绝对路径。如果还不行,那可能只有调试一下才能知道错误了。
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
RyoKou 1 2006-6-17 21:21
5
0
由于你使用的是相对路径,那么应该是GetCurrentDirectory的问题,GetCurrentDirectory是一个不安全的函数,某些情况下它返回的路径不一定是当前程序的路径。

解决方法是不要使用相对路径。。你可以用。
GetModuleFileName和PathRemoveFileSpec代替GetCurrentDirectory获取当前目录,然后再进一步拼接完整路径。

以上纯熟猜想。。欢迎尝试。。。
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
RyoKou 1 2006-6-17 21:27
6
0
由于你使用的是相对路径,那么应该是GetCurrentDirectory的问题,GetCurrentDirectory是一个不安全的函数,某些情况下它返回的路径不一定是当前程序的路径。

解决方法是不要使用相对路径。。你可以用。
GetModuleFileName和PathRemoveFileSpec代替GetCurrentDirectory获取当前目录,然后再进一步拼接完整路径。

以上纯熟猜想。。欢迎尝试。。。
雪    币: 319
活跃值: (2349)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
csjwaman 24 2006-6-18 20:20
7
0
谢谢各位指教!
游客
登录 | 注册 方可回帖
返回