evozhui 发表于 2009-9-21 20:48

★ 关于NFS_13 SHIFT ".bff 文件" 的最新研究"

一些来自国外著名论坛 "game research forum" (即"游戏研究论坛",该论坛有着20年的历史~,也成功破解及言发过不少游戏的文件修改工具和文件解密算法等..) 所获得的消息.
---------------------------------------------------------------------------------------------------------------
关于NFS_13 SHIFT 中 ".bff " 游戏文件的解密及分析有了一些小进展及眉目,这也意味着SHIFT中的".bff "文件一旦可以用研发工具导入/导出,那么 "SHIFT" 补丁的出现也即将跃跃欲试! 下面就和大家一起了解其中的详细内容吧~


此截图来自"game research forum"论坛.
http://i630.photobucket.com/albums/uu27/evozhui/796544.jpg


详细内容为:
(括号内为翻译内容)

dijotp:

Hi.   Anybody know how to extract these .BFF files?
Samples: http://66.7.218.134/~usaportu/pub/BFFs.rar

(嗨。 有人知道如何解压缩并导出这些.BFF文件么?样品:http://66.7.218.134/~usaportu/pub/BFFs.rar)



demolos:

this game use zlib compression i looking into shift.exe with hexadecimal and i found
zlib:Error decompressing asset (zlib inflate): %s in pakfile %
also i suppose the bff archives contain xml files you can try to use Jaeder Naub to scan and rip the files inside bff archives.

我使用十六进制进入shift.exe文件看出这个游戏使用"zlib"进行压缩,我发现"zlib"提示解压错误:"(zlib inflate): %s in pakfile %"
同时我想bff档案包含XML文件,您可以尝试使用Jaeder Naub扫描和解开bff档案内的文件。


Bugtest:

no, it's not zlib.
the most probable hypothesis it's that it uses chunks of 0x800 bytes compressed with a lzx-like algorithm.
this is the max I can say without the game.

不,它不是"zlib".
最可能的假设,那就是它使用类似的lzx压缩0x800字节算法块。
我能毫无疑问的确定这游戏.



Bugtest:

I have started to work on it this morning.
I have already figured almost all the fields included the rc4 encryption used in some bffs.
the compression algorithm should be called XMemDecompress and I guess it's referred to a cross-platform xbox function.
I will keep you update if there are news.

我今天上午已经开始做这工作了.
我已经猜到几乎所有的领域包括RC4加密的一些对bffs的分析.
这压缩算法应称为XMemDecompress,我想这已经提升到了跨平台的Xbox功能.
我会让你知道是否有更新的消息.





dijotp:

Thank you Bugtest, you rock. http://forum.xentax.com/images/smilies/emot-keke.gif

谢谢你Bugtest.http://forum.xentax.com/images/smilies/emot-keke.gif




Savage:

I found some info about Xmemcompress http://forums.gtamodding.ru/index.php?showtopic=10

我发现一些关于Xmemcompress的信息 http://forums.gtamodding.ru/index.php?showtopic=10





Bugtest:

good news, I did it :)
so stay tuned for a new version of QuickBMS and the needed script when all the tests will be finished completely.

好消息,我做到了:)
我反复研究"QuickBMS"新版本和调整所需的脚本时,所有的测试将全部完成.





Savage:

http://forum.xentax.com/images/smilies/eek.gif

翻译略...





Bugtest:

new version of quickbms: http://aluigi.org/papers.htm#quickbms
and the needed script for Need for Speed Shift: http://aluigi.org/papers/bms/nfsshift.bms

"quickbms"新版本 : http://aluigi.org/papers.htm#quickbms
和所需要的"Need for Speed Shift"脚本 : http://aluigi.org/papers/bms/nfsshift.bms





japamd:

Wonderful job!
If the string are translated, how do I put the files together again?
Thanks!

出色的工作!
如果字符串被翻译,我如何把文件再次聚合?
谢谢!





Bugtest:

I make only the extractors.

if someone wants to write a quick rebuilder I suggest to use X12d equal to 0 (no encryption) and ever type 0 for each file so that it's not needed to use the compression.
the crc calculated on the files is just the simple classic one:

CODE
unsigned int crtable[...0x77073096 polynomial...];
unsigned int crc = 0xffffffff;
for(i = 0; i < len; i++) {
    crc = crctable[(data ^ crc) & 0xff] ^ (crc >> 8);
}
return(crc);



我只能导出它们.
如果有人愿意写一个快速重新聚合的脚本,我建议使用X12d等于0(没有加密)和不断类型0的每一个文件,以便它不需要使用压缩.

脚本
unsigned int crtable[...0x77073096 polynomial...];
unsigned int crc = 0xffffffff;
for(i = 0; i < len; i++) {
    crc = crctable[(data ^ crc) & 0xff] ^ (crc >> 8);
}
return(crc);




zeeh:

Cool http://forum.xentax.com/images/smilies/).gif I hope soon we should have compiler working, good job

酷http://forum.xentax.com/images/smilies/).gif 我希望很快我们应该有编译器的工作了,好工作




OtherOne: .......................

其他人:略...........










现在暂时也只能期待有更快出现的NFS SHIFT 文件导出/导入工具的出现了~





Evozhui
2009.09.21

woshizet126 发表于 2009-9-21 20:52

楼主的帖子还是一向很专业的呵呵感谢分享    技术控可以一起来研究下~

Baos 发表于 2009-9-21 20:54

支持了,自己学着改一下参数
页: [1]
查看完整版本: ★ 关于NFS_13 SHIFT ".bff 文件" 的最新研究"