ロスメモ報告書2

この前の配信やツイッターでの話を適当にまとめました。
視覚的にわかりやすいのはこの前の配信の冒頭30分位までの解説なのでそっち見てください。

これまでのあらすじ

動画活動復帰してから月イチでロスメモ探検配信をしようと画策していたが、急にNoが表示されるようになってしまった。
いくらやっても遊ぶことができない!!!!
別件でrememberの解説動画を作るついでにredditの過去レスで情報収集をしていたが、過去の時点でNoが出る人もいたし、元々linkではNoが出ていたからなんでこんなにズレがあったのか謎すぎる!

このあとわかったこと

元々gameguruなら.xや.dboが読み込めるのでそれで作られていると思っていた。
が、色々調べても流石にここまでの挙動をgameguruでやるには自由度が低すぎるとずっと思っていた。(.fxのluaファイルがプラグイン的に使えることはわかったが出来ることが少ない気がした)
で改めてモデルが見たいと思ったもののgameguruをこのためだけに買うのもなあと思ってdboについて調べると、そもそもgameguruの専売特許ではなくDarkBasic(以下DB)のファイル形式であることがわかった。
簡潔に説明するとwindows2000くらいの時代のゲーム開発ツール。directX接触ったりもするらしくその関連で.xも使われているようだった。
改めてキャッシュフォルダを覗くと、

・そもそもdbpdata(DarkBasic Pro Data)という意味だった
・調べると明らかに質感も含めてこれで作られてるの確定
・全然気づけなかったけど関連dllが大量に入っていた
ほか命令を調べると
レジストリ弄ってる疑惑が確定した(触れるというか触れた方がいいっぽい?)
・サーバー繋いでるのもほぼ確(いけるらしい)

・・・といろいろと分かってしまったのである。
ちなみにdboとxに関してはあまりにもレガシー形式過ぎてblender2.Xですら開くのが難しいということがわかった。
(別でDBでモデル開くコード公開してくださっている方がいたのでちょっと使ってみました)

・・・ただこうやって開発ツールがわかったところでどうすんねんと言う感じでしょうがない状態でした。
だってわかったところで結局当初最悪解析するしかないと考えてた時に想定していた言語であるC++に近いというか、なんならそれより情報も少ないので難しいし、結局どうすんねんという状態でした。

プロセスモニターとネットワーク監視ツール

もう一つ、過去になんか消えないプロセスを消すためにプロセス消すツールを導入したことがあったのですが、それみたいな感じでプロセス内の動きを監視出来るツールがないか探してみました。
MS公式で公開されてましたよ。
最初は使い方悩んだり、フォント文字小さすぎて見づれえな!とかなったりしましたが、なんとか使いまして、結局以下のことがわかりました。

・結構ガッツリレジストリにはアクセスしている
(なんか動作上DB的にも必須なものにアクセスしていることが多かった)
・一部レジストリの名前が見つからないままのものがあった(アクセスできてない、想定しているけど存在してない?よくわからない)
・ファイルのアクセスが半端じゃなく、dbpdataが一回19まで生成されかけてることがわかった
・あとかれこれエラーなどで見えていたdll等もやっぱりアクセスしている
・結構スレッド(並列処理)を大量に使っている

他色々と挙動の一端を垣間見ることができたのですが、中でも特にクリティカルだったのがこちら

「UnknownXXXX.exeでFTP通信を行っている」
UnknownXXXX(XXXXはランダム英数字).exeとはロスメモを起動している時に子プロセスとして起動するものです。
ロスメモの中に格納されていてランダムな名前になって実行されます。(キャッシュに保存されます)
で前からいることは分かっていたので「コレ明らかになんかやってるやろ」というのは想像に難くなかったわけで。

で、一連の起動から終了までの処理の中、後半の方でその通信が行われていることがわかりました。
二回。
一度適当なポートで試して、駄目で、その次それより大きいポートで試して駄目で終わりという処理。
スムーズにロスメモが起動した時に大体同じくらいの時間でNoが出るのはこの接続に失敗したときの例外処理であると推測しました。
まぁ処理のタイミング的にそうなりますね。

ただプロセスモニターだけでは詳しい通信内容までは分からず。
どうせ個人的なやつだしサーバーももう死んでるから別に良いだろというノリでネットワークトレースもやってみることに。
次のことがわかりました。
「サーバーへ直接ログインしようと二回試して失敗している」
・・・パスワード等もわかりました。がまぁ意味ないので多少はね。

もし詳しく知りたい方は自分でプロセスモニター等入れてやってみてください。
というか私そんなに詳しくないのである程度の動きの想像しかできません。

以上が配信で解説していた話になりますが、アレからダラダラともう少し調べました。

配信以降にわかったこと

以前からリメンバーはリモート制御が削除されたという話があったというのは解説動画でも触れていたので皆さんご存知かと思います。
で、そのへんに関してわかったことがあるのでここで書きます。
改めてredditでロスメモを検索してみた結果、私の知らないスレがちょこちょこありました。でその中で、過去の証言の裏付けをするようなまとめの他にこのようなものも、

要するに配布先のまとめです。やりたい人はこっからダウンロードしてくれよな!

またアーカイブからDLしようにもリンクが切れているという話もありまして、一応私の方でも調べてみました。
そしたら、暗い背景(初期)のリメンバーのリンクは切れている、他2つは切れてない。また明るい背景(後期、ワシがリアタイでみたやつ)のリメンバーのリンクは切れてない、他2つは暗い時と同じ、でかつ上の配布先のまとめのやつとURLが一緒。

・・・つまり、リメンバーは一回リンク変わっているということがわかります。
ちなみに以前私がまとめてた方のBENARGのやつは消えてました。
そして更に「ロスメモは変わっていないということはリモート部分がそのままになっている」ということもわかります。

ただこれ適当に調べただけなので実は違った、みたいなこともあり得るので話半分でお願いします。

・・・要するにロスメモの修正版は存在していないということがわかりました。

これからどうする?

色々脱線と言いますか、ロスメモ本体には関係ない話もしてたので長くなりましたが。
・接続の失敗、もしくは他の様々な不具合(テクスチャ読み込みエラーみたいなのもあるので)が発生した際に起きる例外処理がつまるところ「No」なので一旦接続の失敗をどうにかしないといけない
・中身がブラックボックスなので改造することが難しい
・サーバーのダミーを用意するのもグローバルIP直接設定されている都合難しい
・Cheat Engine等PCゲーの解析、改造が出来るツールもあるけどDBに関する情報が乏しくてきつい
・もし接続がなんとかできた(無視できた)としてもその先の処理がわからないのでイタチごっこ感ある

更に要約すると詳しい人助けてください!!!!
以上です。

 

今後やりたいこととしてはplayagainの内容を解析したいですね。
どうやってリセットしているのかそもそも何にアクセスしているのか。
この前見つけたサンドボックス経由でFBXを遊んだ結果、FBXのセーブデータの場所がわかったなんてこともあったので、一旦playagainからセーブの一端を調べたいですね。
なにせロスメモくん照明とかドアの開閉状態とかも保存してるのでどっかしらに保存しているのは間違いないし。
ということで誰かよろしく!!!!