文件过滤驱动的开发(上)

文件过滤驱动开发 文件过滤驱动 一、文件透明加解密 关键字:透明、文件过滤驱动、加密标识,缓存   文件过滤驱动最重要的两点是搞定加密标识和缓存管理 1、透明概念: 透明指的是用户在操作的时候,虽然后台在自动的进行加解密,但是用户根本就不知道加密的存在,就像中间隔了一层透明的玻璃一样。      透明的好处在于不改变用户的操作,一切都和加密之前一样,甚至在有些企业安装加密后都无需通知所有的员工,就像加 阅读详情

最近看了不少网友问关于文件系统监视的问题,大概分2类
1种是需要开发一个后台程序,监视整个文件系统的变动。比如说文件的产生、修改、移动、删除、拷贝,一旦有动作发生,监视程序能得到文件名、地址,动作的类型。这种比较简单,使用FindFirstChangeNotification就可以,大概的方法就是写个while(1)来WaitForMultipleObjects这个的返回值,代码后面给出
第2种就是文件操作的拦截了 ;) 上一种是发生在操作完了以后的,这种就是每次操作之前先经过我同意啦 哈哈哈
先说一下实现思路,如果做这个东西,filemon肯定要知道的了,另外就是准备下载win2000 ifs sdk和win2000 DDK,当然driverstudio2.7也需要哦。本篇的(下)将会详细介绍这个的开发for win9x/winnt/win2k/winxp/win2003。

现在将1的代码写出来,可能有点bug你自己调:
FindFirstChangeNotification函数创建一个更改通知句柄并设置初始更改通知过滤条件.
当一个在指定目录或子目录下发生的更改符合过滤条件时,等待通知句柄则成功。
原型为:
HANDLE FindFirstChangeNotification(
  LPCTSTR lpPathName,    //目录
  BOOL bWatchSubtree,    // 选项
  DWORD dwNotifyFilter   // 过滤条件
);

当下列情况之一发生时,WaitForMultipleObjects函数返回
1.一个或者全部指定的对象在信号状态(signaled state)
2.到达超时间隔


代码如下:
DWORD dwWaitStatus;                       
HANDLE dwChangeHandles[2];
 
//监视C:/WINDOWS目录下的文件创建和删除
 
dwChangeHandles[0] = FindFirstChangeNotification(
    "C://WINDOWS",                 // directory to watch
    FALSE,                         // do not watch the subtree
    FILE_NOTIFY_CHANGE_FILE_NAME); // watch file name changes
 
if (dwChangeHandles[0] == INVALID_HANDLE_VALUE)
    ExitProcess(GetLastError());
 
//监视C:/下子目录树的文件创建和删除
 
dwChangeHandles[1] = FindFirstChangeNotification(
    "C://",                        // directory to watch
    TRUE,                          // watch the subtree
    FILE_NOTIFY_CHANGE_DIR_NAME);  // watch dir. name changes
 
if (dwChangeHandles[1] == INVALID_HANDLE_VALUE)
    ExitProcess(GetLastError());
 
// Change notification is set. Now wait on both notification
// handles and refresh accordingly.
 
while (1)
{
 
    // Wait for notification.
 
    dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles,FALSE, INFINITE);
 
    switch (dwWaitStatus)
    {
        case WAIT_OBJECT_0:
 
            //在C:/WINDOWS目录中创建或删除文件 。
            //刷新该目录及重启更改通知(change notification).
 
            AfxMessageBox("刷新目录");
            if ( FindNextChangeNotification(dwChangeHandles[0]) == FALSE )
                ExitProcess(GetLastError());
            break;
 
        case WAIT_OBJECT_0 + 1:
        //在C:/WINDOWS目录中创建或删除文件 。
        //刷新该目录树及重启更改通知(change notification).
 
            AfxMessageBox("刷新目录树");
            if (FindNextChangeNotification(dwChangeHandles[1]) == FALSE)
             ExitProcess(GetLastError());
         break;
 
        default:
         ExitProcess(GetLastError());
    }
}

minifilter开发文件过滤驱动、以及syser调试的经验 minifilter开发文件过滤驱动、以及syser调试的经验。  刚刚完成一个产品的开发,用了两个月,真不容易,像我这种菜鸟,为了搞清一个常识,得从老谭的那本古董级C程序设计翻起。  首先说驱动教程。 楚狂人谭文的《寒江独钓-Windows内核安全编程》和张帆的《Windows驱动开发技术详解》要反复地读。  我用的是最新的WDK 7600,那个帮助真叫人汗,英文的倒罢了,怎 阅读详情

相关推荐

[转]文件过滤系统驱动开发Filemon学习笔记与filemon.exe

<br />WINDOWS文件过滤体系驱动研发,可用于硬盘还原,防病毒,文件安全防护,文件加密等诸多领域。而掌握焦点层的理论及实践,对成为一名优秀的研发人员不可或缺。<br />WINDOWS文件过滤体系驱动研发的两个经典例子,Filemon与SFilter,初学者在经过一定的理论积累后,对此两个例子代码的研究阐发,会是步入驱动研发殿堂的重要一步,相信一定的理论积累和贯串剖析理解此两个例程后,就有能力开始进行文件过滤体系驱动研发的实职了。对SFilter例子的讲解,楚狂人的教程已比力风行,而Filemon例

baby_bobo的专栏 2003

Android中微信支付接入的完整教程来了

在讲解微信支付之前,最重要的也是关键的一点就是一定先把签名配置好,否则后面调不起微信支付界面【查看配置签名】 ,当然,如果你已经弄好了,就开始吧! 一.添加gradle依赖 在app module目录下的build.gralde中添加 dependencies { //微信支付SDK implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' } gralde构建完成之后,再做下一步的操作 二.在A

kaolagirl的博客 1万+

微信支付demo

微信支付功能,必须要有的,这是常识微信支付功能,必须要有的,

android studio gradle 两种更新方法更新

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

2401_84538278的博客 1759

Android-Android集成微信支付

Android集成微信支付 ​ 最近在项目中使用为微信支付,因为微信支付的官方文档没有进行太多的说明,so特此写篇博客记录下

Android实现微信支付功能详解

主要为大家详细介绍了Android实现微信支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Android开发知识(十二):30分钟快速接入微信支付SDK

目录 目录 一、申请应用 二、配置微信支付的SDK 三、微信支付流程 1、统一下单接口 2、APP调起支付接口 3、微信支付的回调 四、总结 一、申请应用 1、首先到 [ 微信开放平台官网] 申请注册帐号,这些流程就忽略了到官网一看自然就知道怎么走,感觉在这里没有必要说很多。 2、申请一个移动应用,填写完成你的应用信息。其他的没啥,最主要的是要填对你的签名和包名,...

lc_miao的专栏 2万+

PSpice 导入 LTspice 仿真实验 --(如何解决PSpice模型无法使用的错误)

参考了网上第三方器件导入LTspice的博客和资料,不论是哪个公司下载的SPICE模型导入LTspice的方法都类似。如果遇到导入报错的情况可以先看一下报错提示,如果通过语法修改实现功能的则说明可以进行仿真,当然性能可能与官方给的模型存在一点出入,但做一个基本的功能验证本人认为还是可以的,总比做出板子用不了或者完全不匹配的要好一些。

伊丽莎白的学习之路 9007

Android微信支付和支付宝支付快速接入

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我。

2301_82244623的博客 1656

UE 动态获取 资源缩略图 下载到本地或返回图片信息

UE 动态加载资源缩略图 返回图片信息或保存到本地

qq_46080252的博客 1939

iOS逆向实战:绕过SSL Pinning抓取ChatGPT设备令牌

在移动应用安全与网络协议分析领域,中间人攻击是一种核心的流量拦截与分析技术。其原理是在客户端与服务器之间插入一个代理节点,通过伪造数字证书来解密和窥探HTTPS加密流量。这项技术的工程价值在于,它使开发者能够调试API、分析通信协议以及实现自动化集成。然而,许多高安全要求的应用(如金融、社交类App)会采用SSL Pinning(证书绑定)技术来抵御此类攻击,这为逆向工程带来了挑战。本文聚焦于一个具体的应用场景:如何针对启用了SSL Pinning的ChatGPT iOS客户端,通过特定的工具链(如Trol

weixin_28235889的博客 978

Windows文件过滤驱动开发

原文地址:http://blog.sina.com.cn/s/blog_7785041f0101jekb.html Windows文件过滤驱动开发   由于项目需要,这十天做了个Windows文件过滤驱动, 感觉windows下的驱动也不是那么的神秘, Mirosoft可以说是把API做到了极致(尽管有时真的是没必要), 他们喜欢把API包装了又包装, 不

死胖子的博客 5598

SVA学习笔记(1)——property基本语法及巧用define与property

巧用define与property,让代码更加灵活

craftsman2018ship的博客 1574

文件过滤系统驱动开发Filemon学习笔记

文件过滤系统驱动开发 Filemon 学习笔记                                WINDOWS 文件过滤系统驱动开发,可用于硬盘还原,防病毒,文件安全防护,文件加密等诸多领域。而掌握核心层的理论及实践,对于成为一名优秀的开发人员不

myworldbig的专栏 2417

Windows11 升级到24H2后,原本的protel99se软件的DDB图纸文件打不开解决办法

Windows11更新后无法打开DDB文件

xingchen2837的博客 427

树莓派5使用CSI摄像头 | 树莓派5接上CSI摄像头后命令行操作显示检测无设备

此系列用于记录树莓派5的一些操作,这篇文章讲述树莓派5如何使用CSI摄像头。

beyourself_he的博客 8796

VC文件过滤系统驱动开发Filemon学习笔记

WINDOWS文件过滤系统驱动开发,可用于硬盘还原,防病毒,文件安全防护,文件加密等诸多领域。而掌握核心层的理论及实践,对于成为一名优秀的开发人员不可或缺。   WINDOWS文件过滤系统驱动开发的两个经典例子,Filemon与SFilter,初学者在经过一定的理论积累后,对此两个例子代码的研究分析,会是步入驱动开发殿堂的重要一步,相信一定的理论积累以及贯穿剖析理解此两个例程后,就有能力开始进

1644

VS2015编译配置GDAL(图文并茂、超详细!!!)

文章目录一、GDAL介绍二、下载GDAL三、修改源代码四、工具命令提示符操作五、编译GDAL六、安装GDAL七、在VS2015的项目中配置GDAL八、添加环境变量九、测试是否配置成功 一、GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在XMIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此

weixin_46196863的博客 3759

【转帖】文件过滤系统驱动开发Filemon学习笔记

<br /><br />文件过滤系统驱动开发Filemon学习笔记<br /><br />郝朝<br />下载filemon源代码<br /><br />WINDOWS文件过滤系统驱动开发,可用于硬盘还原,防病毒,文件安全防护,文件加密等诸多领域。而掌握核心层的理论及实践,对于成为一名优秀的开发人员不可或缺。<br />WINDOWS文件过滤系统驱动开发的两个经典例子,Filemon与SFilter,初学者在经过一定的理论积累后,对此两个例子代码的研究分析,会是步入驱动开发殿堂的重要一步,相信一定的理论积累

coding life 1668

【本地部署实战】LM Studio深度使用指南:从环境搭建到模型调优

LM Studio通过极简的操作流程和强大的生态兼容性,让本地部署大模型成为可能。随着M4芯片的发布和CUDA 12.0的优化,未来本地化AI开发将迎来新的爆发点。建议开发者关注官方Discord社区(https://discord.gg/lmstudio)获取最新模型支持信息。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 8755

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

上一篇: JbuilderX的光标问题
下一篇: YV12的视频回放
code_farmer
博客等级 码龄22年 9粉丝 23原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值