设为首页收藏本站官方微博

汉化工具 皇室的麻烦解包工具

[复制链接]
查看: 5602|回复: 17
打印 上一主题 下一主题

[汉化工具] 皇室的麻烦解包工具

跳转到指定楼层
楼主
发表于 2010-10-15 17:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

皇室的麻烦解包工具

本帖最后由 shane007 于 2011-4-5 11:52 编辑 3 Y" s$ Q+ u" M5 V3 ?" K# R8 T

/ s0 R: H+ ^* q& t  T6 I4 `在老外包文件结构的基础上。我写出了解包工具。$ c2 \1 c; E& Y& r6 U
大致看了一下,这个游戏汉化的希望是很大的,以后再继续研究。
  1. , l- W+ \& X# Q, z
  2. goto -1
    / p# T3 u6 i  U2 Q/ L9 }8 K# ^
  3. SavePos OFFSET_TAIL4 Q$ A0 j% M' _: @# O
  4. goto 8
    8 y2 a/ s2 ~; m
  5. set FOLDER_NAME string ""
    / L) |0 w7 q' [3 j* @9 ]" [5 b
  6. set FILENAME string ""2 G7 q( U$ I4 v7 J6 y/ U8 p
  7. set FULLPATH string """ ]7 b6 H( V( D1 B# N
  8. Do
    ) w2 v8 i% G& w
  9.     get NSIZE long
    % R4 [0 A6 N  @9 V; V5 F. j9 y
  10.     GetDString FILENAME NSIZE6 S) Q0 @2 k: p, q5 }6 l0 ?9 Y
  11.     get FILE_FLAG byte7 P* W; V. S2 o( N7 G
  12.     get OFFSET long
    ) d# \& s0 q) e5 C* Y& Q# n+ N
  13.     get UNK3 long$ j8 t6 k0 m8 W8 U! Y
  14.     get UNK4 long
    : I3 G) G% p! R2 s9 B& u# T, P
  15.     get SIZE long6 D, u1 Q+ O3 P' O- c( F( ~
  16.     get ZSIZE long
      k2 a9 p% W( l7 H3 [3 Y2 Q. g: w
  17.     if FILE_FLAG = 0
    : T, ^4 V* W5 I% v$ x) H8 E
  18.         ComType bzip2" }+ H  K/ I; K3 \
  19.         string FULLPATH p= "%s\%s" FOLDER_NAME FILENAME; v# \$ [  t/ R; n9 @% g
  20.         Clog FULLPATH OFFSET ZSIZE SIZE2 a5 W! t. }% Y1 i, K( D! A. ~
  21.     else2 I5 W- C3 O+ R( C3 }
  22.         string FOLDER_NAME = FILENAME6 ^1 k! x+ p  G: D1 Q3 @
  23.     endif9 `: h# E- H2 C$ F" I; o2 c
  24. While OFFSET < OFFSET_TAIL
    1 Z9 ~) Q+ H+ ]  [
复制代码
-------------------------------------------. X. s) x0 o" E- ]4 ?
2011.4.5 更新) V+ U1 {/ q8 j/ i
当文件为目录的时候,发现UNK4 是这个目录下的文件数。2 ]3 s- W5 U6 P. k, V
但发现目录有重复,以及同一个目录下的文件也有重复的情况。
  1. , V" `2 w( O7 D: |
  2. goto -1
    3 I0 x4 i7 [1 V: \# \6 U
  3. SavePos OFFSET_TAIL
    6 R3 w! m* |9 X! U- u# \
  4. goto 8
    7 V3 i2 x: w: b; d9 w9 \" F/ B/ w

  5. , s2 @) {6 W7 `) M' f, M
  6. set FOLDER_NAME string ""6 j* x6 P/ G4 ]" V
  7. set FILENAME string ""
    & e# L' h+ G( Q& S( Y
  8. set FULLPATH string ""
    9 H$ X# W* |  K8 g7 Q" W  |9 Q

  9. ' J# H. p) d0 L' m5 Q8 _
  10. set idx long 0
    / Q; v, h7 d9 Q5 Q3 V( r
  11. & C# _8 q3 {6 G$ e
  12. Do+ v+ h/ R5 C8 U- [% O4 n1 Y
  13.     get NSIZE long1 u" k* S% G' @5 ]; n
  14.     GetDString FILENAME NSIZE
    ; h/ G  |3 y2 ?! B7 q
  15.     get FILE_FLAG byte
    * i4 h+ a* [' K0 C/ v# y
  16. * H" @1 @( f  V1 q
  17.     get OFFSET long
    , Q" ^4 @; e2 {' X: N8 ~$ z
  18.     get UNK3 long' G: C3 c9 z! m6 N5 R
  19.     get UNK4 long' S/ I( c1 e% e
  20.     get SIZE long
    - {+ |8 ?- x5 p# c
  21.     get ZSIZE long
    . Y2 c8 l% z' A; H5 M, Y

  22. " t6 `6 Z7 U) J, k- z1 u
  23.     if FILE_FLAG = 0' t; q7 ]1 S  o& Q/ x" N- s
  24.         #ComType bzip2
    + D- d, t, e* m4 O+ w% H
  25.         #string FULLPATH p= "%s\%s" FOLDER_NAME FILENAME5 n5 [% k% d3 D7 M) U2 t
  26.         #Clog FULLPATH OFFSET ZSIZE SIZE! ]' y# `. @8 i1 A$ [# v6 J
  27.         print "%FILE_FLAG%,%UNK3%,%UNK4%,%FILENAME%"
    4 e3 @& z0 |7 ~' t
  28.     else' R9 b; w/ S/ S8 Y6 r8 E! d/ e$ P
  29.         #string FOLDER_NAME = FILENAME
      i' x. t: U1 j! F$ \
  30.         string FOLDER_NAME p= "%s####%d" FILENAME idx4 M( Y3 l% m' N8 A- C. C' q4 R
  31.         print "%FILE_FLAG%,%UNK3%,%UNK4%,%FILENAME%####%idx%"3 l" l( p+ q+ e+ j  h0 v6 [! t
  32.         math idx += 1
    / o5 T5 _( c6 R8 u3 Q
  33.     endif( g& A4 j. g5 n
  34. " W: N3 B4 v' ~
  35.    
    : o% b  J  o8 }) y

  36. + L# l7 g' L3 l
  37. While OFFSET < OFFSET_TAIL3 x3 }, K- L2 O: ]! ^( m- `
  38. : `! ?# h1 E6 j: X' J7 }$ j- K
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

18#
 楼主| 发表于 2011-4-5 11:49 | 只看该作者
2011.4.5 更新
" B  M1 Y6 G: ~+ T- i
回复 支持 反对

使用道具 举报

17#
 楼主| 发表于 2011-4-5 06:50 | 只看该作者
顶上来备用
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2010-11-12 22:10 | 只看该作者
还是不对,目录名前的斜杠也是不要的。' T0 o  ?: W( [, Q) h

7 K" g; Y" y" A! J$ L! M. W你最好还是下载一个游戏试试看吧,要求文件头部除了offset,size,zsie以外,其他的都和原文件一样。要求打包后游戏能正常运行。* {, k4 D0 C5 |
* V5 P- C+ t5 h% z) D) C6 M
包文件结构应该是先是size,再是zsie,老外的资料写错了,但我的bms脚本是对的。
回复 支持 反对

使用道具 举报

15#
发表于 2010-11-12 11:45 | 只看该作者
去掉了包里的临时路径,试试看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

14#
发表于 2010-11-9 00:02 | 只看该作者
来报道 2 {" {. N2 F; C1 r* b1 b

0 l$ E/ x6 K- t4 Z/ D7 [; BQQ:277161500
回复 支持 反对

使用道具 举报

13#
 楼主| 发表于 2010-11-8 16:37 | 只看该作者
收到,非常感谢!
3 g2 L! Z4 K; Z, T% C4 c* O等我抽时间来测试一下。
回复 支持 反对

使用道具 举报

12#
发表于 2010-11-8 10:10 | 只看该作者
使用方法:  tripDir.exe 需要打包的文件夹名 打包文件名
3 ~- ?0 j5 H& W  I! W如果不给第三个参数, 默认会打包在 &quot;.\\zipPack.z&quot;
6 |+ H, n. Q' {% h
8 C$ k9 T1 a  {. l  \压缩包里面包括了bzip2的可执行程序。另外有个测试文件夹tst2, 包括子目录, 中文文件名等等。
8 e: C5 T* g. G测试脚本: tripDir.exe .\\tst2: {6 C! G; E" c5 b
. r7 q; i' u! a2 x" t: u* f7 K& p
源码里面加了很多注释, 各位可以看看, 有什么不decent的地方欢迎拍砖:D
2 `( m" Y$ O1 Z3 e1 a+ l3 i---------------------------------------( A6 D: h5 E9 @( o  y/ {+ F4 q5 E
终于搞定了...这事情拖了好久, 找原因的话一个是自己windows系统编程方面不熟, 另外就是办事太拖拉了。
( Q, W5 S( z% d2 P2 a. C
3 q( [/ D3 r& X# q* K- Y' f- c主要是两个问题比较费时间:( a6 z* e4 ]" z
1. 原来解压缩的问题, 是因为我用的quickbms是0.2.X的版本, 回头下了一个最新版本的就ok了
0 b: M0 y" o! U2. 就是windows系统下目录遍历的问题, 之前读写文件都是用c语言的函数的, 又是翻书上网查了一阵, 那些命名还有就是wchar/char的问题搞得有点晕。有个需要注意的地方就是这个脚本的目录和文件的打包规则不同——目录的路径是完全的, 而文件只有文件名没有目录, 之前的目录路径用的是一个上一级访问得到的目录名。带来的问题就是在打包一个文件夹时, 要先打包下面的文件, 在打包下面的子目录。因为如果交错打包子文件和子目录的话, 文件前面的路径就乱掉了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

11#
发表于 2010-11-4 09:54 | 只看该作者
压缩包里是写的一个试验性质的打包器。之前没加入压缩部分正常运行。6 r$ p# m/ A' X) P: s1 @
晚上我试试你给的那个库
' K% o' e5 `% I- ^8 d" f: e/ J$ c( S
$ ]$ s" L, E6 S6 w6 E6 J解包器:
( R. a7 I- d# q) cget FILES long
# i0 V5 z9 I7 K5 i. nget HEADERSZ long
8 O8 H+ T, M: T9 z( c8 ]for i = 0 &lt; FILES - {* W0 k1 I, p; j9 e0 b+ N
get NSIZE short 4 E) {7 }: r% V5 O9 c" O4 n
getdstring NAME NSIZE$ y/ |' Z3 Y- E* N4 A- B( V
get OFFSET long    . L: [! o: m) E+ M1 i
get SIZE long    / z& H4 t, g: Q( W7 X
get ZSIZE long( I3 U, N  |* M" p% ?3 o" E
ComType bzip2
& M1 m+ `8 L, Uclog NAME OFFSET ZSIZE SIZE   * H2 d. U* P  l1 }( g
next i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2010-11-4 08:00 | 只看该作者
试试看这个
3 o5 ^: N: z7 yhttps://www.chinaavg.com.cn/read.php?tid=24940! ]. a& V( k9 p; H
2 }* q7 a/ K1 G& {0 g+ P' E
我测试过,压缩过的可以正常被quickbms解包。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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