如何监视程序对文件系统的访问
2013-03-25 18:21
288 查看
偶尔我们会有这样的需要,想要知道某个程序,对文件系统做了哪些访问。读写了那些文件。
例如,部分程序不提供配置的导出功能,可是正常情况下,配置都是持久化在硬盘上,保留在本地的。如果我们能监视到,修改配置前后,某程序对磁盘中的那些文件进行了写操作,就能顺藤摸瓜找到他的配置文件,然后通过直接覆盖配置文件进行迁移配置的工作(假定这个程序的配置不做和用户名等挂钩的加密,也不放在注册表之类)
如果在window下,有FileRiver/Filemon这些工具,都很好用。
在Mac下稍微难找些,可以用FS_Spy(要钱的,虽然可以试用一段时间),然后也有个Filemon(http://deepit.ru/products/FileMon/dist/FileMon.zip 貌似是免费的,不过图标比较另类,不知道是不是个人作品,和windows下那个同名软件应该不是一个来源)。 前者相对好用些。
类Unix系统下,比如Mac的终端下,也可以使用fs_usage这个命令来看,比如 sudo fs_usage -f filesys 123 | grep xxx (123是程序的pid, xxx是要过滤出来显示的关键字)
不过用fs_usage命令的时候,要尤其注意要用ctrl+c(而不是ctrl+z)来结束,否则第二次运行的时候会提示已经有一个实例在运行了,如果遇到这样的情况,先在命令行top找出fs_usage的pid,然后kill(-3)之
通常如果用工具的话,大体都是类似的,要么是得事前设定好关键字,要么方便点,可以做事后的过滤。一般来说都得弄好过滤条件,不然基本会眼花缭乱看不清。
以用FileMon查找MacOS里XCode的快捷键保存位置为例:
1. 打开FileMon,会看到刷啦刷啦一堆,在Fiter中输入XCode回车,然后点个New Spy Session。就干净了。
2. 之后在XCode中操作添加一个新的快捷键配置文件。然后在FileMon中可以看到如下的图
就不难猜出路径了。如图选中的行。
3. 剩下的就是增增删删文件,开开关关XCode验证了。
P.S. windows下一些其他系统监视软件
1. windows注册表:Regmon
2. 网络:Proxifier
例如,部分程序不提供配置的导出功能,可是正常情况下,配置都是持久化在硬盘上,保留在本地的。如果我们能监视到,修改配置前后,某程序对磁盘中的那些文件进行了写操作,就能顺藤摸瓜找到他的配置文件,然后通过直接覆盖配置文件进行迁移配置的工作(假定这个程序的配置不做和用户名等挂钩的加密,也不放在注册表之类)
如果在window下,有FileRiver/Filemon这些工具,都很好用。
在Mac下稍微难找些,可以用FS_Spy(要钱的,虽然可以试用一段时间),然后也有个Filemon(http://deepit.ru/products/FileMon/dist/FileMon.zip 貌似是免费的,不过图标比较另类,不知道是不是个人作品,和windows下那个同名软件应该不是一个来源)。 前者相对好用些。
类Unix系统下,比如Mac的终端下,也可以使用fs_usage这个命令来看,比如 sudo fs_usage -f filesys 123 | grep xxx (123是程序的pid, xxx是要过滤出来显示的关键字)
不过用fs_usage命令的时候,要尤其注意要用ctrl+c(而不是ctrl+z)来结束,否则第二次运行的时候会提示已经有一个实例在运行了,如果遇到这样的情况,先在命令行top找出fs_usage的pid,然后kill(-3)之
通常如果用工具的话,大体都是类似的,要么是得事前设定好关键字,要么方便点,可以做事后的过滤。一般来说都得弄好过滤条件,不然基本会眼花缭乱看不清。
以用FileMon查找MacOS里XCode的快捷键保存位置为例:
1. 打开FileMon,会看到刷啦刷啦一堆,在Fiter中输入XCode回车,然后点个New Spy Session。就干净了。
2. 之后在XCode中操作添加一个新的快捷键配置文件。然后在FileMon中可以看到如下的图
就不难猜出路径了。如图选中的行。
3. 剩下的就是增增删删文件,开开关关XCode验证了。
P.S. windows下一些其他系统监视软件
1. windows注册表:Regmon
2. 网络:Proxifier
相关文章推荐
- C# WinForm 如何实现启动系统程序、文件或打开新网页?
- EOS非Portal模式下,如何开发一个用户登录验证程序,用户只有在登录验证通过后,方可访问系统。
- 第4阶段——制作根文件系统之分析init_post()如何启动第1个程序(1)
- 如何在64系统上监视32位模式下ASP.NET程序的性能
- 应对32位程序在64位系统上访问注册表和文件自动转向问题
- 如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- Android如何修改系统文件访问权限
- 如何用服务器文件管理系统记录共享文件的访问日志、记录共享文件复制、修改、删除和剪切等操作?
- Android如何修改系统文件访问权限
- Android获取系统文件目录,让程序访问其他程序的/data/data下的私有文件
- 如何让你的程序在没有root的情况下访问系统敏感数据
- (转载整理)程序安装流程及如何实现文件在系统后自动重启(windows)
- 在Linux系统下,如果程序中出现segment fault,如何可以让系统产生core dump文件?如何用gdb来跟踪出错的地方?
- 应对32位程序在64位系统上访问注册表和文件自动转向问题
- zynq开发中如何向文件系统里添加自己的程序
- Android应用程序如何访问/sys和/proc等目录下的系统文件
- 如何构建一个ERP系统(需求分析、系统架构、系统设计、系统编码、测试、交付程序及文文件)。
- 如何实现Windows系统Users组用户可修改IP属性和限制Users组用户访问文件的权限!
- 64位Win7下Cygwin32 gdb调试时程序文件系统访问函数失败
- android 如何内置/预置/预编译文件(执行程序,应用程序,apk, jar, lib 等任意文件)到系统中