加载中,请稍候…

资讯 英语
舍得茶室 方法
SuperMemo Rosetta
TellMeMore Aboboo
课程 视频
软件 电子书
学苑 博客
空间 微博

新版SMPAK文件格式揭秘

2013-07-11 20:48:45   来源:舍得学习力博客  作者:舍得

SuperMemo官方最近将Extreme English系列更新到2012版,此版加入了大量的图片和语音,其中包括大家一直在期待的例句语音。

从官方下载到的升级包(需购买,每个级别的课程售价9.9欧元)不再象以前那样可以直接使用,因为官方重新定义了 SMPAK(包括SMDIF)包的格式,即便你拿到升级包,你还是需要输入激活码,通过官方服务器的验证后方可使用。要想绕过这一关,最可行的方案就是, 对新老升级包及原课程包进行解包操作,合并后再进行打包操作,生成新的课程包。

不过,由于官方已对SMPAK格式进行了改动,要对新升级包进行解包,必须修改之前的解包代码。

事实上,改动的部分并不算多,主要的修改有以下几个部分的内容:

一、文件头部


头部的变化主要在于文件列表区偏移值(EntrChnk)和名称区偏移值(NameChnk),这两个值的位置若计算错误的话,整个解包操作将无法完成,改动后,头部的信息由原来的20字节扩大到34字节.

前12字节内容不变:

8字节:-SMArch-
2字节:版本号,00 02

2字节:锁定标识,03 00

第13-26字节:推测此处储存的是与激活课程相关的代码;
第27-30字节:

EntrChnk的偏移值;
第31-34字节:NameChnk的偏移值;

二、名称区的变化


名称区的第一大变化是取消了原来跟在NameChnk标志后的4个字节的名称区尺寸信息,估计官方也发现了,这个数据本来就是可有可无的。这一变化是无法忽视的,因为若不对此数据进行处理,文件名将无法正确读取。

名称区的第二大变化是在每个文件名用“|”隔开,不过这个变化对于我们的解包操作并无影响,因为在文件列表区的数据中,已经自动将“|”所在的位置“过滤”掉了。

我们只要针对上述两大块的变化,对原有的解包代码进行处理,就可以完成新SMPAK格式的解包操作。

本文版权归舍得英语魔法学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:
舍得@学习力博客



【TAGS】

【相关文章】
  • 【十二月福利】《驾考宝典》之科目四(SuperMemo)
  • 如何打开SuperMemo课程中隐藏的练习?
  • SuperMemo新手指南之版本的选择
  • SuperMemo UX新手指南:如何手动加入音频,并自动播放
  • SuperMemo UX问答篇:如何用SuperMemo来学好拼写?
  • SuperMemo问答篇:如何用SuperMemo来学习一门编程语言
  • SuperMemo UX问答篇:巩固练习中的评分并不影响学习进度
  • SuperMemo UX问答篇:随时修改课程内容
  • 如何利用SuperMemo词库转换精灵制作iphone版词库?
  • SuperMemo,你的超级笔记——用增量阅读搞定教科书
  • 来顶一下
    返回首页
    返回首页

     分享: 分享到QQ空间 转贴到开心网 分享到校内网 添加到百度搜藏 Sina ViVi 添加Google书签 Yahoo收藏 添加到鲜果 转发到新浪微博 我要评论】【进入论坛】【社区空间
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表
    关于我们 | 诚聘英才 | 友情链接 | 联系我们 | 意见反馈 | 网站地图 | 版权申明 |
    舍得学苑 备案号:冀ICP备11024081号-1
    Copyright © 2009-2015 eMagic.org.cn, All rights reserved.