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

汉化资料 xmle文件的破解

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

[汉化资料] xmle文件的破解

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

xmle文件的破解

饿...本来想还是自己注册个号的,取个有点个性点的名字,结果发现今天不能注册 [s:70]7 v) V4 X  a; e6 u4 X5 }
+ T8 x) Q1 D' a( t
PS.一下,偶是粥粥兽啊,HOHOHOHO* V. ?0 ?1 i& }7 Q# v

2 i* Q/ P) `8 ]& d0 \5 p那么就来说一下我对大鱼游戏中经常出现的xmle文件的发现吧% M5 o; e, f9 C
因为一个偶然的巧合,咖啡发给我的游戏里有个XML文件夹,我粉高兴,觉得这下肯定很好解决了,结果打开一看) q$ r% s5 X2 U* ]! w
却是xmle文件,改成xml却也是打不开
6 K* X  v! N) q( L$ |) x& O  f: z& S* c$ f
用CT打开一看才发现这哪是XML啊( L$ ~' i0 o7 H/ r* E5 x
网上查了查无果,可琢磨着,这不是XML为什么要放在XML文件夹呢,于是我再次运用CT,盯着那些文件看,总算发现/ g/ c1 Z! Y$ a: k; `
他们的文件头6 \7 G" b# i/ Z4 @
=>ylm!wdsrhno<#0/1#!dobnehof<#tug,9#>?) c% a$ E8 Z' q0 V* H
感觉有<有>还有?怎么看都有点像是XML文件的开头啊,怎么回事呢?于是我找来了份XML文件做比较
2 O/ K7 N+ k. d: G, d一开始还没发现这么明显的破绽,哈哈,硬是对着ASCII表去看的,发现5 F* _5 F& z- g
=<, >和? 都在一块,才发现原来只是+1的关系啊
6 K' O  ?; ?3 B. K0 c原来没看仔细,哈哈,破解一下后还不对再仔细研究的时候发现了这个秘密(已经圈出)
! f7 B- x/ ~9 N8 v. z8 b一开始还没看懂呢,心里纳闷,怎么一会儿是+1一会儿是-1,到底是怎么回事呢?这么没规律,后来追踪了某个字母(好像是e)3 o$ I2 @6 l+ a* Y; |9 Y/ j/ e
才发现在那文件里,e一直是+1的,8 s8 O: ~2 B+ @% [- i

8 I: P: ^. w6 o才发现原来从xmle到xml的转换完全是按照ASCII代码来的
# c" s& {0 L& G2 n3 N+1 -1 是看ASCII的单,双数决定 (不好意思,我记性不好,又忘了哪个是+哪个是-了...后来写CODE也是....只能在解开来发现不对再改一下.....)
0 Y3 W3 b! d, B9 P5 P, }# r& l- K
于是我就开始写代码了,很简单的C++代码" C  t. N# D! E( P  f* I" Q

% B, Y$ G1 K7 Z+ E1 Pint main()0 Y' @6 ]/ u& d5 Y( ]* E
{0 W( ?0 {; F% F- i( e
    fstream fin;1 p: X9 N$ F! u0 T' r' B
    fstream fout;7 O& P7 H& z: A; f
    //right now we are decoding *e files
8 D; @2 ^" Q. w( X# B, m- h( M    fin.open("test.xml",ios::binary|ios::in);
0 ^) O4 h: M% M/ d' @$ n! E' {3 H    fout.open("text.xmle",ios::binary|ios::out);
0 r  H' ^8 I# h( E* T* t  \+ {6 X* _5 t: o# j' H4 L' @- L
    if (!fout.is_open()) printf("outfile cannot be opened\n");
' V; ]% p/ F9 m) m9 E  `: A/ r$ d$ k. L' t
    fout.seekp(0,ios::beg);1 R: k- H) t- p: `. J- A
    fin.seekg(0,ios::end);. L4 {0 f5 p; E3 X* n; O( m3 G1 j
    int size = fin.tellg();/ B6 l8 P$ Z9 S6 [* N1 ?  e
    fin.seekg(0,ios::beg);+ @, B9 S; m: a$ P7 ]

5 e( w8 o3 t( a2 K# }    char *buffer;# L9 Z/ e8 u* x9 `8 v  Q
    buffer = new char[size];8 C8 L/ w3 ?9 Y( x
    fin.read(buffer,size);
9 M. o7 w4 |$ \4 Y! r$ o0 P    printf("size = %d\n",size);! k8 Z) a8 I7 T* i, T" Y
    int count;4 R; L2 g" k  B' T4 |' W! {7 P
    for (int i = 0;i<size;i++)
) v4 U) y/ n7 l# c0 F    {, r  x; P4 X$ d- N; `
        //encoding2 p6 Q, E4 d/ ~2 z
        if ((buffer % 2) ==0) fout.put(buffer+1); //if even subtract one
9 ]1 e" t& D" q' N        else fout.put(buffer - 1); //elsewise we add 1' Z, q1 i* }, M- D" B6 b* M
    }
/ B7 h/ w% A" b5 x4 P- S; E
3 D- u6 R9 L- D2 X) b    fin.close();
, w" A& }  }$ m: E: |    fout.close();8 F) I9 N( J- k5 j4 H% ]: x
}9 S1 p' e& @& h- Z
) I7 X3 M) \5 W- o3 Y3 ?% f, p
那么,需要破xmle文件的朋友们,enjoy

本帖子中包含更多资源

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

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

使用道具 举报

5#
发表于 2010-3-30 21:29 | 只看该作者
粥粥兽做个还原程序和加密程序放上来吧,要能批量操作文件夹内全部文件的~~~~
4 A' r$ s! J* W
* q+ ^  z9 K' J2 c& j: u感谢
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-3-30 20:34 | 只看该作者
xmle只是XML文件,只是配置而已,字体文件就不一样了
; W, b( e+ m- B, q' e
  _7 @9 M; ], a5 z% N$ s& Q9 ]6 B9 r不过我上次看到的那个游戏BT的很,连JPG,DDS都带这样编码的...至少我觉得是,因为后面都带了个e,不过我没仔细检查,估计是一样的 [s:73]
回复 支持 反对

使用道具 举报

板凳
发表于 2010-3-30 12:18 | 只看该作者
那它的字体文件呢?一般也不是标准的官方后缀,粥粥兽继续拓展分析一下
回复 支持 反对

使用道具 举报

沙发
发表于 2010-3-30 11:40 | 只看该作者
非常感谢粥粥兽给我们带来这么精彩的汉化分析贴。9 N' q7 s, P0 _% _$ @) [
枫叶给加威望吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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