- 博客(14)
- 收藏
- 关注
原创 c++模拟MFC中运行时类型识别(RTTI)(Run-Time Type Identification)
<br />// CRuntimeClass.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream.h> typedef long BOOL; #define TRUE 1 #define FALSE 0 //运行时类型识别 struct CMyRuntimeClass { char m_ClassName[32];
2010-05-31 21:36:00 495
转载 Winsock2中WSAAsynSelect()模型各种事件的触发条件
转自:http://dev.csdn.net/article/39/39132.shtm 使用WSAAsynSelect()模型的关键是要搞清楚各种事件的触发条件,不然会造成读或写数据混乱。这些事件的触发条件同样适用于CAsyncSocket=======================[1]FD_READ事件触发条件:1.在数据到达socket后,并且从来没有触发过FD_READ(也就是
2010-05-30 23:38:00 746
原创 关于GetDIBits的使用 抓狂搞了1整天 备注待查
HBITMAP是常用的GDI对象,而GetDIBits可以从一个HBITMAP对象中获得其对应的位数据。其原型如下:int GetDIBits( HDC hdc, // handle to DC hdc, // handle to DC HBITMAP hbmp, // handle to bitmap
2010-05-27 20:16:00 21800
原创 Windows网络编程 の 原始套接字学习笔记ICMP
原始套接字学习笔记 由于原始套接字能够对基层传输机制加以控制,所以存在一定的潜在的安全漏洞,因此在WIN NT下只有“Administrators”组的成员,才有权创建类型为SOCK_RAW的原始套接字,但是在NT中可以通过修改注册表绕过这一限制,能够达到让系统禁制对原始套接字的安全检查 方法如下:注册表中创建如下变量 并设置为1(DWORD类型)HKEY_
2010-05-26 21:18:00 1910
原创 《windows网络编程》--->套接字(I/O)模式 介绍及其选择
《windows网络编程》 8.1 8.2笔记概况一:Socket套接字模式 1:锁定(阻塞)模式 优点:操作简单 缺点:为了与建立连接的套接字通信 必须为每个套接字分配一个线程 虽然可行,但开销极大,拓展性极差,以后想同时处理大量套接 字时,难以下手 2:非锁定(非阻塞)模式 缺点:稍有难度 优点:排除困难后,功能强大,套接字创建之后默认为锁定模
2010-05-25 00:42:00 869
原创 枚举所有Windows所有窗口句柄并在Ctreelist控件显示
敢问题解决的时候相当棘手 记录以备后用 解决思路 EnumWindows -->EnumWindowsProc -->EnumChildWindows -->EnumChildProc在EnumWindowsProc 获得一个父(祖先)窗口后加入链表HwndList (元素由窗口句柄及其在Ctreelist中的位置组成) EnumChildProc 中查到一个窗口
2010-05-20 20:55:00 5859 2
转载 【LIUNX】---TCP/IP学习与实践[基于原始套接字的rootkit]
前几天看了看>第一卷,为了加深理解,便写了几个简单的程序,最近好忙,但是又怕忘记前面所学的知识,就粗糙的整理了一下,贴出来,希望能给初学者以指导,同时借助CU的论坛做个备份,呵呵.内容安排:1.原始套接字介绍 1.1 原始套接字工作原理与规则 1.2 简单应用2 FTP密码窃取器实现(简单的rootkit) 2.1 设计思路 2.2 实现 2.3 不足与改进之处开始,嗯,喝口茶水先...
2010-05-20 15:01:00 752
原创 线程同步-用内核对象进程线程同步
线程同步的几种方法一 : 使用内核对象1:事件对象事件对象分为两种 当一个手动重置事件对象被触发时 正在等待该事件的素有线程都将变成可调度的状态( 一旦有信号被触发 则 所有等待线程都将往下执行)而当一个自动重置事件对象被触发的时候,只有一个证在等待该事件的线程会变成可调度状态(一旦有信号被触发,只有一个等待线程会往下执行 再有信号被触发时 会再有另外一个线程往下执行)
2010-05-19 20:50:00 630
原创 OpenThread的调用
在VC6.0中使用HANDLE OpenThread(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId );时不能直接调用 因为其虽然在存在于kernel32.dll 在MSDN中声明Requirements Windows NT/2000/XP: Included in Windows 200
2010-05-19 18:33:00 5997 2
原创 提升进程权限
//提升进程权限 //1OpenProcessToken 得到调整进程的访问令牌 ::OpenProcessToken //2LookupPrivilegeValue 去的描述指定特权的LUID ::LookupPrivilegeValue //3AdjustTokenPrivileges调整进程的权限 ::AdjustTokenPrivileges
2010-05-18 22:49:00 676
原创 Dll小结-->基础部分
DLL总结1:Dll内存比如system32下有Dll.dll一份 A调用Dll.dll的时候 物理内存中会有且只有一份该dll的内存映射 然后将dll的内存通过“虚拟地址到物理地址的一种映射机制”将他们映射到A的4G虚拟内存中的一部分内存中 当再有B调用该Dll.dll的时候 仍然会将dll的内存映射到B的虚拟内存地址中 不过这个时候需要注意的是 AB 共享代码区 而
2010-05-18 16:14:00 442
原创 获取本机外网IP地址
CInternetSession Intersess; //建立会话 char headers[MAXBYTE] = {0}; // 注意:OpenURL 方法的dwFlags参数 必须选择传输模式为INTERNET_FLAG_TRANSFER_ASCII 或者 INTERNET_FLAG_TRANSFER_BINARY CHttpFile* pFile=(CH
2010-05-18 01:33:00 419
原创 网络编程基础-简单步骤
服务端1:调用WSAStartup() 作用是引入Ws2_32.dll库2:创建套接字Socket3:监听端口listen4:创建新线程接收accept -----5 acc
2010-05-17 23:43:00 404
原创 关于dll头文件宏声明
为何要在dll开发中 dll.h中利用预定义声明如下宏#ifdef _DLLMODULENAME_#define DLLMODULENAME_LIB_API __declspec(dllexport)#else#define DLLMODULENAME_LIB_API __declspec(dllimport)#endif 解释:首先所有的导出函数在定义的时
2010-05-06 10:18:00 750
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人