- 博客(5)
- 资源 (3)
- 收藏
- 关注
转载 socket编程中select的使用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来 说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式 block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用 Select就可以完成非阻塞(所谓非阻
2014-05-09 00:15:29
642
转载 套接字Select I/O模型
select模型 select(选择)模型是winsock中常见的I/O模型。之所以称其为“select模型”,是由于它的 “中心思想”是利用select函数,实现对I/O的管理!最初设计该模型时,主要面向的是某些使用 Unix操作系统的计算机,它们采用的是Berkeley套接字方案。select模型已经集成到Winsock1.1中。 1 .通过调用select函
2014-05-09 00:06:54
680
原创 (VC代码) 端口复用的思路与实现
端口复用在黑客后门程序中十分重要,当你侵入一台服务器时,这台服务器如果安装了防火墙,则使用一般的后门程序时,后门程序使用的是防火墙禁止的端口,则可以通过复用防火墙允许的端口来与后门程序进行数据交流,比如一个服务器有WEB服务,我们可以通过复用80端口. 原理图如下: 复制端口的原理是用在服务器安装一个中间程序,在客户端发送数据给端口前劫获
2014-05-08 18:54:28
2539
原创 线程安全:分配堆与内存 API:HeapCreate HeapAlloc HeapSize HeapFree HeapDestroy
/* * 创建指定大小的堆 *判断当前进程堆的个数 *在指定的堆上分配内存 *获取 堆分配的内存块的大小 * 释放堆分配的内存 *销毁HeapCreate 创建的堆 */ #include #include using namespace std; void main() { //定义变量 HANDLE hHeap; //堆句柄 SYSTEM_INFO si; //定
2014-05-08 00:46:50
4061
1
原创 使用GetProcessHeaps()和HeapValidate()函数定位缓存溢出
BOOL HeapValidate( HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem ); 其中hHeap为要检查的堆的句柄,dwFlags为标志,一般设置为0, lpMem如果为NULL就检查整个堆正确性,否则仅仅检查lpMem指向的内存块的有效性。函数返回TRUE表示堆或内存块有效,返回FALSE则表示状态已经被破坏。 但是仅仅有了这个
2014-05-08 00:43:34
2082
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人