Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: onemao   发起时间: 2015-02-02 09:38 上午   回复: 0

Print Search
帖子排序:    
   2015-02-02, 09:38 上午
shaojwa 离线,最后访问时间: 2015/3/31 2:32:37 onemao

发帖数前100位
注册: 2015-01-06
发 贴: 10
请教关于SHFileOperation操作没有重定向的问题
Reply Quote
今天调试NSIS安装文件时碰到一个问题,32位的安装程序在64位系统上跑(Win7 64 bit)
安装流程中,拷贝文件,将能将文件拷贝到 c:\windows\system32\drivers下。
卸载流程中,删除文件时却无法删除该目录下的特定文件,而是删除c:\windows\syswow64\drivers下的文件。
初步看起来,应该是文件系统重定向的问题。

调试发现,删除文件时,调用DeleteFileA API。
而拷贝文件时调用的是 SHFileOperation,然后调用CreateFileA 接口。

首先想到一个问题:
(1)文件系统重定向机制的路径转换是在用户态还是内核态进行的?(我尝试找了些资料,单依然没有明确想法)

猜测安装文件在调用SHFileOperation之前,先关闭了文件系统重定向。设置断点:
bu kernel32!Wow64DisableFsRedirection
bu kernel32!Wow64RevertFsRedirection
发现没有相关操作,那么,如果有关闭重定向操作,应该是在SHFileOperation内进行。但是调试时也没有发现。

由此想请教第二个问题:
(2)SHFileOperation接口是如何避免文件系统重定向的?

请教各位,进一步验证的思路,或者提供相关信息,谢谢。

IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 请教关于SHFileOperation操作没有重定向的问题

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.