Can you fly ?
Are you fly ?

問題

Wolf RPG エディタ製のゲームが配布されます
起動してみると横に3マス分くらいしか動けません

解説

うさみみハリケーンでキャラクターを動かして変化した値を検索し、位置座標っぽいデータのアドレスを特定しました
…が書き換えてもすぐに元の値に戻されます
おそらくアンチチートが入っているのでしょう

チートするアプローチではきつそうなのでData.wolfを展開するアプローチに移りました
Data.wolf extractなどとggったところ、どうやら.wolfファイルはDX ライブラリのアーカイブのようです
ライブラリのアーカイブは文字列によって暗号化することが出来るのでキーを実行ファイルから探します

キーの特定手法について詳細を書くと普通にヤバそうなので自主規制します
おおまかな手法を書くとこんな感じです

  • 実行ファイルを.wolfで検索しアーカイブ展開処理を行なっている関数を特定
  • なんか怪しい文字列を作成してる箇所を発見
  • その文字列でメモリを検索

キーを使ってDXライブラリ付属のDxaDecode.exeで展開を試みたところ無事成功しました

その中の、Map Dataを開くと、ctf4b.mps, flag1.mps , flag2.mps があります
flag2.mpsをstringsに投げるとフラグのプレフィックスを除去したデータが入っていました

ctf4b{b3_c4r3ful_0f_fl135_wh3n_73l3p0r71n6}