完整可编译NT4's NTFS源码小规模修改工程
2009-10-07 14:02
155 查看
原创】六一献小礼:完整可编译NT4's NTFS小规模修改工程 完整附件见http://bbs.pediy.com/showthread.php?t=90393 |
大家知道,文件系统在操作系统中应该属于比较独立的一块,只需要提供相应接口给上层使用。
Windows的NTFS文件系统也是一样,
在实际编程中,Windows以dispatch routing的形式为上层的io管理器、缓存管理器等提供读写的接口,
甚至文件系统本身的缺页中断也是通过其自身的读写例程来实现换页操作。
所以在设计上,其相对的独立性为我们“山寨”其驱动提供了不少方便。
相信大家也都看过NT4的NTFS源码。
可那份 源码与现在WIN 5.1下的相差甚远(NT4应该写于91年)。
但由于文件系统的独立性,使我想到也许NTFS自身结构的变化也许并不妨碍它的移植。
事实证明也是如此,我将NT4的代码扣出后,只经过少许修改,便能成功运行在XP下,这也许对广大操作系统爱好者能提供不小的便捷吧~
本来以为想移植到xp中会有不少困难,
但实际过程中,我只是修改了很小一部分。
其中包括read 操作的一个死锁bug。这个bug的起因是:
NtfsCommonRead 中如果是pageio的时候,
且是异步read,MS忘记把锁放进完成函数的context里了。即无处释放这个锁。
另外NT4的代码少了NtfsFsdPnp例程。
这个例程在NtCreatePagingFile-》PpPagePathAssign中会调用。
本来我想参照xp的,不过似乎没成功,所以干脆直接返回STATUS_SUCCESS,
貌似也没啥大问题,也能成功换页~
其他方面,NTFS的文件结构啥的,
基本无需修改。所以各位可以尽管鄙视我,毕竟我没做啥大改动,
就拿这么个题目来哗众取宠。不过我觉得比那个啥淫cracker(yingcracker)好点吧,
这娃直接把我的ksbinsword改个标题就说是他的了
至于这个可源码调试的NTFS有啥用,我想不必多说了吧,
比如你想研究怎么强行删除文件,调试一下NtfsDeleteFile就知道了。
有了代码方便很多!想看哪个结构就看哪个结构。或者你还可以改动一下,想隐藏哪个文件就隐藏哪个文件。
附件中的sys不能直接运行,因为入口函数有int 3断点
下面是截图:
可以看出硬链接等NTFS特有的功能也支持的好好的
相关文章推荐
- 完整可编译NT4's NTFS源码(可稳定替换xp原版ntfs.sys
- 完整可编译NT4's NTFS源码(可稳定替换xp原版ntfs.sys)
- NT4源码编译环境
- Zookeeper源码编译为Eclipse工程(win7下Ant编译)
- 编译当天修改的所有C源码
- Android源码分析(二)-----如何编译修改后的framework资源文件
- 学习OpenCV的学习笔记系列(二)源码编译及自带样例工程
- 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件)
- 在android源码中单独编译modkoid工程遇见的问题
- 【Unity Shader学习笔记】(五)使用鼠标绘制自由多边形(附完整工程源码)
- DevExpress 重编译 替换强命名 修改源码
- 使用qmake编译QT工程,手写源码
- 修改spark源码并编译部署
- [转]【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- CyanogenMod源码下载和编译以及简单修改[二]
- 修改反编译插件的源码
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- CentOS7中源码编译安装NodeJS的完整步骤
- 源码编译 PHP 完整配置选项
- 可编译的VisualStudio2010版VLC工程[已修改]