自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 经典驱动程序结构

关于驱动程序的结构:1.       应用层:通过调用交互层的函数得到驱动程序对应的文件路径,名称和DOS名称,并将这个驱动程序注册为服务程序,然后在交互层用函数CreateFile并传入驱程的DOS名称打开驱程,现在就可以调用交互层的WriteIo(自定义)函数对驱动程序发出指令。2.     交互层:它的WriteIo函数其实只是对系统函数DeviceIoControl的封装。并且它通过该函数

2005-09-15 10:59:00 1250

原创 关于RIT

根据27章:"RIT将键盘事件放入线程的虚拟输入队列时不用涉及具体的窗口。当这个线程调用GetMessage时..."说明消息结构是在RIT里组装的。也就是说钩子只有在RIT里才能得到处理所有消息(暂时是硬件消息如键盘,鼠标)的机会。可以猜测的是全局钩子在RIT里实现而局部钩子在线程的虚拟输入队列里实现。"那么RIT怎么才能知道要向哪一个线程的虚拟输入队列里增加硬件输入消息?对鼠标消息,RIT只是

2005-09-15 10:48:00 1050

原创 **一分钟感言**

2005.07.27. 今天又看了下利用钩子拦截API函数的代码,发现它拦截的其实是函数的调转代码,因为API在编译的时候会形如: CALL  XXXX                             XXXX:  JMP  YYYY这个时候我们其实是将JMP YYYY都换成自己的JMP MYFUNC.这里有个疑问,如果真是这样,那我们完全可以只修改XXXX地址下的后四个字节,而不是五个;

2005-07-27 17:48:00 1392

原创 读Net Programming on WIN2K 2nd 后记---关于I/O Model

 以下代码均摘自原版,文字部分是我的体会。//--------------------------------------------------------------//select情况下: SOCKET  s;fd_set  fdread;int     ret; // Create a socket, and accept a connection // Manage I/O on the

2005-07-20 20:06:00 1463

原创 汇编取得函数地址

// 1.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include using namespace std;#define     array_size 10int a[array_size]={42, 73, 65, 97, 23, 59, 18, 84, 36, 6};int _tmain(int argc, _TCHAR* argv[]){    

2005-07-20 19:55:00 2862

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除