首页
社区
课程
招聘
[求助]SetCurrentDirectory执行的问题
发表于: 2010-8-4 21:12 5283

[求助]SetCurrentDirectory执行的问题

2010-8-4 21:12
5283
要实现的功能(伪C代码):
  char chTemp[260];
  GetTempPathA(260, chTemp);
  SetCurrentDirectoryA(chTemp);

对应的汇编:
  sub esp, 0x104
  push esp
  push 0x104
  call Addr_GetTempPathA   //GetTempPathA的函数地址

  push esp
  call Addr_SetCurrentDirectoryA //SetCurrentDirectoryA函数地址

执行完后eax为0。SetCurrentDirectoryA执行失败;
如果改变0x104的值,比如减小为0x64,SetCurrentDirectoryA执行成功,eax为1。

虽然是个菜问题,但是实在是搞不懂,请哥哥们赐教!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有错误自然是先看GetLastError
2010-8-4 21:22
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个不是高级语言写的程序,添加一个GetLastError对于我已经写好的程序来说很困难。其实就是Temp文件夹路径存放在栈中,而且字符串长度设置为MAX_PATH时会出错。

难道就没有哪位帅哥知道么?

继续等待。
2010-8-5 08:20
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
OD调试
寄存器窗口里就有LastErr
2010-8-5 12:39
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
显示是NoAccess!
2010-8-5 16:46
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
6
GetTempPathA(260, chTemp);

对应的汇编:
  sub esp, 0x104
  push esp
  call Addr_GetTempPathA   //GetTempPathA的函数地址

少push了一个参数?
2010-8-5 22:44
0
雪    币: 128
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
对,忘写了.
2010-8-6 16:08
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嗯,我忘写了。但是程序中是正确的。继续期待有人解决
2010-8-6 18:35
0
游客
登录 | 注册 方可回帖
返回
//