2017年6月27日火曜日

loa2データの解析進行中

テスト用プログラムを回しっぱなしだけど、
Recv/Sendのパケット結合/分解は問題なしかな?

あとはコマンドデータをチビチビとすすめるのみか。

時間はunix時間をやっぱり使っているので、あぁこれそうだな、ってのはわかる。
今わからないのは、可変長の数値について。

正数表現はわかるんだけど、小数、負数はどうやっているんだろ?
正数のみで問題ないっちゃないんだけど、プログラマー視点からすると
使わなくても仕様として作っておくわけで。

2017年6月26日月曜日

loa2のデータSnoop

大体わかってきて、手作業でのデータ分解はできてきました。

・圧縮はzlibのヘッダーなしinflateで展開
・コマンド長はLittleEndianのDWORD(WORDかも?)
・コマンドは2バイト(可変長数値の可能性あり)
・圧縮はコマンド含めず、無圧縮は1パケットに複数のコマンドが詰まってる場合あり
・先頭にインデックス(可変長数値)をもつタプル形式、インデックスは0x08ステップ
 (ただしスキップあり)
・さらに、インデックス値にデータ形式を表すビットを立てる
 ビットが立ってない場合には可変長数値
 0x02のORの場合には、次のバイトであらわす長さの文字列または子タプルがくる
  (0x0?だったら子タプル?)
      文字コードはUTF8
 0x05のORの場合には、4バイト固定長の数値

これでしばらくエラーが出てこないか様子見します。

コマンドの意味はまだ理解しきれていません。

こういうタプル形式のデータシリアライズ、まえにEVEonlineで扱った覚えがあるな。
ソース引っ張ってこようか。
Cだと記述が複雑になりすぎるんよね。C++のタプルも習得しなきゃ、か。

で、loa2でパケット解析のチートをやっても実はあまり面白くないのよねん。
loa2って戦闘はほぼサーバ任せ、操作Pスキルの出る幕がない><
チートをやって何が楽しいかというと、俺うめぇ~(チートだけど)ってのができるから
なんだけど、
loa2の場合、戦力差を覆すのはほぼ不可能。課金で強さが決まってしまう。
弱者が強者に数で圧倒したり、操作の上手さで倒したり、ポーションとかのバフアイテム
の力を一時的に借りたり、ってことはできない(だからつまらない)。
課金額だけで勝負が決まる非情なゲームなのです><

2017年6月24日土曜日

やっとネット復旧

っていっても鈍足なのは変わらずw

ネット障害とかゲームのバグとかで
ろくにゲームできない状況になると(やることないから)
ツール開発が進むわけで^^;;;
ちょっとloa2がなにやっているか調べてみました。

まず通信関係はwinpcap使ってダンプしてみたところ、どうも暗号化はやってない模様。
丸見えwww

先頭から
DWORD データ形式 0: 非圧縮、1:  圧縮
DWORD データ長
DWORD コマンド
かな?

おそらく各種構造体を単純にシリアライズしてストリームに流しているんじゃないかと
思っている。(各コマンドごとにフォーマットを規定するのでなく)

で、数値は可変長表現していると思われる。
7bitで区切ってMSBでデータ終端かどうかを表現する形式。

データ識別子として
?a 構造体?
?2 文字列
?8 数値
?0 数値
81 4バイト整数
かなぁ?ここらへんはもっとデータをたくさん読んで確認する必要があります。

コマンドを選べば、
キャラクターリスト(座標、ID、接続ID、名前、戦力)はすぐつくれそう。
lo2clist作成に着手かw

調べてて気づいたんだけど、運営側に近い人ってやっぱこっそり潜んでんのね。
あやしい人全員にフレンド申請送っちゃったwww

2017年6月15日木曜日

Windows10によるDoSアタック

13.107.4.50からの読み込みで自宅の細いネット環境が崩壊><
糞MSFT、やめてほしいわ

2017年6月4日日曜日

激遅ネット環境に苦しむ

ADSLモデムが壊れたようで、すくなくとも来週前半までは
激遅ネット環境の中でloa2の日課作業をすすめなければならない><

モデムが壊れても一応は激遅ですがつながるようで
なんとかログインはできるのですけどね。

途中で接続が切れたりするので、横でゲートウェイサーバへのpingを回しっぱなし
で監視しながらなのですが、
pingの時間平均値がだいたい2秒くらいw
負荷が高いとpingがタイムアウトする。
使い魔メニューをクリックすると10分くらいしてやっと開くwww

この激遅環境でわかったのですが、loa2は
・グラもサウンドも、いちいちデータを毎回ダウンロードしている
・戦闘の必殺技自動、あれはクライアントのマクロだね
 簡易モードでは勝てる相手に、逐一表示モードでコロッと負けた。。。

loa2の実行コードっていわゆる富豪プログラミングっていうやつなんだろうな。
送受信の効率化とか全く考えず、おそらくスクリプトもそのまま
符号化せずに流しているんだろう。

で送受信が重たいからモデムがフル稼働しっぱなしで壊れた、と。

前々から、loa2は対人向けのゲームとして設計されていないと
思っていましたが、こんな通信速度依存が激しいんじゃ、
対人もクソもないw Pスキル?なにそれ?な世界ですなwww

ソロでやる分には楽しいんですけどねぇ。