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

汉化资料 xmle文件的破解

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

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

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

xmle文件的破解

饿...本来想还是自己注册个号的,取个有点个性点的名字,结果发现今天不能注册 [s:70]9 g$ D2 i4 L! R; Y
/ y& ~; @! j' j  }2 A
PS.一下,偶是粥粥兽啊,HOHOHOHO
: @; Z8 W" h% L& z" d1 r$ N* F% H
6 _+ E3 D: E$ Q那么就来说一下我对大鱼游戏中经常出现的xmle文件的发现吧! V, W% c. @1 Q3 x* x
因为一个偶然的巧合,咖啡发给我的游戏里有个XML文件夹,我粉高兴,觉得这下肯定很好解决了,结果打开一看0 O2 O2 C2 _! b! }; v1 F7 u
却是xmle文件,改成xml却也是打不开0 s) Q) D1 C$ w+ ^6 d
0 u* m$ [( C0 c% z$ |
用CT打开一看才发现这哪是XML啊
3 x- _$ M. m7 K. \7 o$ d8 B! i网上查了查无果,可琢磨着,这不是XML为什么要放在XML文件夹呢,于是我再次运用CT,盯着那些文件看,总算发现" J/ L6 d7 M; G' a. z
他们的文件头
) ?' T% z9 }# y" S8 \5 h=>ylm!wdsrhno<#0/1#!dobnehof<#tug,9#>?
) F( J  ~5 v: u( u感觉有<有>还有?怎么看都有点像是XML文件的开头啊,怎么回事呢?于是我找来了份XML文件做比较9 s4 x! B' e$ z, [6 E/ M- N
一开始还没发现这么明显的破绽,哈哈,硬是对着ASCII表去看的,发现
; e: X3 q, i- ?: F5 L=<, >和? 都在一块,才发现原来只是+1的关系啊" P0 `8 W  t# p+ D
原来没看仔细,哈哈,破解一下后还不对再仔细研究的时候发现了这个秘密(已经圈出)
+ a6 a' x$ U" o8 M一开始还没看懂呢,心里纳闷,怎么一会儿是+1一会儿是-1,到底是怎么回事呢?这么没规律,后来追踪了某个字母(好像是e): E: `% e  }; g' h: E* f
才发现在那文件里,e一直是+1的,
% T0 H( f" U% X, L
" w; L: X: V0 Q; a' J! X! P1 e9 v才发现原来从xmle到xml的转换完全是按照ASCII代码来的
  \' B2 D2 b$ T9 |2 Q$ S) j/ a+1 -1 是看ASCII的单,双数决定 (不好意思,我记性不好,又忘了哪个是+哪个是-了...后来写CODE也是....只能在解开来发现不对再改一下.....)+ ?8 o! V2 i, u9 q5 \+ q

1 C. T( o$ G" l于是我就开始写代码了,很简单的C++代码
* W+ j2 T0 s2 @0 w( v( {) M/ f9 J" @' C* Y5 d$ A7 L' A# ^; P; F
int main()
" v. G4 u* s2 I3 R0 }' H+ B/ i7 Y{
! t0 M- I* J* J1 V- E    fstream fin;1 M& ^% F3 a$ K' n4 f) h$ Z
    fstream fout;
4 p$ a4 s  u; v    //right now we are decoding *e files( i9 Z+ R4 g: k! R
    fin.open("test.xml",ios::binary|ios::in);/ |9 ^8 P9 `0 z% K' _
    fout.open("text.xmle",ios::binary|ios::out);
6 L& n' S% w2 P9 q
4 c5 \& @3 r( q: M( O! {    if (!fout.is_open()) printf("outfile cannot be opened\n");0 b, `) w4 ^  v% |
$ m2 v* T3 R1 F
    fout.seekp(0,ios::beg);3 H7 P/ h3 C7 A# N4 f2 l4 ?! v
    fin.seekg(0,ios::end);
: M* C- [5 @1 c" r# Q; ~    int size = fin.tellg();
6 q: ?* e6 |. q8 [    fin.seekg(0,ios::beg);
/ Q: J. m' Q" q; @7 S$ B: u+ w) B7 F$ r5 |0 b
    char *buffer;5 V) @% s4 {7 A* u) I
    buffer = new char[size];
- u4 b# U2 M. Y8 p: b8 a    fin.read(buffer,size);* U9 ^: B1 K7 C. R$ `
    printf("size = %d\n",size);
8 o/ [5 ], u: X' J+ L& K7 {    int count;
( n: `' f8 q$ h3 `    for (int i = 0;i<size;i++)
5 A! l& m: G; C/ N+ m3 J1 j    {
( Z) n* [% m. U7 v) f        //encoding1 a5 `* p* z8 M! s7 M2 `
        if ((buffer % 2) ==0) fout.put(buffer+1); //if even subtract one
) b$ r0 D; _& f/ a* B        else fout.put(buffer - 1); //elsewise we add 1" k/ F7 [& @1 {8 X
    }; w- E/ }2 Q) L6 t6 P0 ?& V8 F
8 M# u8 N2 l0 H' e$ `% P1 ~0 n
    fin.close();' K1 a2 O& p7 |. W
    fout.close();, D* C9 g( E8 M! j. o( f
}
, B9 r# S; |& E, }* e" I* n( U! l
  {/ ^! G3 ?0 M6 f/ v1 d2 H9 B* R那么,需要破xmle文件的朋友们,enjoy

本帖子中包含更多资源

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

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

使用道具 举报

5#
发表于 2010-3-30 21:29 | 只看该作者
粥粥兽做个还原程序和加密程序放上来吧,要能批量操作文件夹内全部文件的~~~~
+ H" t# `/ Y* W" n: V5 g! @- X2 ^+ w
感谢
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2010-3-30 20:34 | 只看该作者
xmle只是XML文件,只是配置而已,字体文件就不一样了$ Q, v/ H1 N1 q' A, W
" k1 q* k+ W/ D
不过我上次看到的那个游戏BT的很,连JPG,DDS都带这样编码的...至少我觉得是,因为后面都带了个e,不过我没仔细检查,估计是一样的 [s:73]
回复 支持 反对

使用道具 举报

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

使用道具 举报

沙发
发表于 2010-3-30 11:40 | 只看该作者
非常感谢粥粥兽给我们带来这么精彩的汉化分析贴。: m+ j1 l6 F: ~4 ?$ d( I
枫叶给加威望吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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