Windows软件开发
文章平均质量分 53
zkzqlove
这个作者很懒,什么都没留下…
展开
-
DeviceIOControl实战
实战DeviceIoControl 之一:通过API访问设备驱动程序Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确原创 2014-02-24 14:00:27 · 907 阅读 · 0 评论 -
Windows平台下libnet的编译、安装以及使用
这两天开始搞网络课程设计,要用到libnet去构造数据包。又因为是做某个网络游戏的分析,所以得在windows下面做。于是开始倒腾。先从sourceforge上下载了libnet 0.10.11版,用于Windows的是个zip包,然后解压出来放桌面上。在几个文件夹里翻翻,看了看readme,发现丫居然要手动编译。还好已经有批处理写好了直接用就行。按照readme里面的说法,我把b转载 2014-07-07 23:26:12 · 4611 阅读 · 0 评论 -
USB协议
USB协议 2011-07-28 15:26:08| 分类: USB|举报|字号 订阅一 枚举过程:◆ 用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态。◆主机检测设备。◆集线器使用中断通道将事件报告给主机。◆主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。◆集线器检测设转载 2014-07-24 17:38:39 · 483 阅读 · 0 评论 -
寄存器定义
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个 “8 位元寄存器”或 “转载 2014-03-14 14:39:11 · 2152 阅读 · 0 评论 -
KeServiceDescriptorTable 结构及获取
KeServiceDescriptorTable 结构 KeServiceDescriptorTable:是由内核(Ntoskrnl.exe)导出的一个表,这个表是访问SSDT的关键,具体结构是 typedef struct ServiceDescriptorTable { PVOID ServiceTableBase; PVOID ServiceCounterTabl转载 2014-03-14 14:29:44 · 3878 阅读 · 0 评论 -
VC读写注册表实现程序自启动的实现源代码
VC读写注册表实现程序自启动的实现源代码本页内容为:VC读写注册表实现程序自启动的实现源代码,该文章本站转载自网络,如有侵权请告之,我们将会及时将其删除,其正文内容如下://写入注册表,开机自启动 HKEY hKey; //找到系统的启动项 LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Ru转载 2014-03-08 17:14:25 · 904 阅读 · 0 评论 -
RTLCOPYMEMORY与RTLMOVEMEMORY
RtlCopyMemory和RtlMoveMemory都是内存复制。其区别是,RtlCopyMemory非重叠复制,而RtlMoveMemory是重叠复制,具体解释如下: ABCD分别代表三段内存的起始地址和终止地址。如果需要将A到C段的内存复制到B到D段内存上,这是B到C段的内存就是重叠部分。RtlCopyMemory函数的内部实现方法是依靠memcpy函数实现的。根据C99转载 2014-03-06 14:03:26 · 1353 阅读 · 0 评论 -
CTL_CODE定义中Method的说明
CTL_CODE定义中有一个Method域,该域的功能意义是定义用于与在驱动程序中获取应用程序数据缓冲区的地址方式。如果你看了我前边的文章,你可以看到在DeviceIoControl的使用说明中对DeviceIoControl参数进行描述中关于lpInBuffer 和lpOutBuffer 的描述。简单的说,Method域就是定义了lpInBuffer 和lpOutBuffer 缓冲区在驱动程原创 2014-03-06 11:29:00 · 594 阅读 · 0 评论 -
驱动程序的初始化与清除
驱动程序的DriverUnload例程主要负责删除设备与取消符号连接,同时也可释放在DriverEntry中所分配的资源。当数据包捕获驱动程序卸载时,操作系统调用NPF_Unload函数。调用IoDeleteSymbolicLink函数删除符号连接,调用IoDeleteDevice函数删除设备对象,并调用NdisDeregisterProtocol函数从NDIS中取消注册,并释放各相关资源。原创 2014-03-05 10:30:02 · 1210 阅读 · 0 评论 -
Windows内核函数(1) - 字符串处理函数
.ASCII字符串和宽字符串打印一个ASCII字符串:CHAR* string = “Hello”;KdPrint((“%s\n”, string)); //s为小写 打印一个宽字符字符串WCHAR* string = L”Hello”;KdPrint((“%S\n”,string)); //s为大写转载 2014-03-05 10:22:22 · 781 阅读 · 0 评论 -
闪屏图形特技效果的实现之关键源代码
在程序实际开发中,闪屏是我们经常用到的。如果程序初始化要一些时间,设计闪屏更加有必要,不但使你的程序也漂亮,还能在上面写上你的版本信息。好处是多多的。在VC++6.0组件库中有一个splash screen闪屏组件,可以添加到程序中。但是初学者打开源代码学习时,里面函数太多,一时之间也搞不明白。而且显示的闪屏很呆板。为了使初学者明白,我搞了一个很简单的类,里面只有二个函数,结构很清晰。一看就明白,原创 2014-02-19 14:04:07 · 1036 阅读 · 0 评论 -
实现进程监视清除多余进程
创建多进程处理程序的时候,需要对多进程进行监视,例如QQ启动多了,内存很卡,就得清除一些多余进程。详细请见代码分析,实现进程监视与清除多余进程#include "stdafx.h" #include "GetAllInfo.h" #include "GetAllInfoDlg.h"转载 2014-02-28 14:57:21 · 582 阅读 · 0 评论 -
信号量机制
一、信号量的定义?交通灯的作用是什么?我们如何通过交通灯的指示来判断是否能通过?信号量,也叫信号灯,是一个确定的二元组(S,Q),其中S是个具有非负初值的整型变量,且S的值只能由定义在信号量上的P操作原语和V操作原语来改变,而Q是个初始状态为空的队列。记录型信号量是一个记录型的数据结构,包含两个数据项,一个是计数值域,另一个是等待该信号量的进程队列首指针域。记录型信号量结构可以转载 2014-02-18 11:01:17 · 2052 阅读 · 0 评论 -
VC编程实现动态截获并显示窗口DC
我在网上看到很多屏幕截取的文章,相信大家也看过不少。人类每一次的进步总是建立在别人的基础之上,我今天要做得是如何将一个窗口动态地显示在另外一个窗口上。 方法很简单,核心算法是要完成对一个窗口DC显示到另外一个窗口的DC,为了方便代码的重用,我特地把它放到一个自己编写的函数: BOOL CShow_WindowDCView::Show_WindowDC(CWnd *pW转载 2014-02-28 15:00:06 · 506 阅读 · 0 评论 -
VC编程实现内核方法实现进程保护
《Windows Rootkit开发初步》这篇文章大致讲地是Rootkit实现进程隐藏,当时我受益匪浅。后来看到这期另外一篇文章名为《木马编程DIY之线程守护》这篇文章,提到了一个双进程实现进程守护的方法。不过他的引言里提到了Icesword的一种HOOK系统底层函数的方法,但是没有细讲。然后我查询很多资料加上自己的研究,试验成功了这个方法。代码原理和Rootkit文章的原理类似,不过我稍加改进更转载 2014-02-28 14:43:51 · 796 阅读 · 0 评论 -
VC判断系统和进程是64位还是32位
//判断操作系统是64位还是32位//返回TRUE位64位,返回FALSE位32位///////////////////////////////////////////////////////////////////////////////////////方法一:BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_原创 2014-02-27 10:43:15 · 953 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。原创 2014-02-27 09:32:44 · 403 阅读 · 0 评论 -
获取硬盘的详细信息
用到的常量及数据结构有以下一些:// IOCTL控制码// #define DFP_SEND_DRIVE_COMMAND 0x0007c084#define DFP_SEND_DRIVE_COMMAND CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACC原创 2014-02-26 17:34:09 · 843 阅读 · 1 评论 -
STL list链表的用法详解
本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4 用for循环来处理list中的元素 5 用STL原创 2014-08-11 15:56:55 · 434 阅读 · 1 评论