人気ブログランキング | 話題のタグを見る

encode.exe (鯖管へ提言)

2chでencode.exeが晒された。
以下、うしこ BSE キールの反応。
(晒される前にある程度、ホロ、BSE、キールが3.2cの解析はしていた。)

うしこ さんの発言:
まあ実際
新グラやら改造したlist.sprつかわないんなら
いつものでもいいんだよな
えりす さんの発言:
チーターわくぞ
キール さんの発言:
ハイエナ
えりす さんの発言:
encode.exeはもう晒されたんだし
えりす さんの発言:
ヒャッハー
キール さんの発言:
そのうち出てきそう
えりす さんの発言:
うん
いつになるかはしらんが秒読み
さてホロランチャースキンつけてうpるか
うしこ さんの発言:

そうか
encodeあるから・・・!
うしこ さんの発言:
オワタオワタオワオワオワタ
キール さんの発言:
ホロランチャー・・・
うしこ さんの発言:
ッヅアァ!
めんどくせえ
キール さんの発言:
      オ、オ、オワターオワオワオワター♪
      \    オオオオワターオワオオワオワタ/
         ♪\(^o^) ♪
          _  )  > _ キュッキュ♪
        /.◎。/◎。/|
  \(^o^)/.| ̄ ̄ ̄ ̄ ̄|  |  \(^o^)/
    )  )  .|        |/   ノ ノ
((((  > ̄ > )))) \(^o^)/ ((( < ̄< ))))
              )  )
         (((  > ̄ > ))))
えりす さんの発言:
だから既存鯖も
すべて3.2に
しないと
いけない

実質上の3.0終焉フラグ

で、何が具体的にまずいかと言うと、list.sprをある方法で改変してクライアントに適用する事が出来る。
たとえば、2セル攻撃可能なDKとか弓撃てるアークナイトとか、SPDK並のゴブリンとか もうなんでもアリ。
あとわかる人は分かると思うけど、PK鯖はとっても影響がでかい。

一応対応策はある。
ユーザーが勝手に改変したlist.sprを鯖が許可したlist.sprではない場合、Inできなくする。
ソースを入れれば不正はできないっぽい。
ということでソース晒す。
具体的にはlist.sprをCRCで誤りチェックして違う除数の場合には蹴るというものらしいが、頭悪くてよくわからん。


少し長いので先に今回の3.2cをまとめ
■うしこから各鯖管へ提言
1.2chで晒されているencode.exeを手に入れる事
2.戦争鯖のうpロダで配布している3.2cを各鯖管も手に入れる事。(これにはencode.exeが入っていない)
そして戦争鯖からDLした物を自分のとこでも配布する。これを使用してユーザーに3.2cからの接続をするよう指示する事。
(たとえば、3.2cじゃないと町に入った瞬間落ちるようなgfxを置いたほうがよい。)
----ここから鯖側の設定
3.Encode.exeにpack.properties生成機能があるので自力で生成して、生成したpack.propertiesファイルを鯖ファイルのconfigフォルダ内に配置する事
4.以下のソースを適用する事。



■ソース
l1j\server\Config.java
1.
public static int LV99_EXP; を検索
2.
1で検索した下に次のコードを追加。
public static boolean LOGINS_TO_AUTOENTICATION;
public static String RSA_KEY_E;
public static String RSA_KEY_D;

3.
validate();を検索
4.
3で検索したコードの上に次のコードを追加。
try {
Properties packSettings = new Properties();
InputStream is = new FileInputStream(new File("./config/pack.properties"));
packSettings.load(is);
is.close();
LOGINS_TO_AUTOENTICATION = Boolean.parseBoolean(packSettings.getProperty("Autoentication", "false"));
RSA_KEY_E = packSettings.getProperty("RSA_KEY_E", "0");
RSA_KEY_D = packSettings.getProperty("RSA_KEY_N", "0");
} catch (Exception e) {}


l1j\server\server\ClientThread.java
1.
import java.util.logging.Logger;を検索
2.
1で検索したコードの下に次のコードを追加。
import java.math.BigInteger;
3.
private Socket _csocket;を検索。
4.
3で検索したコードの下に次のコードを追加。
private int _xorByte=(byte) 0xF0;
private long _authdata;
5.
6.
_out = new BufferedOutputStream(socket.getOutputStream());を検索
7.
6で検索したコードの下に次のコードを追加。
{
_xorByte = (int)(Math.random()*253+1);
_authdata = new BigInteger(Integer.toString(_xorByte)).modPow(new BigInteger(Config.RSA_KEY_E), new BigInteger(Config.RSA_KEY_D)).longValue();
}

8.
int loByte = _in.read();を検索
9.
8で検索したコードの下に次のコードを追加。
if(Config.LOGINS_TO_AUTOENTICATION)
{
hiByte ^= _xorByte;
loByte ^= _xorByte;
}

10.
return LineageEncryption.decrypt(data, dataLength, _clkey);を検索
11.
10で検索したコードの上に次のコードを追加
if(Config.LOGINS_TO_AUTOENTICATION)
{
for(int i =0 ; i < dataLength ; i++) {
data[i]=(byte)(data[i] ^ _xorByte);
}
}

12.
byte Bogus = (byte)(FIRST_PACKET.length + 7);を追加
13.
12で検索したコードの下に次のコードを追加
if(Config.LOGINS_TO_AUTOENTICATION)
{
_out.write((int)(_authdata & 0xff));
_out.write((int)(_authdata >> 8 & 0xff));
_out.write((int)(_authdata >> 16 & 0xff));
_out.write((int)(_authdata >> 24 & 0xff));
_out.flush();
}




以上

一応検証済み(BSEが)
ちなみに、これらの情報はうしこは一切解析していない。がんばったのはBSE、ホロ、キール、枝実(?)
結構ヤバメな内容だったのでブログで報告しといたほうがいいってことで書いた。
てか、3.2c Japanで最初に使いだした鯖は、他鯖の事なんも考えてなかったんだな
プンスコ
Commented by ですないと at 2010-05-19 18:45 x
まったくわからんぜひゃっはー!
Commented by 名前 at 2010-05-19 18:52 x
3.2cになると何が変わるんですか
Commented by YDMN at 2010-05-19 19:18 x
同じくひゃっはーっ!(´c_`)
Commented by at 2010-05-19 19:27 x
|д゚)<ひゃっはー
Commented by BSE at 2010-05-19 19:32 x
|д゚)<ひゃっはー
Commented by もりお at 2010-05-19 20:59 x
久しぶりにシリアスな内容だぜひゃっはー!
Commented by umisaka1 at 2010-05-19 21:07
>>ファッキンもりお
マヨ鯖用 skin画像かいて 報酬は10Kゴールド
Commented by ROMA at 2010-05-19 22:20 x
ついに来てしまったのですね・・3.2C・・・

一体何が始まるんです?
Commented by at 2010-05-20 01:47 x
これCRCチェックで弾かれると切断ではなくクライアントがフリーズするの?
Commented by BSE at 2010-05-20 02:05 x
フリーズするっていうか鯖から応答待ちみたいな状態になってるくさい
Commented by at 2010-05-20 17:14 x
うぬーうまくいかんばい

ド低脳の俺には厳しいぜ・・・。
Commented by もりお at 2010-05-20 20:38 x
skinについてkwskとりあえずメッセで頼む。

今タブレット死んでるから月末まで待ってwwwwwww
Commented by umisaka1 at 2010-05-21 06:02
>名前
新アンタラスとかのグラフィックスが「つかえるようになる」
ただ、現状の開発がstopしたl1jでは新アンタラスとかのmobデータが入ってないから、鯖管が使わないと意味ないね


>ROMA
血尿で悩む日々が始まります

>霧
http://www11.uploader.jp/home/umagoon/
に元ソースあげときます。
封包加密核心修改.txt
ブログの内容まちがってたらおしえてくだせえ・・・
Commented by at 2010-05-21 10:25 x
BSEさんに同じやつもらてできました。
俺のド低脳は関係なかったようですたい
名前
URL
削除用パスワード
by umisaka1 | 2010-05-19 13:39 | Java | Comments(14)