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

汉化资料 xmle文件的破解

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

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

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

xmle文件的破解

饿...本来想还是自己注册个号的,取个有点个性点的名字,结果发现今天不能注册 [s:70]6 ?4 i' G. g: k: o$ f

/ _6 u: f. l4 f, ~5 gPS.一下,偶是粥粥兽啊,HOHOHOHO& N% {2 t6 P1 v7 j
+ {& Y0 z" ^' o) J; _
那么就来说一下我对大鱼游戏中经常出现的xmle文件的发现吧
: K( W; O5 E) Q7 ]) B因为一个偶然的巧合,咖啡发给我的游戏里有个XML文件夹,我粉高兴,觉得这下肯定很好解决了,结果打开一看  [0 F1 d" V$ C0 z5 b
却是xmle文件,改成xml却也是打不开
" ^. M, F1 F( [7 [& ?, e& I4 s, V- W0 M6 _& ]
用CT打开一看才发现这哪是XML啊* R) y+ l' d3 r3 ]' ]* b  [/ j
网上查了查无果,可琢磨着,这不是XML为什么要放在XML文件夹呢,于是我再次运用CT,盯着那些文件看,总算发现, t/ E% x$ b* ]4 }0 @) p7 u4 n: f
他们的文件头% o9 C8 H9 Y, L% x' O) H
=>ylm!wdsrhno<#0/1#!dobnehof<#tug,9#>?& s" n6 f+ Z. e' O
感觉有<有>还有?怎么看都有点像是XML文件的开头啊,怎么回事呢?于是我找来了份XML文件做比较
- ?0 r: L# _' g1 Q一开始还没发现这么明显的破绽,哈哈,硬是对着ASCII表去看的,发现
, E3 T' G3 V" w* y) `% a=<, >和? 都在一块,才发现原来只是+1的关系啊
2 [# X' |& \& T  W3 u4 j原来没看仔细,哈哈,破解一下后还不对再仔细研究的时候发现了这个秘密(已经圈出)% G3 D# n0 @1 y! X  ]! ~/ B6 `* e
一开始还没看懂呢,心里纳闷,怎么一会儿是+1一会儿是-1,到底是怎么回事呢?这么没规律,后来追踪了某个字母(好像是e)! F, N( k1 N- q3 Z
才发现在那文件里,e一直是+1的,. R( \. k  n. E/ D- q, `/ Q& x

" V: |; P* i2 A才发现原来从xmle到xml的转换完全是按照ASCII代码来的
) ?4 a; Q% o+ J% R$ Y* R+1 -1 是看ASCII的单,双数决定 (不好意思,我记性不好,又忘了哪个是+哪个是-了...后来写CODE也是....只能在解开来发现不对再改一下.....)
9 y; H/ s! I/ A- r2 @, [3 ~9 A
/ V+ r: o8 L3 a& ]于是我就开始写代码了,很简单的C++代码
  N! ~7 q8 K) O
+ X4 n, q0 E( f: _& y# Rint main()
  _  T. |4 j8 I3 G! W* u& c{
! i( R3 ]8 K$ U; U* v; [    fstream fin;
! q: G0 X0 b' |( o! R& v2 s5 V" _! G    fstream fout;
- C5 Y! k7 y% G1 i1 E: g% _) m    //right now we are decoding *e files
  }, w/ U. {& K; p4 o6 F    fin.open("test.xml",ios::binary|ios::in);
; f7 d2 X- F/ S& ?    fout.open("text.xmle",ios::binary|ios::out);
* o+ K0 n- W& r6 `$ S9 G5 e/ p- f. Z3 c0 Z
    if (!fout.is_open()) printf("outfile cannot be opened\n");! a) v! m+ _% P
8 L: j0 R. d: M$ [) K
    fout.seekp(0,ios::beg);* n- }% @. T/ }6 ]" L
    fin.seekg(0,ios::end);$ \( u5 X$ s% P1 _4 a0 L
    int size = fin.tellg();
+ g0 [1 |' O1 K3 h8 b" p! d    fin.seekg(0,ios::beg);' Z: D& {, I0 r# R
0 A9 v* s' b7 U* s
    char *buffer;" Z, y* i9 }. |5 g  K7 x
    buffer = new char[size];
& Y. i5 n% [1 c( P( l% g5 A( @    fin.read(buffer,size);$ S& B6 i0 N$ f1 I6 @9 j0 S
    printf("size = %d\n",size);
% B4 L/ _8 A: N; k  P4 n    int count;
2 I6 c/ O4 p+ U    for (int i = 0;i<size;i++)
1 D/ j' Q/ A( P% a0 L* s; r    {6 E* ^5 x% _' F/ @5 i2 u& i8 E
        //encoding
% ~1 n2 \" e) I        if ((buffer % 2) ==0) fout.put(buffer+1); //if even subtract one
" ^$ v7 c1 x2 T" S, e; K" R! p        else fout.put(buffer - 1); //elsewise we add 10 n: v( |4 r3 }" M
    }
/ h/ c& z, \3 T+ F8 b: L
7 O* o0 P: d  u$ q$ h    fin.close();
% }3 D  I7 W2 t6 f6 R- A$ V# I    fout.close();
) ?5 c0 {! C$ J  o) M}
& C6 B* D' j, K; Z- M$ ]9 K" H0 h' }, W' [" {
那么,需要破xmle文件的朋友们,enjoy

本帖子中包含更多资源

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

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

使用道具 举报

沙发
发表于 2010-3-30 11:40 | 只看该作者
非常感谢粥粥兽给我们带来这么精彩的汉化分析贴。  V1 J  Q6 Z" _; p1 ~' f
枫叶给加威望吧。
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

5#
发表于 2010-3-30 21:29 | 只看该作者
粥粥兽做个还原程序和加密程序放上来吧,要能批量操作文件夹内全部文件的~~~~
4 z/ S1 |3 M- }8 {
3 W1 m- P$ {- i: e7 `感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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