资源简介
《HACK编程实例精讲》教材的Word电子版,好不容易才从网上搜集到的。

代码片段和文件信息
#include
#include
#define MAXBUFLEN 20480
#define HTTPADDLEN 50
#define TIMEWAIT 2000
#pragma comment(lib“ws2_32.lib“)
SOCKET Global[1000];
DWORD WINAPI Proxy( LPVOID pSocket);
int ParseHttpRequest(char * SourceBufint DataLenvoid * ServerAddr);
int main(int argcchar * argv[])
{
SOCKET MainSocketClientSocket;
struct sockaddr_in HostClient;
WSADATA WsaData;
int AddLeni;
//初始化
if(WSAStartup(MAKEWORD(22)&WsaData) < 0)
{
printf(“初始化失败\n“);
return 1;
}
//创建socket端口
MainSocket = socket(AF_INETSOCK_STREAMIPPROTO_TCP);
if(MainSocket == SOCKET_ERROR)
{
printf(“端口创建错误\n“);
return 1;
}
Host.sin_family = AF_INET;
Host.sin_port = htons(8080);
Host.sin_addr.s_addr = inet_addr(“127.0.0.1“);
printf(“正在工作\n“);
//绑定socket
if(bind(MainSocket(SOCKADDR *)&Hostsizeof(Host)) != 0)
{
printf(“绑定错误\n“);
}
i = 0;
//监听
if(listen(MainSocket5) == SOCKET_ERROR)
{
printf(“监听错误\n“);
}
AddLen = sizeof(Client);
//连接新的客户
i = 0;
for(;;)
{
ClientSocket = accept(MainSocket(SOCKADDR *)&Client&AddLen);
if(ClientSocket == SOCKET_ERROR)
{
printf(“接受客户请求错误!\n“);
}
printf(“.“);
i ++ ;
if( i >= 1000)
i = 0;
Global[i] = ClientSocket;
//对于每一个客户启动不同的线程程进行控制
//这个地方在使用ClientSocket的时候,要不要保证在某一时刻内只能有一个进程使用?
CreateThread(NULL0Proxy(LPVOID)Global[i]0NULL);
}
return 0;
}
DWORD WINAPI Proxy( LPVOID pSocket)
{
SOCKET ClientSocket;
char ReceiveBuf[MAXBUFLEN];
int DataLen;
struct sockaddr_in ServerAddr;
SOCKET ProxySocket;
int i = 0;
int time = TIMEWAIT;
//得到参数中的端口号信息
ClientSocket = (SOCKET)pSocket;
//接受第一次请求信息
memset(ReceiveBuf0MAXBUFLEN);
DataLen = recv(ClientSocketReceiveBufMAXBUFLEN0);
if(DataLen == SOCKET_ERROR)
{
printf(“错误\n“);
closesocket(ClientSocket);
return 0;
}
if(DataLen == 0)
{
closesocket(ClientSocket);
return 0;
}
//处理请求信息,分离出服务器地址
if( ParseHttpRequest(ReceiveBufDataLen(void *)&ServerAddr) < 0)
{
closesocket(ClientSocket);
goto error;
}
//创建新的socket用来和服务器进行连接
ProxySocket = socket(AF_INETSOCK_STREAMIPPROTO_TCP);
//设置超时时间
setsockopt(ProxySocketSOL_SOCKETSO_RCVTIMEO(char *)×izeof(time));
if(ProxySocket == SOCKET_ERROR)
{
printf(“端口创建错误\n“);
return 0;
}
if(connect(ProxySocket(SOCKADDR *)&ServerAddrsizeof(ServerAddr)) == SOCKET_ERROR)
{
//printf(“连接服务器错误“);
goto error;
}
//开始进行数据传输处理
//发送到服务器端
if(send(ProxySocketReceiveBufDataLen0) == SOCKET_ERROR)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 77 2008-10-14 08:46 HACK编程实例精讲\Desktop.ini
文件 5912 2004-11-13 23:22 HACK编程实例精讲\本书代码\实例收录\http代理原码.cpp
文件 5745 2003-08-17 15:21 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.cpp
文件 2007 2003-08-17 15:02 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.dsp
文件 541 2003-08-17 15:02 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.dsw
文件 41984 2003-08-17 15:21 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.ncb
文件 48640 2003-08-17 15:21 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.opt
文件 870 2003-08-17 15:21 HACK编程实例精讲\本书代码\实例收录\ICMP后门\client\icmpsend.plg
文件 19060 2003-08-17 15:23 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.cpp
文件 1999 2003-08-17 15:05 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.dsp
文件 539 2003-08-17 15:05 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.dsw
文件 27648 2004-06-30 22:17 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.ncb
文件 48640 2003-08-17 15:23 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.opt
文件 862 2003-08-17 15:23 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\icmpsrv.plg
文件 1128 1999-09-29 00:13 HACK编程实例精讲\本书代码\实例收录\ICMP后门\server\StdAfx.h
文件 1567 2004-08-05 12:04 HACK编程实例精讲\本书代码\实例收录\winsock代码\client.cpp
文件 155710 2004-08-05 12:04 HACK编程实例精讲\本书代码\实例收录\winsock代码\Debug\client.exe
文件 155710 2004-08-05 12:01 HACK编程实例精讲\本书代码\实例收录\winsock代码\Debug\server.exe
文件 1774 2004-08-05 11:58 HACK编程实例精讲\本书代码\实例收录\winsock代码\server.cpp
文件 3657 2004-09-03 13:26 HACK编程实例精讲\本书代码\实例收录\一个简单嗅探软件的实现\sniff.cpp
文件 40960 2008-12-13 13:41 HACK编程实例精讲\本书代码\实例收录\一个简单嗅探软件的实现\sniff.exe
文件 5494 2004-08-27 15:15 HACK编程实例精讲\本书代码\实例收录\信息刺探工具\snmp.cpp
文件 40960 2008-12-13 13:41 HACK编程实例精讲\本书代码\实例收录\信息刺探工具\snmp.exe
文件 40960 2004-08-29 14:49 HACK编程实例精讲\本书代码\实例收录\多线程dos攻击程序\Release\synflood.exe
文件 6135 2004-08-27 00:16 HACK编程实例精讲\本书代码\实例收录\多线程dos攻击程序\synflood.cpp
文件 603 2004-08-18 23:00 HACK编程实例精讲\本书代码\实例收录\多线程例子.cpp
文件 1517 2004-08-16 12:12 HACK编程实例精讲\本书代码\实例收录\扫描器代码\单线程tcp扫描器\tcpscan.cpp
文件 3681 2004-08-26 12:59 HACK编程实例精讲\本书代码\实例收录\扫描器代码\多线程tcp扫描器\gscan.cpp
文件 36864 2004-08-21 18:20 HACK编程实例精讲\本书代码\实例收录\扫描器代码\多线程tcp扫描器\gscan.exe
文件 1479 2004-08-20 13:24 HACK编程实例精讲\本书代码\实例收录\扫描器代码\打造极速SYN扫描器代码\getallIP.cpp
............此处省略159个文件信息
- 上一篇:乐玩模块调用模板
- 下一篇:Beyond Feelings 9th 原版完整
相关资源
- ENVI 5.0 sp3 - 64 Bit 破解
- IAR FOR 430 破解工具
- radmin3.5.2.1完美破解版(支持win10)8
- Rational Rose Common破解文件
- AutoCAD永久去教育版破解补丁
- IAR7.20H破解机注册机
- IAR ARM 7.8破解
- IAR for ARM 7.40 破解
- IAR For ARM 7.4 破解
- TI CCS V5.4 安装步骤及破解文件
- MoNyog8.5+破解补丁
- 键盘记录器7.1 绿色注册版(破解版)
- DOS播放器 QuickViewPro破解版
- 破解QQ空间相册加密查看
- 160个crackme程序
- “猜数字”游戏 算法破解
- 视频处理控件TVideoGrabber.v6.7.5.For.Del
- 通达信公式管理器密码破解
- caxa实体设计2019破解补丁
- Radmin Server-3.5 完美绿色破解版x32 x64通
- Radmin 3.5 简体中文版附完美破解 支持
- Radmin 3.5 简体中文版附完美破解
- radmin服务端win10亲测可用,带破解方法
- radmin3.51完美破解版(支持win10)
- Radmin Viewer v3.5.2.1绿色精简破解版版
- 已验证正确的AD16破解步骤_AD16.1.12Li
- 压缩包免费破解密码工具
- MikroTik RouterOS密码破解 mtpass.exe
- 西门子S7-200POU密码破解补丁
- 串口虚拟工具Configure Virtual Serial Por
评论
共有 条评论