BO2k源代码分析(一)----WinMain()函数

本文介绍了BO2K服务器程序的启动流程,主要关注WinMain()函数。当BO2K未安装时,程序会自我复制到系统目录并设置为启动项;已安装则直接启动服务器。此外,还预告了后续将分析的消息循环机制、网络原理等主题。
摘要由CSDN通过智能技术生成

 

 

花了些时间分析BO2K,现将结果依次发表出来.接着还将发表BO消息循环机制,网络原理,自编LoadLibrary()的实现,Plug In原理,关键命令的实现原理等. 愿对诸君C++编程和Windows编程有所益.

 一 BO2K服务器原理概述
     BO2K服务器程序首先判断是否已经安装了BO2K,如果已经安装,则简单的启动服务器,侦听端口。如果没有安装则拷贝自身到系统目录下,并且注册BO2K为每当系统启动时启动BO2K。而后以自身的全路径名为参数启动拷贝版的BO2K,自身结束。这里,我们看到了应用程序删除自身之一法. 这是服务器的WinMain()函数的主要工作,详见BODEMO。当然,由于考虑到出错处理,以及允许用户配置,其源代码比BODEMO要复杂,且有所出入。但大体原理如此
  上述过程之后,接着初始化命令数组,建立侦听端口,进入命令循环。(这些都是Entrypoint()函数的工作)。

  下期我将再来分析这个函数。
 
附BODEMO:
 
#include "stdafx.h"
BOOL g_bIsWinNT;
/* Determine Operating System Version*/
void GetOSVersion(void)
{
     OSVERSIONINFO osvi;
     osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
     if(GetVersionEx(&osvi)==FALSE)

     {
            MessageBox( HWND_DESKTOP, "Unable to get ve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值