小弟现在想编写下面的代码:
运行某个程序,记录下该程序曾经读过哪些文件、写过哪些文件。请问有没有方法可以做到这个,应该怎么做?谢谢。
运行某个程序,记录下该程序曾经读过哪些文件、写过哪些文件。请问有没有方法可以做到这个,应该怎么做?谢谢。
解决方案 »
- DBGridEh奇怪问题?
- 关于连接access的问题
- 高手指点一下,联合查询的问题,弄了一下午,查不出来错误,请高手指点!
- 提问:关于quickrep的简单问题?
- 这个问题真的很难吗?
- 求救:远程报税-----------有关远程登陆访问-----问题
- PsQReport做的报表有时候打开的时候会出现:“EOSError 'System Error,code:1410' 无效窗口,它属于另外一个线程”这样的错误。有谁碰到
- ★★ i-7Cai 中间件。闪亮登场★★
- 我有一个程序(delphi)编的,请问?
- 请教,怎样实现button控件在设计期拖动时的效果?
- 文件拷贝问题。调用API函数,进行拷贝。正在拷贝时,点击取消,如何取得返回值???
- 一点小问题------初学者问
1.做一个API HOOK,钩住API中相关文件打开,读写函数。
2.一不做二不休,替换系统KERNEL32.DLL。
1.做一个API HOOK,钩住API中相关文件打开,读写函数。
2.一不做二不休,替换系统KERNEL32.DLL。感觉难度不小,仰慕!
>>提供思路:
>> 1.做一个API HOOK,钩住API中相关文件打开,读写函数。
这个怎么做呀?请问有相交的资料吗?还有,如果是dos程序的操作,也能钩得到吗?
回答你上面的问题。API Hook是windows操作系统下对系统提供的API函数的一种干预方法。它通过修改进程环境上下文来"钩住"API调用,以达到监视,甚至修改标准API功能的目的。API函数一般都是由系统核心动态库及扩展库提供的,而文件操作函数就是由KERNEL32.DLL提供。所以对于运行于实模式下的dos程序的话,API Hook是没有作用的。API Hook的标准实现在很多资料里都讲过,网上也有很多文章来讲。
首先是提供一个标准API函数的替代函数,也就是说,在系统调用到你HOOK的API时,你想要做什么动作,都可以在你的替代函数里实现。然后就是HOOK技术。这个我讲一下原理:系统中每个进程维护一张Import Table,记录着进程运行中需要用到的外部函数的地址。HOOK的原理就是用替代函数的入口替换要HOOK的函数的入口,这样当外部函数被调用时,被调用的就是替代函数。现在标准的作法是系统钩子DLL,就是写一个实现了函数入口替换的DLL,通过系统钩子挂接到当前系统下的每个进程中去,挂接时完成函数入口替换。对于DOS程序无法做到监视另一程序操作。