CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  硬件/系统

急:Hook Windows API的问题

楼主stoneyrh()2005-07-19 17:42:52 在 VC/MFC / 硬件/系统 提问

最近做一个文件保护的小东东,我用Hook   API实现,现在遇到一个问题是有一些API无法Hook,比如Shell32.dll里的SHFileOperation,据说这个dll在系统启动的时候被保护了的,但是在网上查到很多商业源码都可以做到,不知道哪位大虾知道他们是怎么实现的呢?  
  另一个更为奇怪的问题是,我可以Hook到Ole32.dll里的OleSetClipboardData,但是却Hook不到其它的函数如StgOpenStorage,万望各位大虾不吝赐教。 问题点数:200、回复次数:14Top

1 楼orbit(走了走了)回复于 2005-07-19 18:31:59 得分 80

对于SHFileOperation,分别试试SHFileOperationW和SHFileOperationA,分别时unicode版本和ansi版本  
   
  对于StgOpenStorage,试试StgOpenStorageA  
   
  在windows   2000/NT下试试hook   StgOpenStorageExTop

2 楼tide(水手辛巴德)回复于 2005-07-19 18:48:46 得分 10

-_-!Top

3 楼domustdohz(迷茫)回复于 2005-07-19 18:50:46 得分 10

关注Top

4 楼AntonlioX(做人要厚道)回复于 2005-07-19 19:04:17 得分 10

帮你顶Top

5 楼stoneyrh()回复于 2005-07-19 19:18:01 得分 0

SHFileOperation的两个版本都在测试,没有一个有效的。StgOpenStorageA还没有试过,StgOpenStorageEx也在测试,也没有作用,不知道原因。Top

6 楼ForTopLevel(Beahead)回复于 2005-07-19 20:22:41 得分 10

是找不到这个函数的入口地址呢,还是改不了,改了之后报错还是又被自动的改回来?dll都不会加载到系统内核的,照你这样说,可能一般的文件读写函数无法访问,你需要更底层的访问函数去修改。Top

7 楼stoneyrh()回复于 2005-07-19 20:50:04 得分 0

能找到入口地址,应该是改不了,也没有报错。一切都很正切,但是进不了我的函数。其它的比如CreateFileA,CreateFileW等在Kernel32.dll里的函数都工作得很好。Shell32.dll和Ole32.dll里的都有点问题,不明白为什么。Top

8 楼stoneyrh()回复于 2005-07-19 23:07:14 得分 0

现在发现一新情况:StgOpenStorage已经勾上,大概其它的也应该勾上了,这是我在打开其它的文件的时候发现的。但是对Explorer.exe却无效。我用SoftICE检测到,当在文件浏览器里剪切->复制文件时,肯定要调用StgOpenStorage,但是却进不了我的函数,对SHFileOperation*也是如此。但是当我勾上API以后,打开VC的.dsw文件时,这时就显示已经勾上StgOpenStorage了。但是现在对Explorer.exe的拦截非常重要,我觉得这是一个非常奇怪的进程。不知道MS对它作了什么特殊处理。Top

9 楼stoneyrh()回复于 2005-07-20 10:06:37 得分 0

怎么没人关注了呢?大家帮帮忙呀!!!Top

10 楼huqian2003(huqian2003)回复于 2005-07-20 11:57:54 得分 10

顶一下Top

11 楼ForTopLevel(Beahead)回复于 2005-07-20 13:47:41 得分 50

你确定Explorer进程里Shell32.dll中的StgOpenStorage等函数地址被你修改了?如果你修改了还是不能转到自己的地址去执行,那只能说明MS把这个地址恢复了。Top

12 楼stoneyrh()回复于 2005-07-21 16:14:39 得分 0

这个是在Ole32.dll中的。我检查到对Explorer进程的修改,大部份失败。Top

13 楼lianggj(aaaa)回复于 2005-09-09 17:03:06 得分 10

我也想知道怎么实现对文件操作的拦截啊,也就是拦截对文件操作的所有apiTop

14 楼dbaren(王)回复于 2005-09-11 21:32:33 得分 10

关注Top

相关问题

  • "Hook API"
  • 请教api hook(api hook by LiuYang)!
  • Api Hook 问题!!!!!!!!!!!!!!!!!!!!!!!!
  • api hook 的问题
  • API HOOK delphi转C++
  • HOOK API的问题
  • API HOOK 问题 很急阿 帮帮忙! 只有50 分了
  • !!挑战windows API大师:怎样在控件里实现Subclass和hook的引用?
  • hook api的问题 急急急急急急急急急急急急急急急急急急急急急急急急急急
  • 【急问SOS!!!】我写了一个API HOOK。被HOOK的函数是SetWindowHookExA。运行后能正常HOOK住这个API。但是后来... ..

关键词

  • 函数
  • 文件
  • 修改
  • 版本
  • api
  • dll
  • shell
  • stgopenstorage
  • shfileoperation
  • hook

得分解答快速导航

  • 帖主:stoneyrh
  • orbit
  • tide
  • domustdohz
  • AntonlioX
  • ForTopLevel
  • huqian2003
  • ForTopLevel
  • lianggj
  • dbaren

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo