51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4961|回复: 0
打印 上一主题 下一主题

传奇源码分析-客户端(传奇2和3 文件格式分析比较)

[复制链接]
  • TA的每日心情
    慵懒
    2015-1-8 08:46
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-12-13 10:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    贴这个贴子,希望大家少走弯路。网上下载的那个版本应该是从传奇2改的,传奇3的格式。分析一下源码吧,g_xLoginProc.Load(); 之后就加载m_Image.NewLoad(IMAGE_INTERFACE_1, TRUE, TRUE);     继续读Wix文件,
        ReadFile(hWixFile, &m_stNewWixImgaeInfo, sizeof(NEWWIXIMAGEINFO)-sizeof(INT*), &dwReadLen, NULL);  
        // WIX 文件头格式 (56Byte)(NEW)
    typedef struct tagNEWWIXFILEIMAGEINFO
    {
    CHAR szTitle[20];   // 库文件标题 'WEMADE Entertainment inc.' WIL文件头
    INT  nIndexCount;   // 图片数量
    INT* pnPosition;    // 位置  
    }NEWWIXIMAGEINFO, *LPNEWWIXIMAGEINFO;
        不看不知道,一看吓一跳,大家看到了吧,这个是新的WIX的定义,不是传奇2的,前面分析过传奇2的图片:  0x23地址(含该地址)以前的内容是都相同的,即为:#INDX v1.0-WEMADE Entertainment inc.   Ofs44 0x2C的地方:存放着0B 00 00 00,高低位转换后为:0xB转换十进制数为11(图片数量)Ofs48 0x30的地方:存放着38 04 00 00,高低位转换后为:0x438 = 1080, 这个就是图象数据的开始位置。这里才20个标题长度。 一看就不对。所以如果你下了网上的传奇3的格式,试着读传奇2的图片,是不正确的。具体大家可以调试一下,我调试过了,里面的图片数量根本不对。
            汗,居然让人郁闷的是, // WIX 文件头格式 (56Byte)
    typedef struct tagWIXFILEIMAGEINFO
    {
    CHAR szTmp[40];     // 库文件标题 'WEMADE Entertainment inc.' WIL文件头
    INT  nIndexCount;   // 图片数量
    INT* pnPosition;    // 位置
    }WIXIMAGEINFO, *LPWIXIMAGEINFO;我用了这种格式也不对。为什么不对,因为我前面分析过了,0xB转换十进制数为11(图片数量)Ofs48 0x30的地方, 看到没有,图片数量的存放地方。 所以赶快改一下数据结构吧,不知道为什么,难道是我版本有问题,我下了几个资源文件,结果发现问题依然存在。看来不是图片的问题。
    另外,下面的工程里的图片,如果要运行,不用改数据结构,请到传奇3客户端官方网站下载。我下载的是1.5版的资源文件。 是传奇2的资源文件。祝大家好运吧!






    传奇文件类型格式探讨(二):
    // WIX 文件头格式 (NEW)
    typedef struct tagNEWWIXFILEIMAGEINFO
    {
        CHAR    szTitle[20];   // 库文件标题 'WEMADE Entertainment inc.' WIL文件头
        INT     nIndexCount;   // 图片数量
        INT*    pnPosition;    // 位置

    }NEWWIXIMAGEINFO, *LPNEWWIXIMAGEINFO;

    我们下载一个Hedit编辑器打开一个Wil文件,分析一下。我们发现Wix文件中,0x13地址(含该地址)以前的内容是都相同的,即为: ‘                   ’20个空格。
    图片数量: nIndexCount 18


    Ofs 20, 0x14的位置,存放的数据为12 00 00 00,高低位转换后为:0x12十制数为18(图片数量)。Ofs28 0x1C的地方:存放着20 00 00 00,高低位转换后为:0x20 = 32, 这个就是图象数据的开始位置。
    我们用Wil编辑打开对应的Wil文件,发现,果然有17张图片(减1)。另外我们发现,在Ofs28 0x1C的地方= 28 -31之间的数据总是20 00 00 00,终于明白,所有的图片起始位置是相同的。

    抓图分析,自己就再分析一下吧,和传奇2的结构差不多。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-16 07:42 , Processed in 0.063331 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表