📄 60.htm
字号:
<HTML><HEAD><TITLE>CTerm非常精华下载</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY bgColor=#ffffff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=100% background=0044.jpg>
<BODY>
<TR>
<TD height=150 rowSpan=2 width="308" ><IMG alt=DDl_back.jpg height=129 width=300 src="DDl_back.jpg" ></TD>
<TD background=DDl_back2.jpg height=50 width="581" ><BIG><BIG><FONT face=黑体>
<P align=center >重拳出击 一网打尽</FONT></BIG></BIG></P></TD></TR>
<TR>
<TD bgColor=#0099ff borderColor=#0099ff height=5 width="581"></TD></TR>
<TR>
<TD align=middle colSpan=2 height=100 vAlign=top width="891" ><BR>
<p align=center>[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="8.htm">上一层</a>][<a href="61.htm">下一篇</a>]
<hr><p align="left"><small>发信人: goodmind (激情与冷漠), 信区: NetPRG <br>
标 题: 截获winsock代码 <br>
发信站: BBS 水木清华站 (Mon Dec 18 21:40:06 2000) <br>
<br>
<br>
<br>
WSOCK32.CPP <br>
<br>
#include <windows.h> <br>
#include <stdio.h> <br>
void abc(char *p){FILE *fp=fopen("c:\\z.txt","a+");fprintf(fp,"%s\n", <br>
p);fclose(fp);} <br>
//日志文件 <br>
//必须输出与原WSOCK32.DLL库同样的函数。 <br>
<br>
HMODULE i;char aa[1000];FARPROC a;DWORD d; <br>
<br>
int (__stdcall *getsockopt1)(SOCKET ,int ,int ,char * , int * ); <br>
u_short (__stdcall *ntohs1)(u_short ); <br>
struct hostent * (__stdcall *gethostbyname1)(const char FAR * ); <br>
int (__stdcall *getsockname1)(SOCKET ,struct sockaddr *,int * ); <br>
int (__stdcall *bind1)(SOCKET ,const struct sockaddr *,int ); <br>
u_long (__stdcall *htonl1)(u_long); <br>
char * (__stdcall *inet_ntoa1)(struct in_addr); <br>
int (__stdcall *WsControl1)(int ,int ,int ,int ,int ,int ); <br>
unsigned long (__stdcall *inet_addr1)(const char FAR * ); <br>
int (__stdcall *__WSAFDIsSet1)(SOCKET,fd_set FAR *); <br>
int (__stdcall *WSAGetLastError1)(); <br>
int (__stdcall *recv1)(SOCKET ,char FAR * ,int ,int ); <br>
int (__stdcall *send1)(SOCKET ,const char * ,int ,int); <br>
int (__stdcall *connect1)(SOCKET,const struct sockaddr *,int); <br>
<br>
int (__stdcall *closesockinfo1)(int ); <br>
int (__stdcall *NPLoadNameSpaces1)(int ,int ,int ); <br>
int (__stdcall *closesocket1)(SOCKET ); <br>
int (__stdcall *select1)(int ,fd_set FAR *,fd_set FAR *,fd_set FAR *, <br>
const struct timeval FAR * ); <br>
HANDLE (__stdcall *WSAAsyncGetHostByName1)(HWND ,u_int ,const char <br>
FAR * , char FAR * ,int ); <br>
int (__stdcall *ioctlsocket1)(SOCKET ,long ,u_long FAR *); <br>
int (__stdcall *setsockopt1)(SOCKET ,int ,int ,const char * ,int ); <br>
int (__stdcall *WSAAsyncSelect1)(SOCKET,HWND ,u_int,long); <br>
SOCKET (__stdcall *socket1)(int ,int,int); <br>
u_short (__stdcall *htons1)(u_short); <br>
int (__stdcall *WSAStartup1)(WORD,LPWSADATA); <br>
int (__stdcall *WSACleanup1)(); <br>
<br>
int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData) <br>
{ <br>
abc("WSAStartup"); <br>
//记日志,当然也可以是您的模块 <br>
i=LoadLibrary("c:\\windows\\system\\wsock32.aaa"); <br>
//装载原动态库 <br>
a=GetProcAddress(i,"WSAStartup"); <br>
WSAStartup1=(int (_stdcall *)(WORD,LPWSADATA))a; <br>
return WSAStartup1(wVersionRequired,lpWSAData); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR WSACleanup(void) <br>
{ <br>
abc("WSACleanup"); <br>
//记日志 <br>
a=GetProcAddress(i,"WSACleanup"); <br>
//取得原同名函数地址 <br>
WSACleanup1=(int (_stdcall *)())a; <br>
return WSACleanup1(); <br>
//执行真正的处理 <br>
} <br>
u_short PASCAL FAR htons (u_short hostshort) <br>
{ <br>
abc("htons"); <br>
a=GetProcAddress(i,"htons"); <br>
htons1=(u_short (_stdcall *)(u_short))a; <br>
return htons1(hostshort); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
SOCKET PASCAL FAR socket (int af, int type, int protocol) <br>
{ <br>
abc("socket"); <br>
a=GetProcAddress(i,"socket"); <br>
socket1=(SOCKET (_stdcall *)(int ,int,int))a; <br>
return socket1(af,type,protocol); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg,long <br>
lEvent) <br>
{ <br>
abc("WSAAsyncSelect"); <br>
a=GetProcAddress(i,"WSAAsyncSelect"); <br>
WSAAsyncSelect1=(int (_stdcall *)(SOCKET,HWND ,u_int,long ))a; <br>
return WSAAsyncSelect1(s,hWnd,wMsg,lEvent); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR setsockopt(SOCKET s,int level,int optname,const char * <br>
optval,int optlen) <br>
{ <br>
abc("setsockopt"); <br>
a=GetProcAddress(i,"setsockopt"); <br>
setsockopt1=(int (_stdcall *)(SOCKET ,int ,int ,const char * ,int ))a; <br>
return setsockopt1(s,level,optname,optval,optlen); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR ioctlsocket(SOCKET s, long cmd, u_long FAR *argp) <br>
{ <br>
abc("ioctlsocket"); <br>
a=GetProcAddress(i,"ioctlsocket"); <br>
ioctlsocket1=(int (_stdcall *)(SOCKET ,long ,u_long FAR *))a; <br>
return ioctlsocket1(s,cmd,argp); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
HANDLE PASCAL FAR WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,const char <br>
FAR * name, char FAR * buf,int buflen) <br>
{ <br>
abc("WSAAsyncGetHostByName"); <br>
a=GetProcAddress(i,"WSAAsyncGetHostByName"); <br>
WSAAsyncGetHostByName1=(HANDLE (_stdcall *)(HWND ,u_int ,const char <br>
FAR * , char FAR * ,int ))a; <br>
return WSAAsyncGetHostByName1(hWnd,wMsg,name,buf,buflen); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR select(int nfds, fd_set FAR *readfds, fd_set FAR <br>
*writefds,fd_set FAR *exceptfds, const struct timeval FAR *timeout) <br>
{ <br>
abc("select"); <br>
a=GetProcAddress(i,"select"); <br>
select1=(int (_stdcall *)(int ,fd_set FAR *,fd_set FAR *,fd_set FAR *, <br>
const struct timeval FAR *))a; <br>
return select1(nfds,readfds,writefds,exceptfds,timeout); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR closesocket(SOCKET s) <br>
{ <br>
abc("closesocket"); <br>
a=GetProcAddress(i,"closesocket"); <br>
closesocket1=(int (_stdcall *)(SOCKET ))a; <br>
return closesocket1(s); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR NPLoadNameSpaces(int p,int q,int r) <br>
{ <br>
abc("NPLoadNameSpaces"); <br>
a=GetProcAddress(i,"NPLoadNameSpaces"); <br>
NPLoadNameSpaces1=(int (_stdcall *)(int ,int ,int ))a; <br>
return NPLoadNameSpaces1(p,q,r); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR closesockinfo(int p) <br>
{ <br>
abc("closesockinfo"); <br>
a=GetProcAddress(i,"closesockinfo"); <br>
closesockinfo1=(int (_stdcall *)(int))a; <br>
return closesockinfo1(p); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
} <br>
int PASCAL FAR connect(SOCKET s,const struct sockaddr *name, int <br>
namelen) <br>
{ <br>
abc("connect"); <br>
a=GetProcAddress(i,"connect"); <br>
connect1=(int (_stdcall *)(SOCKET ,const struct sockaddr *,int ))a; <br>
return connect1(s,name,namelen); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR WSAGetLastError(void) <br>
{ <br>
a=GetProcAddress(i,"WSAGetLastError"); <br>
WSAGetLastError1=(int (_stdcall *)())a; <br>
d=WSAGetLastError1(); <br>
sprintf(aa,"WSAGetLastError %d",d); <br>
abc(aa); <br>
return d; <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
<br>
} <br>
int PASCAL FAR send(SOCKET s,const char * buf,int len,int flags) <br>
{ <br>
abc("send"); <br>
a=GetProcAddress(i,"send"); <br>
send1=(int (_stdcall *)(SOCKET ,const char * ,int ,int ))a; <br>
return send1(s,buf,len,flags); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR recv(SOCKET s, char FAR * buf, int len, int flags) <br>
{ <br>
abc("recv"); <br>
a=GetProcAddress(i,"recv"); <br>
recv1=(int (_stdcall *)(SOCKET ,char FAR * ,int ,int ))a; <br>
return recv1(s, buf, len, flags); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL FAR __WSAFDIsSet(SOCKET p,fd_set FAR *q) <br>
{ <br>
abc("__WSAFDIsSet"); <br>
a=GetProcAddress(i,"__WSAFDIsSet"); <br>
__WSAFDIsSet1=(int (_stdcall *)(SOCKET,fd_set FAR *))a; <br>
return __WSAFDIsSet1(p,q); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
unsigned long PASCAL inet_addr(const char FAR * cp) <br>
{ <br>
abc("inet_addr"); <br>
a=GetProcAddress(i,"inet_addr"); <br>
inet_addr1=(unsigned long (_stdcall *)(const char FAR * ))a; <br>
return inet_addr1(cp); <br>
//取得原同名函数地址 <br>
//执行真正的处理 <br>
<br>
} <br>
int PASCAL WsControl(int p,int q,int r,int s,int t,int u) <br>
{ <br>
abc("WsControl"); <br>
a=GetProcAddress(i,"WsControl"); <br>
WsControl1=(int (_stdcall *)(int ,int ,int ,int ,int ,int ))a; <br>
return WsControl1(p,q,r,s,t,u); <br>
//取得原同名函数地址 <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -