李sir_Blog

博客园 首页 联系 订阅 管理
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 71 下一页

2010年11月19日

摘要: 现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段。  这4种方法具体定义如下 在《操作系统教程》ISBN 7-5053-6193-7 7-5053-6193-7 一书中可以找到更加详细的解释    1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。  2互... 阅读全文
posted @ 2010-11-19 17:27 李sir 阅读(569) 评论(0) 推荐(0)

摘要: 摘要: 给32位的PE文件加壳,包括exe, dll, ocx, 服务程序,com组件等,差不多所有的PE文件都可以用这个给加上了。我写的这个程序需要插上一个U盘,随便有一个U盘就可以,然后才能给程序加壳,加壳的程序也依靠这个U盘才能运行,有点意思吧。先把程序最主要的函数写到下面。//---------------------------------------------------------... 阅读全文
posted @ 2010-11-19 17:05 李sir 阅读(2793) 评论(7) 推荐(1)

摘要: 参考FileSpy写的文件监控程序,但比它的抽象多了。可能瑞星的文件驱动也是这样写的,否则它为什么老阻止我安装驱动呢。测试程序是一个命令行小程序,负责打开设备,开启监控和关闭监控,运行时开启和关闭两次。在DebugView中查看输出信息,我只是想看看能不能达到目的,所以信息量很少。在驱动程序中开启和关闭监控的代码:VOID AttachedToDeviceByName (__in PWSTR De... 阅读全文
posted @ 2010-11-19 16:54 李sir 阅读(755) 评论(0) 推荐(0)

摘要: 转载自http://www.misssir.cn/art/_show.aspx?art=49摘要: 我想做一个unlocker一样的程序,不管这个文件有没有被使用,先实现删除它。在查资料过程中,就知道了如果不访问磁盘扇区的话,除非写驱动才能做到。奈何时间有限,工作匆忙,一直没有完成。而且忽视了更简便的方法——在别的路径下把修改后的OCX控件重新注册一下就可以了。 这些都不... 阅读全文
posted @ 2010-11-19 16:40 李sir 阅读(2138) 评论(0) 推荐(0)

摘要: 转载于http://www.misssir.cn/art/_show.aspx?art=44摘要: 从主控开始遍历,先是RootHub,然后每个端口,端口连接的设备类型、描述符,如果是Hub则继续向下遍历。代码已贴出来,如果您看到附件中的样例,会不会感觉和DDK中的usbview很像呢?USB View是DDK中的示例程序,以前我也看过,感觉有点乱,这些天我有的是时间,就模仿它用VC++重新写了一... 阅读全文
posted @ 2010-11-19 16:34 李sir 阅读(10177) 评论(1) 推荐(1)

摘要: 理解Windows NT驱动程序最重要的概念之一就是驱动程序运行时所处的“执行上下文”。理解并小心地应用这个概念可以帮助你构建更快、更高效的驱动程序。NT标准内核模式驱动程序编程的一个重要观念是某个特定的驱动程序函数执行时所处的“上下文”。传统上文件系统开发者最关注这个问题,但所有类型的NT内核模式驱动程序的编写者都能从执行上下文的深刻理解中获益。小... 阅读全文
posted @ 2010-11-19 16:29 李sir 阅读(534) 评论(0) 推荐(0)

摘要: 这种方式需要在创建完设备对象后,为设备设置属性DO_DIRECT_IO和缓冲读写设备不同,直接方式读写设备,操作系统会将用户模式下的缓冲区锁住。然后操作系统将这段缓冲区在内核模式地址空间中再映射一遍。这样,用户模式的缓冲区和内核模式的缓冲区指向的是同一区域的物理内存。无论操作系统如何切换进程,内核模式地址保持不变。操作系统(IO管理器)先将用户模式的地址锁定后,操作系统(IO管理器)用内存描述符表... 阅读全文
posted @ 2010-11-19 16:24 李sir 阅读(2752) 评论(0) 推荐(0)

摘要: 在调用DeviceIoControl时,应用层的输入缓冲区的内容被复制到IRP中的Irp->AssociatedIrp.SystemBuffer内存地址中。这个步骤和缓冲区模式IOCTL处理一样。但是,对于DeviceIoControl指定的输出缓冲区的处理,操作系统将该缓冲区锁定,然后在内核模式地址空间中重新映射一段地址。在驱动程序中,METHOD_IN_DIRECT 和 METHOD_O... 阅读全文
posted @ 2010-11-19 16:22 李sir 阅读(1653) 评论(0) 推荐(0)

摘要: 在不同的场合,很多驱动编写人员需要在驱动和用户程序间共享内存。两种最容易的技术是:l 应用程序发送IOCTL给驱动程序,提供一个指向内存的指针,之后驱动程序和应用程序就可以共享内存。(应用程序分配共享内存)l 由驱动程序分配内存页,并映射这些内存页到指定用户模式进程的地址空间,并且将地址返回给应用程序。(驱动程序分配共享内存)使用IOCTL共享Buffer:使用一个IOCT描述的Buffer,在驱... 阅读全文
posted @ 2010-11-19 16:15 李sir 阅读(5679) 评论(1) 推荐(0)

摘要: 下面是开发人员在使用 Windows NT 设备驱动程序时应当避免的事项列表: 1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。 2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。 3. 一定不要将 DeviceObject-... 阅读全文
posted @ 2010-11-19 15:45 李sir 阅读(556) 评论(0) 推荐(0)

上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 71 下一页