设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 私服架设 >> 千年私服 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
传奇世界回城石脚本,利用…
七:怎么来分析客户端的…
利用服务器安全策略来关…
教你怎么1个怪1级
战士怎么才能PK 厉害(一…
利用world.save文件刷怪…
请问怎么修改服务器列表…
谁知道在ahgame的3#CS服…
解决利用合翅膀刷钱BUG
解决利用合翅膀刷钱BUG(…
  怎么利用底层的技术来接管游戏的发包           
怎么利用底层的技术来接管游戏的发包
 

 六:如果单机代理被封,

    在WINDOWS系统中,网络通讯的任务是由一个叫WSOCK32.DLL(在SYSTEM目录下)来完成的,每当游戏被运行时,他都会自动的去调用这个动态连接库,因为在WINDOWS系统中对于文件的搜索顺序是 程序目录>系统目录>路径中设置的目录,所以我们就有机会替换掉系统的WSOCK32.DLL使的游戏调用我们的WSOCK32.DLL,这样我们就有了对于游戏封包绝对的控制权,有人问:"我们应该怎么做呢?",我们只要自己编写一个WSOCK32.DLL放到游戏的目录下,就OK了,当然让我们完全自己去编写一个WSOCK32.DLL是不太现实的,因为本身网络通讯要处理很多更底层的东西,比如说从网卡读取BIT流,所以我们选择由我们的WSOCK32.DLL去调用系统的WSOCK32.DLL来完成这个功能。

WSOCK32.DLL有很多的输出函数,函数如下:
__WSAFDIsSet
accept
AcceptEx
Arecv
Asend
bind
closesocket
closesockinfo
connect
dn_expand
EnumProtocolsA
EnumProtocolsW
GetAcceptExSockaddrs
GetAddressByNameA
GetAddressByNameW
gethostbyaddr
gethostbyname
gethostname
GetNameByTypeA
GetNameByTypeW
getnetbyname
getpeername
getprotobyname
getprotobynumber
getservbyname
getservbyport
GetServiceA
GetServiceW
getsockname
getsockopt
GetTypeByNameA
GetTypeByNameW
htonl
htons
inet_addr
inet_network
inet_ntoa
ioctlsocket
listen
MigrateWinsockConfiguration
NPLoadNameSpaces
NSPStartup
ntohl
ntohs
rcmd
recv
recv
rexec
rresvport
s_perror
select
send
sendto
sethostname
SetServiceA
SetServiceW
setsockopt
shutdown
socket
TransmitFile
WEP
WSAAsyncGetHostByAddr
WSAAsyncGetHostByName
WSAAsyncGetProtoByName
WSAAsyncGetProtoByNumber
WSAAsyncGetServByName
WSAAsyncGetServByPort
WSAAsyncSelect
WSACancelAsyncRequest
WSACancelBlockingCall
WSACleanup
WSAGetLastError
WSAIsBlocking
WSApSetPostRoutine
WSARecvEx
WSASetBlockingHook
WSASetLastError
WSAStartup
WSAUnhookBlockingHook
WsControl
WSHEnumProtocols

   在这里,不是所有的函数都要修改,因为我们只关心发送和接收的封包,所以我们只要修改send 和recv两个函数,前者是发送封包的后者是接收封包的,我们在这两个函数的处理中加入我们自己的代码,来完成封包的辨认,修改以及转发等功能。

六:如果单机代理被封,我们怎么利用底层的技术来接管游戏的发包?
     在WINDOWS系统中,网络通讯的任务是由一个叫WSOCK32.DLL(在SYSTEM目录下)来完成的,每当游戏被运行时,他都会自动的去调用这个动态连接库,因为在WINDOWS系统中对于文件的搜索顺序是 程序目录>系统目录>路径中设置的目录,所以我们就有机会替换掉系统的WSOCK32.DLL使的游戏调用我们的WSOCK32.DLL,这样我们就有了对于游戏封包绝对的控制权,有人问:"我们应该怎么做呢?",我们只要自己编写一个WSOCK32.DLL放到游戏的目录下,就OK了,当然让我们完全自己去编写一个WSOCK32.DLL是不太现实的,因为本身网络通讯要处理很多更底层的东西,比如说从网卡读取BIT流,所以我们选择由我们的WSOCK32.DLL去调用系统的WSOCK32.DLL来完成这个功能。

WSOCK32.DLL有很多的输出函数,函数如下:
__WSAFDIsSet
accept
AcceptEx
Arecv
Asend
bind
closesocket
closesockinfo
connect
dn_expand
EnumProtocolsA
EnumProtocolsW
GetAcceptExSockaddrs
GetAddressByNameA
GetAddressByNameW
gethostbyaddr
gethostbyname
gethostname
GetNameByTypeA
GetNameByTypeW
getnetbyname
getpeername
getprotobyname
getprotobynumber
getservbyname
getservbyport
GetServiceA
GetServiceW
getsockname
getsockopt
GetTypeByNameA
GetTypeByNameW
htonl
htons
inet_addr
inet_network
inet_ntoa
ioctlsocket
listen
MigrateWinsockConfiguration
NPLoadNameSpaces

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2006-11-3
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:admin    责任编辑:admin 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持