Archive for 八月, 2013

C84东方辉针城封包分析

星期二, 13 八月, 2013

_(:з」∠)_首先在这里感谢前辈的工作 https://code.google.com/p/thtk/downloads/list

然后再来拜一下ZUN神……有米的话大家还是支持下正版、反正正版才1K円、也不是很贵。

解包以后的TH14
20130813073524
为了提升能力,封包结构什么的果断还是自己看、

这里是我调试用的udd、各位有兴趣可以自己看。我导入map的时候手滑点错ida版本了、=。=结果导入了一个提示不够给力的map,嘛、不过还好用到的函数还都比较好识别。

TH14的封包跟以前对比只更换了一个Limit、其实图快的话直接改原解包程序即可。

其他部分都是没有变化的。
_(:з」∠)_我们一起来欣赏下ZUN的封包结构。

Read the rest of this entry »

进击的解包器 AQUA STYLE封包完全解析程序

星期一, 5 八月, 2013

= ̄ω ̄=
解包器下载:nfaExtract
回头来看、这封包把拓展名和文件名都日了还真是蛋疼。

封包里一共几种格式.lua .ogg .wav .tga .dds
判断下文件头然后格式就出来了、但是文件名比较蛋疼。_(:з」∠)_话说这样的封包在游戏里调用起来真的方便么。

还有万恶的SIMD2扩展=。=这生成的汇编代码怎么让人在OD里看嘛、全都是乱码怎么看嘛。

代码全重写了。_(:з」∠)_感觉之前写的那个解包类外表上看上去很有误人子弟的感觉、其实是游戏里是递归调用判断cryption标志进行相应的解密的。

一起欣赏下新的解包器工作的界面吧……
20130805170428

放出修改以后最核心的部分代码(* ̄︶ ̄)y 其他的部分比较容易大家自行脑补就可以了,这里需要注意的是readPackage是个递归调用父封包readPackage进行读取数据和解码的函数。
Read the rest of this entry »

AQUA STYLE游戏封包分析

星期日, 4 八月, 2013

RT、只是粗略分析、这东西一堆STL、然后好像托管C++都用上了、逆起来太蛋疼、一堆类对象、搞起来简直是找虐的感觉。

目标游戏:不思議の幻想郷2 みらくる☆パーティー
游戏厂家:AQUA STYLE
封包:lotusland4.dat

封包相关结构

需要注意的是有Flag4的封包是Zlib压缩的、=。=那块基本不需要处理、直接把子封包数据块Dump成NFA封包即可、回封的时候直接把原子封包加在dat封包里即可。解压了的话所有文件的体积可是相当的庞大、好像有7G之多。主要是那块懒得写了、╮( ̄▽ ̄”)╭ 封包相关的内容现在已经基本逆完了,_(:з」∠)_偷懒中……

首先dat封包的头部是sig、sig是NFA0、我们干脆就叫它NFA封包。然后NFA封包的下层结构也可以是NFA封包、或者是压缩过的NFA封包、在这个样本中压缩过的NFA封包数据块是被加密的、说起加密。我们还是来看看相关的代码

首先是这里、0xE6才是真正意义上的Key、Key通过与0xEE异或产生用于解密的Key,这里是0x08

看一下解密后的标准文件头
20130804095900
可以看到dat的文件头上很标准的排列着NFAHdr,FileInfo,char Name[0x80],FileInfo,char Name[0x80],FileInfo,char Name[0x80]…这样的结构。

没有压缩Flag的子文件解包请看005B78A0这个函数。
没有压缩Flag的文件头解密后,橘色部分是标准文件头、
20130804093105
带压缩Flag的子文件解包请看005B7F70这个函数。
带压缩Flag的子文件解压解密后、红色部分是FileInfo
20130804093210

红色部分三块都有、是FileInfo结构、每个文件3个DWORD描述文件的偏移原大小和一个Flag。
文件名部分是长度为0x80的char数组、只有dat这个最顶层结构有这个。子封包是没有这个结构的。顺便说这个结构是否存在是通过FileName那个Flag进行判断的。

其他的附上udd、各位看官有兴趣请自行下载调戏~
LotusLand4.rar

封包解析代码、渣代码我自重_(:з」∠)_各位见笑了……用这个代码可以成功释放出所有mov和游戏的lua脚本,比较奇怪lua里面为啥还会有ruby=。=嘛、没搞过lua和ruby的暂时先放放了、以后有空再搞。

剩下的汉化工作就是对导出的lua脚本进行放尿Play、羞耻Play【我自重、_(:з」∠)_总之大概就是这个样子了。
Read the rest of this entry »