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

汉化资料 xmle文件的破解

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

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

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

xmle文件的破解

饿...本来想还是自己注册个号的,取个有点个性点的名字,结果发现今天不能注册 [s:70]
/ B+ `/ Y; p" k
; l* S8 Q1 Q* f6 uPS.一下,偶是粥粥兽啊,HOHOHOHO. n+ ?8 y: @! s1 j5 x% E: Y5 l

* j. Z& O3 Y* L0 g% a0 X' d那么就来说一下我对大鱼游戏中经常出现的xmle文件的发现吧  ~" _$ N. k0 l  q( J
因为一个偶然的巧合,咖啡发给我的游戏里有个XML文件夹,我粉高兴,觉得这下肯定很好解决了,结果打开一看
* ]' s) t; r& M5 Z; M却是xmle文件,改成xml却也是打不开/ K" N$ {! u) m# C3 M

5 T" a0 I* _6 W& h用CT打开一看才发现这哪是XML啊- n7 a7 V! m. V  n; t7 z& O
网上查了查无果,可琢磨着,这不是XML为什么要放在XML文件夹呢,于是我再次运用CT,盯着那些文件看,总算发现( l( T# R7 h7 K" L1 z
他们的文件头) f  ^+ s, u+ ?% t. o
=>ylm!wdsrhno<#0/1#!dobnehof<#tug,9#>?
9 N: a" t& ]! k0 {. G  L, T感觉有<有>还有?怎么看都有点像是XML文件的开头啊,怎么回事呢?于是我找来了份XML文件做比较6 v1 E" Z. {3 S6 R4 s% t
一开始还没发现这么明显的破绽,哈哈,硬是对着ASCII表去看的,发现
. p7 ^3 m" G. w3 w9 w3 C, u' T=<, >和? 都在一块,才发现原来只是+1的关系啊3 E+ h$ ?/ t, G- k
原来没看仔细,哈哈,破解一下后还不对再仔细研究的时候发现了这个秘密(已经圈出)
9 ?2 O4 }: Q3 H% [! a' E一开始还没看懂呢,心里纳闷,怎么一会儿是+1一会儿是-1,到底是怎么回事呢?这么没规律,后来追踪了某个字母(好像是e)* g0 I2 i$ _& L; D) A
才发现在那文件里,e一直是+1的,
  n- F$ D: e! s+ J" E" v9 i; ]# ]% A* V8 }' m3 ^% S" Z4 Q! d, G- f
才发现原来从xmle到xml的转换完全是按照ASCII代码来的
' P8 ?: l8 q; ~2 p3 r+1 -1 是看ASCII的单,双数决定 (不好意思,我记性不好,又忘了哪个是+哪个是-了...后来写CODE也是....只能在解开来发现不对再改一下.....)
5 i  r- F/ R9 M) [* Z$ X
8 a! G3 G7 f" g2 w3 z1 ^( U于是我就开始写代码了,很简单的C++代码  u" w6 ?. M" ~; t7 D1 N4 M, v

; V& l+ |4 m% Cint main()- k+ r0 U( t7 h  S
{
0 r0 X8 L3 T- Q  F1 j$ L    fstream fin;  F; Z: V# {0 Y" d
    fstream fout;
8 T# |& h, w& f    //right now we are decoding *e files
2 H) @4 m6 L+ `+ v$ G4 x    fin.open("test.xml",ios::binary|ios::in);
. `" y  p" d( N- q  G3 g    fout.open("text.xmle",ios::binary|ios::out);7 t0 Q" H2 v7 g
4 {. }" a. U8 ~: W( Z3 ?/ U  K
    if (!fout.is_open()) printf("outfile cannot be opened\n");  a( \2 [/ v* `5 F6 M6 C2 y+ b  l
2 {9 P! k$ Z- r1 m8 r" Y
    fout.seekp(0,ios::beg);
/ U) p. t: k( g$ b6 T    fin.seekg(0,ios::end);
' C: g8 Z+ X. K# j# u    int size = fin.tellg();
8 K1 @) o% Q  w+ Z. W( i    fin.seekg(0,ios::beg);
5 R' l5 k6 h1 {7 |9 d5 L# o* ~
  \6 }$ |2 r4 \" m' f    char *buffer;) x9 I+ ^; T) _# m! {5 O
    buffer = new char[size];
3 M7 L/ ]2 p2 c3 c7 l    fin.read(buffer,size);/ p. B$ ~4 S5 |9 G# p; G- V) b
    printf("size = %d\n",size);- P0 z% p. G1 Q, ]+ F0 x5 c) r7 ~
    int count;
- d, Q# @: d% P0 d4 q    for (int i = 0;i<size;i++)
/ g6 q+ _) C( J) p6 W% z( \  q* u    {0 X" c0 C1 R/ a2 P7 {+ ~+ j
        //encoding+ H8 u0 i6 r/ o( H4 Z3 ?3 T; e
        if ((buffer % 2) ==0) fout.put(buffer+1); //if even subtract one
. m0 i8 _5 s) t* w        else fout.put(buffer - 1); //elsewise we add 1
: X, D7 f! }# V, G$ G    }9 |& Q5 r0 T* X0 W
+ O( C7 ]# D: O5 b
    fin.close();
* `% w, s4 s/ T+ X4 O# r    fout.close();
. B2 f. ]* {: o5 q- ]}- m, T5 t! I0 G; W9 D/ D

' f0 m5 c5 E2 K3 j% `那么,需要破xmle文件的朋友们,enjoy

本帖子中包含更多资源

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

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

使用道具 举报

沙发
发表于 2010-3-30 11:40 | 只看该作者
非常感谢粥粥兽给我们带来这么精彩的汉化分析贴。' ?* C% Q: X8 l- T# K* R
枫叶给加威望吧。
回复 支持 反对

使用道具 举报

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

使用道具 举报

地板
 楼主| 发表于 2010-3-30 20:34 | 只看该作者
xmle只是XML文件,只是配置而已,字体文件就不一样了
# R8 K& ]* k/ V4 A2 B* r( a! D2 ?. z& n4 e( i+ D: Q: D3 i
不过我上次看到的那个游戏BT的很,连JPG,DDS都带这样编码的...至少我觉得是,因为后面都带了个e,不过我没仔细检查,估计是一样的 [s:73]
回复 支持 反对

使用道具 举报

5#
发表于 2010-3-30 21:29 | 只看该作者
粥粥兽做个还原程序和加密程序放上来吧,要能批量操作文件夹内全部文件的~~~~
; G- V- h( f1 F% P+ m2 @2 w3 o
, t+ E- P& L% ^感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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