popo2004程序结构分析

原创 2005年05月27日 14:51:00

网易泡泡2004(NETEASE POPO)分析报告

2005-4-15

By wateroom

目标版本:POPO2004BUILD0907

 

 

一.物理结构与文件功能分析

Popo2004 的顶层目录: 28 个文件 10 个目录,基本功能说明如下:

l         目录:

[.]                [..]

[ad]:存储广告信息,主要是些图片。

[BIMAGE]大型图片?       

[faces]:软件里个人配置时使用的头像文件。                     

[LU_TEMP]:存放自动升级组件从网上下载到的升级文件的ZIP包。

[plugins]:插件目录,用于功能扩展,例如MSN插件等。

[skin]:存放皮肤文件                    

[SysBmp]:软件图像资源,图标等。                  

[SYSDATA] :全局配置,关于表情,动作等。

[Users]:用户目录,存放用户的聊天纪录,个人配置信息等。

[wave]:存放系统使用到的声音文件。               

l         配置文件:

gdstrings.ini :全局字符串定义。

    localver.ini:存放本地文件的版本号,用于升级时同服务器文件版本对比。

 

l         可执行文件:

LSPhoneEngine.exeIP电话软件的核心

     Popo.exe:主程序,调用各个组件实现各种功能。

       Start.exe:启动程序,主要用作升级时解压缩[LU_TEMP]目录里的文件升级本地文件,然后创建进程启动popo.exe

      uninstall.exe:反安装程序。

l         动态链接库:

Ø         网易开发:

Bobo.dll:具体功能有待分析,比较核心的模块,调用其它几个组件,核心逻辑在此?

idlemon.dll:空闲处理。

MailChecker.dll:独立组件,检测邮箱是否有新邮件。

MsgHis.dll:独立组件,管理聊天纪录,消息历史。

ResLoc.dll:资源定位,需要和交互服务器的通讯都需要此文件?

SOX.dll:非常关键的组件,有待分析。

share.dll:文件共享组件。                                   

Updater.dll:自动升级组件。         

VCodec.dll:独立组件,用于Xvid进行MPEG4视频编码?

Trace.dll:用于追踪调试,被BOBO.DLL调用。                

XComm.dll:用于网络通讯。所有的通讯功能,无论是否服务器参与,还是P2P的都需要此组件的某些功能。         

XEmotion.dll:调用P2PMGR.dll。用于聊天时的表情传输与解释?

XFile.dll:用于聊天时传输文件。         

XGDI.dll:独立组件,用户界面。           

XVideo.dll:用于视频聊天,主要负责视频的捕获与编码。

XVoice.dll:音频流的捕获与发送,用于语音聊天。                           

Ø         微软系统库:

dbghelp.dll:用于调试帮助。

msvcp60.dll:微软VC++运行时库。

msvcrt.dll:微软C运行时库。 

Ø         第三方库:

LSPhoneCtrlDll.dllIP电话控件。

Unzip32.dll:解压缩组件。     

                   

    POPO使用了组件化技术,主程序同各个功能组件独立,便于升级与模块化开发。大部分DLLCOM组件。从大多数网易开发的组件调用MFC42.dll来看,软件使用VISUAL C++6.0开发。

  最核心的部分是Xcomm.dll,它包装了WINSOCK的一些函数,POPO进行所进行的网络通讯除了自动升级与邮件检测,其它数据全经过此组件的转发。初步推断使用UDP协议;P2pmgr.dll也被多次调用,可能是用于在2个客户端之间进行P2P通讯时的相关操作管理,维护文件传输,视频与语音传送等。Resloc.dll在自动升级等多个组件里被调用,可能包含确定服务器资源的代码,比如进行服务器端的负载均衡时的客户端选择代码。Bobo.dll里面应该包含主要的信息编解码与加密解密函数。

Android程序结构解析

Android是当下智能手机市场的主流操作系统,在最近的几年内需求量一直不可忽视,也有着越来越强大的趋势,今天我给大家详细讲解下android程序结构目录的组成:先看下面这幅人工图: zhuwangb...
  • cl05300629
  • cl05300629
  • 2013年12月26日 11:18
  • 1904

C#程序结构分析实例

首先,我们来输入一段C#程序 using System; namespace Acme.Collections { public class Stack { En...
  • thebestleo
  • thebestleo
  • 2016年09月11日 22:53
  • 1276

[Matlab]基础教程学习笔记(二):程序控制结构

首先先来看一下m文件的相关介绍。 一般来说很少直接在控制台输入相关内容,用MATLAB语言编写的程序,称为M文件。 M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文...
  • wxg694175346
  • wxg694175346
  • 2013年03月11日 16:01
  • 4117

JS之程序结构

分支结构 一个条件, 一件事, 满足条件就执行 短路逻辑: 条件&&(操作1;操作2;…), 此法当操作非常简单时使用 if(条件){满足条件时, 执行的代码} 一个条件, 两件事, 二选一执行 ...
  • mr_minlong
  • mr_minlong
  • 2016年02月23日 16:51
  • 600

JavaScript的程序结构

程序结构 分为三大类: 顺序:程序默认都是从上到下逐行执行 分支:根据条件判断的结果,有选择的执行不同 循环:程序可以反复执行同一代码段,到达临界时退出 ***********************...
  • ruthywei
  • ruthywei
  • 2017年05月17日 22:44
  • 329

Java程序结构初步分析

 完整java源程序结构:package语句;//该语句至多一句import语句; //该部分可以有若干import语句或者没有,必须放在所有的类定义之前public classDefinition;...
  • rsp19801226
  • rsp19801226
  • 2008年12月24日 16:30
  • 6637

分析一个设备驱动程序结构

http://blog.jobbole.com/86531/
  • qq_26437925
  • qq_26437925
  • 2015年10月31日 13:51
  • 240

单片机程序结构再分析

在学C++时对对单片机程序有一些新的想法。     转载请标明本文地址:http://blog.sina.com.cn/s/blog_6f2b6ba80101c3xi.html     在《单片机用定...
  • nicekwell
  • nicekwell
  • 2013年07月18日 15:17
  • 1480

第一个c#程序结构分析

//引入命名空间 using System; using System.Collections.Generic; using System.Linq; using System.Text; using...
  • Naruto_Hinata_
  • Naruto_Hinata_
  • 2017年03月05日 22:37
  • 95

C 程序结构分析

工具的使用 1、nm的使用
  • moleng_56
  • moleng_56
  • 2014年03月18日 10:14
  • 281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:popo2004程序结构分析
举报原因:
原因补充:

(最多只允许输入30个字)