windows sdk 编程
lycommand
这个作者很懒,什么都没留下…
展开
-
拷贝自身文件与获得系统信息
#include #include #include #include #include #include #include using namespace std; void CopySelf() { TCHAR szSelfName[MAX_PATH]={0}; TCHAR szWindowsPath[MAX_PATH]={0}; TCHAR szSystemPath[MA原创 2015-10-01 17:37:15 · 351 阅读 · 0 评论 -
一个局部钩子实现
界面如下 点击安装按钮,安装局部钩子,在输入框中输入消息,输出框中输出消息 在cpp中定义三个全局变量 HHOOK g_hHook=NULL; HWND g_this=NULL; CString g_info=_T(""); 在安装按钮事件中填写 void CMFCApplication1Dlg::OnBnClickedInstrall() { g_this=th转载 2015-12-25 16:30:13 · 1659 阅读 · 0 评论 -
鼠标消息与键盘消息
1,虚拟键(VK_*) 键盘上每一个键对应一个扫描码,扫描码是OEM厂商制定的,不同的厂商生产的键盘同样一个按键的扫描码都有可能出现不一致的情况,为了摆脱由于系统设备不一致的情况,通过键盘驱动程序将扫描码映射为统一的虚拟键码表示,从而达到所有的设备都有一个统一的虚拟键,比如回车键的虚拟键是VK_RETURN。 Windows定义的虚拟键都定义在WinUser.h这个头文件里面,都是以V转载 2015-12-24 22:12:35 · 1077 阅读 · 0 评论 -
dos攻击
#include #include #include #include #include #include "protoinfo.h" #pragma comment (lib,"ws2_32.lib") using namespace std; int port; char *DestIp; int threadNum; int maxThread; #define SEQ 0x283转载 2015-12-22 23:20:49 · 385 阅读 · 0 评论 -
Windows进程同步之信号量内核对象(Semaphore)
信号量内核对象主要包括三个部分: 使用计数 , 最大资源计数 , 当前资源计数 。 使用计数:和其他内核对象一样,用来标识使用该事件对象的不同线程个数; 最大资源计数:表示信号量控制的最大资源的数目;当前资源计数:表示信号量当前可用的资源数目; 信号量使用规则如下: 如果当前资源计数大于 0 ,信号量处于触发状态; 如果当前资源计数等于 0 ,那么信号量处于未触发状态;系统绝不会转载 2015-11-02 17:32:03 · 763 阅读 · 0 评论 -
STL总结
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存储。转载 2015-11-02 18:03:22 · 321 阅读 · 0 评论 -
Win32环境下代码注入与API钩子的实现
本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在VS下编写和调试Win32应用程序和动态链接库(以下简称DLL)。 API钩子是一种高级编程技巧,常常用来完成一些特别的功能,比如词典软件的屏幕取词,游戏修改软件的数据修改等。当然,此技术更多的是被黑客或是病毒用来攻击其它程序,截获需要的数转载 2015-11-01 22:36:40 · 510 阅读 · 0 评论 -
同步设备IO与异步设备IO之异步IO介绍
同步设备IO与异步设备IO之异步IO介绍 设备IO与cpu速度甚至是内存访问相比较都是比较慢的,而且更不可预测。虽然如此,通过使用异步设备IO我们仍然能够创造出更高效的程序。 同步IO时,发出IO请求的线程会被挂起。而异步IO时发出请求的线程不会被挂起,而是可以继续执行。异步IO请求传给了设备驱动程序,被加入到驱动程序的请求队列中,驱动程序负责实转载 2015-11-09 20:13:53 · 435 阅读 · 0 评论 -
socket 编程之TCP服务端与客户端
服务端 #include #include #include #include #include //注意windows.h要放在最后 #pragma comment (lib,"Ws2_32.lib") int _cdecl main(int argc,char * argv[]) { WORD wVersionRequest; WSADATA wsaData翻译 2015-10-04 21:32:51 · 375 阅读 · 0 评论 -
判断一个树是否是另外一个树的子树
很简单,假如说判断B是否为A的一个子树,则首先对A进行遍历,然后如果遍历时候节点的值等于B的根节点,则进入判断函数进行判断,如果完全一样,则该函数返回true,否则返回false,在后面递归判断时候,要判断前面函数返回的是true还是false,如果是true,则它的子树就不用再判断了,直接返回那个bool值,如果是false,则要对后面的左右子树依旧进行判断。 接下来讨论那个比较两棵树的函数,转载 2016-02-18 00:01:47 · 1531 阅读 · 0 评论