仙5卖得真的很火爆啊,我到现在还没拿到货。

于是迫不及待地下载了数字版,安装。

看完了CG过场动画,感慨着女一号竟然在游戏还没有结束就香消玉殒了啊。悲催的小凡子。

然后实在对着这个4GB的家伙没事做了,那就拆解了它吧。

破解就不玩了,一是不怎么合法吧,二是脱壳技术菜,我不知道要脱到猴年马月啊……

听仙5的音乐吧……听音乐它还非要弄个PKG文件。

用WinHex打开呗,标识为PK3.0,这不是zip的吗?直接改ZIP解压错误。

悲剧了,看了下文件大小,转16进制,和第二行的数据好接近啊,那第二行前四字节就是有效数据的大小了吧,接着的四个字节不知道是什么东东……

然后就是一堆一堆数据了。起初打开music.pkg时没有注意细节,以为pkg文件用了压缩算法。

但打开sound.pkg文件,看到了RIFF字符,这不是wav文件的块名吗?于是便在music.pkg里找mp3。

FF FB 90 04就是mp3块的分割长整字节啊。但是这四个字节咋就那么多呢,不能作为一个文件的标识啊。

截出两个文件比较了一下,每个mp3文件FF FB 90 04开头后都会有32个00。

那还说什么,写个程序把所有家伙都搬出来啊。

#include <conio.h>
#include <stdio.h>
#include <alloc.h>int readdata() {
FILE* f;
FILE* out;
unsigned long p = 0;
int x1,x2;
unsigned long px = 0;
int count = 0, fcount = 0;
char r = 0;out = fopen("h:\\pal5.txt","wb+");
f = fopen("h:\\game\\pal5\\music.zip","rb");printf("open pal5.txt to output...\n");
printf("open music.zip to read data...\n");while(!feof(f)) {r = fgetc(f);px++;if(r==0) {if(count==0) p=px;count++;} else {if(count==32) {p=p-5;fwrite(&p,4,1,out);fcount++;}count = 0;}}
fclose(f);
fclose(out);
printf("finish initializing...\n");
return fcount;
}void outputdata(int n) {FILE *f,*out,*mc;char data[1024];unsigned long p1=0,p2=0;int i;char buf[1024] = {0};mc=fopen("h:\\game\\pal5\\music.zip","rb");f=fopen("h:\\pal5.txt","rb");printf("[start output music]\n");for(i=0;i<n-1;i++) {printf("%2d ",i);if((i+1)%10) printf("\n");sprintf(buf,"h:\\pal5\\%d.mp3",i);out=fopen(buf,"wb+");fseek(f,4*i,0);fread(&p1,4,1,f);fseek(f,4*i+4,0);fread(&p2,4,1,f);fseek(mc,p1,0);p1=p2-p1;while(p1>0) {if(p1>1024) {fread(data,1024,1,mc);fwrite(data,1024,1,out);p1-=1024;} else {fread(data,p1,1,mc);fwrite(data,p1,1,out);p1=0;}}fclose(out);}printf("\n");fclose(f);fclose(mc);
}void main() {clrscr();outputdata(readdata());
}

上面程序没有截取最后一个mp3,自己查下pal5.txt的输出,然后从偏移开始到最后把它取出来就ok了。

然后62首mp3就在文件夹里了,开听……

有兴趣还可以搜搜model,毕竟仙5用的ReaderWare嘛……

以上仅供学习使用哦……-_-/// 得支持下正版~~~

J.Y.Liu

2011.07.09

把仙剑奇侠传5的音乐从pkg里请出来变成mp3吧相关推荐

  1. 怎么样手机里面的计算机发出音乐,周三手机课︱怎样把U盘、电脑、微信的音乐存在手机里?...

    原标题:周三手机课︱怎样把U盘.电脑.微信的音乐存在手机里? 01 如何将U盘里的音乐存储到手机里? 以前是将U盘插上电脑,再由电脑传到手机即可.但现在很多新款手机已不用这么麻烦了,可以直接通过OTG ...

  2. 怎么把音乐放在计算机里,请问,怎么样把电脑里的歌曲拷贝到CD光盘里,在车上听?是不是一定要烧录机?...

    请问,怎么样把电脑里的歌曲拷贝到CD光盘里,在车上听?是不是一定要烧录机?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...

  3. 2023-06-04:你的音乐播放器里有 N 首不同的歌, 在旅途中,你的旅伴想要听 L 首歌(不一定不同,即,允许歌曲重复, 请你为她按如下规则创建一个播放列表, 每首歌至少播放一次, 一首歌只有在

    2023-06-04:你的音乐播放器里有 N 首不同的歌, 在旅途中,你的旅伴想要听 L 首歌(不一定不同,即,允许歌曲重复, 请你为她按如下规则创建一个播放列表, 每首歌至少播放一次, 一首歌只有在 ...

  4. html音乐播放器样式,html5扁平化mp3音乐播放器样式代码

    特效描述:html5 扁平化mp3 音乐播放器样式.扁平风格的简易的mp3音乐播放器样式代码.html5 mp3音乐播放器 代码结构 1. 引入JS 2. HTML代码 0:00 0:00 'use ...

  5. 如何将QQ音乐SQ品质FLAC格式转换成MP3音乐

    相信腾讯公司旗下的QQ音乐大家都应该用过吧,QQ音乐客户端中有很多实用的功能,比如:可以将音乐传到手机上,可以制作铃声,可以自定义皮肤,还可以将音乐保存到腾讯微云中.当然,QQ音乐还可以设置音效,以前 ...

  6. 如何将QQ音乐SQ品质FLAC格式转换成MP3音乐 1

    相信腾讯公司旗下的QQ音乐大家都应该用过吧,QQ音乐客户端中有很多实用的功能,比如:可以将音乐传到手机上,可以制作铃声,可以自定义皮肤,还可以将音乐保存到腾讯微云中.当然,QQ音乐还可以设置音效,以前 ...

  7. 怎样把音乐存到计算机里,如何把CD光盘中的歌曲复制到电脑

    怎么才能把CD盘上的歌曲拷贝到电脑上呢?如果你直接复制CD的话,实际上你只作了个"快捷方式"在硬盘里,并没有复制成功.可以用音频抓轨软件从cd复制无损音乐,或者还可以通过Windo ...

  8. python利用charles爬虫爬取下载qq音乐歌单里的歌曲——多进程

    因为这是我第一个独立实践的爬虫项目,所以这次把思路都放上来了 特别注意,用的是charles,可以拦截查看url 知识点: ·······利用charles分析网页,抓包,得出对应URL ······ ...

  9. 有些音乐在mp4里不能播放

    下载的音频在手机上播放没问题,放到mp4里就播放不了,然后发现音频变味0kb了.很奇怪呀. 最后发现问题出在mp4的自带内存卡上,我的内存卡是32g的,但是其实是被改过内存的,格式化后只有16g内存. ...

最新文章

  1. Ajax无刷新实现图片切换特效
  2. LazyListBoxHelper 动态分页
  3. 抽取+生成:一种基于背景知识的参考感知网络对话模型
  4. C++实现一个栈(使用类模板)
  5. C# 客户端内存优化分析
  6. 2018python做图形界面哪个库简单_2018年常见的python编程开发库都有哪些类型
  7. Flask构建微电影(一)
  8. /proc/meminfo文件内容详解
  9. memento about Linux
  10. 第五章、SQL 语言学习(基础篇)
  11. 黑马程序员ssm总结[大全版本,有对应pdf+源码](spring->springmvc-->springboot-->maven高级->cloud微服务)
  12. SpringBoot集成mybatis拦截器修改表名
  13. 使用WinDbg分析Dump文件(蓝屏示例)
  14. 发卡行 收单行 收单
  15. 前端性能优化实践:让视频加载也“懒”一点
  16. windows中用注册表删除guest账户
  17. 自动摘要生成(二):由PageRank转变而来的TextRank算法
  18. 中秋节活动中奖名单公布啦!!
  19. 用公式π/4≈1-1/3+1/5……求π的近似值,要求直到最后一项的绝对值小于0.000001为止。
  20. STM32 IO口输出高低电平

热门文章

  1. python代码入门教程_Python入门教程丨1300多行代码,让你轻松掌握基础知识点
  2. MySQL 中间件 Mycat
  3. excel两个表格数据对比_Excel如何对比两列数据
  4. html页面确认按钮浮动,html的浮动按钮
  5. 魔兽争霸3冰封王座黑边问题
  6. 自动修复无法修复你的电脑 解决方案
  7. android allow usb debugging,远程调试Android设备 - Chrome 开发者工具中文文档
  8. 使用EXCEl宏批量生成超链接
  9. SQL入门之第二十讲——SQL日期函数介绍
  10. 解决报错Error: libzip5-tools conflicts with libzip-0.10.1-8.el7.x86_64