THE PSP攻略+α ~SONYへの挑戦状~

PSP関連ブログ?いいえ、ただのゆとりブログです

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

七次元vs吉里吉里2(抽出編)第二回戦 

どうでもいいけど、ソフ倫は結局凌辱ゲーを自主規制した模様。ほんとどうでもいい。


敗北から半年、特に何も調べずに無駄なプログラムを組んでいた七次元が再び吉里吉里2に戦いを挑む!
果たして、こんなどうでも良い記事を誰が読むのだろうか!?

※この記事はメーカーに監視されてます

   |  |             コソッ.|  |
   |  |∧_∧ ジー       ∧_/|  |  __
   |_|・ω・).           (・ω |_| [.lШШl]
   |  | o【◎】           .(  o|  | (・ω・) ジー
   | ̄|―u'            `u.| ̄||| | | | |
   """"""""         """"""""""""""""

~ここまでのあらすじ~

 無知な七次元はXOR程度の暗号化方法しか知らず、数々のゲームアーカイブに敗北する。
そこで、吉里吉里2に目をつける。
このエンジンは一般人にも公開しており、機能が豊富なゆえに何も改造せずにシナリオが抜き出せるので、エンジンを利用して抽出できると考えたからだ。
彼の考えは的中し、途中でXOR値が変わってるだけで驚いていた無知な彼がExEのデータ抽出に成功する。
「この方法使えば吉里吉里2のゲームは全部抽出できるんじゃね?www」とか調子に乗っていた彼だが、見事に最近のゲームでは対策されていたのである。
「まあ、どうせ発売日にすぐ解析されるのでいいやwww」と現実逃避する彼であった。

七次元vs吉里吉里2(抽出編)より
 

・吉里吉里2の暗号の歴史
ただの圧縮ファイル

単純な固定値XOR(Fateとか)

条件によって値が変わるXOR(Fateのなんとかとか)

復号用プラグインの呼び出し元を確認するように(ExEあたりから?よくわからん)

プラグインを含め、読み込むファイルのsigを確認(夏カナとか) ←今ここ

sigファイルは吉里吉里2付属の署名ツールで作成されるファイルで、主にファイルが破損していないかのチェックに使われる。
最近はプラグインから署名の確認をするのに使われており、改竄されたファイルorプラグインの読み込みが出来ないようになっている。

天神乱漫の抽出云々の話を聞いて、体験版をDLしてないことを思い出した。というか全然チェックしてなかったからいつ公開したのかも知らんw
どうやら1280x720という16:9サイズでも大きいほうで、自分のノートだと幅がぎりぎりですw(1280x800なのでウィンドウモードだときっちりあわせないといけない)
PSPサイズにするなら37.5%に縮小か。
画面をフルに使えるけど大分小さくなるな…
とかどうでも良い話は置いといて…

さて、今回も色々と試行錯誤したわけだが、前回同様に吉里吉里2を利用しての抽出が目的なので、ただ抽出するだけならそこら辺のツールで簡単にできる。
あくまで、プログラムをアセンブラレベルで解析したり、抽出ツールを組むとかせずに、専門的な知識を使わなくても汎用的に抽出する方法を探すものである。

上で暗号の強度をざっと説明したが、次に吉里吉里2の穴について見てみる。
・ショートカットキーを使ってコンソールが出せる。
・KAGのテンプレを利用して外部スクリプトを実行できる。
これ以外にもいくつかあるが、まだ対策されてないので伏せておく^^;
初期の頃はどちらも使用できたが、吉里吉里2を使うメーカーが増え、システム周りを他に依託するようになってからは、対策されるようになっている。

ゆずソフトの作品では
未対策(ExE)

ショートカットキー無効(夏カナ)

両方とも対策(天神) ←今ここ

KAGのテンプレートを抽出して見てみたら、ちゃんと外部スクリプトを読み込む部分をコメントアウトしてあったw
以前はこれを利用して、セリフをオンドゥル語にするスクリプトがあったような…

というわけで、以前より対策が強化されている。
といっても、KAGのテンプレートを抽出してる時点で、コンソールの表示に成功してるわけだが…

問題は署名の認証であるが、よく考えればこいつにも穴がある。
署名の作成時に、「秘密鍵」と「公開鍵」というものを作成する。
秘密鍵は署名を作成するのに使用する鍵なので、公開してはいけない。
これが知れ渡れば、改竄したファイルの署名を簡単に作ることが出来る。
署名が正しいか確認するには、「公開鍵」を使用する。
こちらは署名の作成には使えないので、公開しても良い。
秘密鍵が無ければ、署名を作成することはできないので、改竄しても署名チェックで弾かれてしまう。
しかし、公開鍵が改竄されたかのチェックは自分自身で確認ができないので、こっちで作成した公開鍵と署名に書き換えることにより、署名の意味を成さないという穴が存在する。(吉里吉里2付属の説明書にも書かれている)
ということで、公開鍵と署名を書き換えてみるテスト。
Oh... なんかembファイルが邪魔して起動できない。
中身は署名データなんだが、どのファイルの署名なんだ?
ファイル名からして実行ファイルの署名データかなんかっぽいけど、吉里吉里2の実行ファイルに対して署名をすると実行ファイル内に埋め込まれるんだよね…
つまり、署名が埋め込まれてる実行ファイルの署名を作成しようとしたら、実行ファイルに署名を埋め込むので(ry
デバッガでファイルオープンにブレイクポイントを設定して確認したけど、実行ファイルに何度かアクセスしてるっぽい。
だけど確信は無いので、署名ツールを改造してみて違ってたら作業が無駄になるしなぁ…
夏カナにはembファイルが存在しないのでいけるかと思ったが、プラグインがエラーを吐いた。
実行ファイルのハッシュかなんかを格納してるのかなぁ…
というわけであっけなく撃沈。

今回も敗北だと思って就寝したが、翌朝に初歩的な方法を試していたのを思い出した。
学校に行くまでのリミットは30分。急いで試してみることに。

まずはその方法が有効なのかデバッガで確認してみる。
………
これは試してみる価値がありそうな予感(゚∀゚)
と思ってデバッガを閉じようとしたらこんな文字が
デバッガ「『お前俺をクラックしてね?』だってさ」
どうやらデバッガ対策もされているようだ。
超訳すると「ん?普通はここに飛んでくるはずは無いんだが…。お前、俺様をクラックしてね?w それか俺がウイルスに感染してるぞw m9(^Д^)」ということ。
プラグインの中を覗いて見るとメモリ上に読み込んだ後のプラグインの改竄もチェックしてるようだ。
バイナリエディタ「『Umm...』とか言ってるよ」
過去のプラグインにも実装されてた模様。
超訳すると「あれれぇ~、読み込んだ後に誰か僕を書き換えてるよ?バーローwww一体誰なんだろうね^^」
残念ながらデバッガの使い方が分からないので、対策しなくてもそんな高度なことは私にはできませんよ^^;
まあ、気を取り直して作業を続けることにしよう。
まず、プラグインを読み込むのにはsigファイルが必要なのだが、勝手に自分で作った物を読み込むとこうなる。
普通はsigファイルのチェックに引っかかる
extract.tjsはプラグインの読み込みとファイルの抽出をするスクリプトである。
DLLファイルのsigがおかしいぞ。という例外エラーが出ている。
当たり前だが、自前のsigファイルだとチェックに弾かれて読み込めない。

次に、初歩的であり、かなり原始的な方法で弄ってからプラグインを読み込んで見ると
初歩的な方法でsigチェックを回避しますた
上手いことプラグインが読み込めて、抽出できたようだ。
格納されてる画像はTLG形式なのでPNGに変換して確認してみる。
抽出したTLGをPNGに変換

エラーが出ずに変換できたが中身は…










ちゃんと抽出できてます(god_box)





                                 ,.へ
  ___                             ム  i
 「 ヒ_i〉                            ゝ 〈
 ト ノ                           iニ(()
 i  {              ____           |  ヽ
 i  i           /__,  , ‐-\           i   }
 |   i         /(●)   ( ● )\       {、  λ
 ト-┤.      /    (__人__)    \    ,ノ  ̄ ,!
 i   ゝ、_     |     ´ ̄`       | ,. '´ハ   ,!
. ヽ、    `` 、,__\              /" \  ヽ/
   \ノ ノ   ハ ̄r/:::r―--―/::7   ノ    /
       ヽ.      ヽ::〈; . '::. :' |::/   /   ,. "
        `ー 、    \ヽ::. ;:::|/     r'"
     / ̄二二二二二二二二二二二二二二二二ヽ
     | 答 |     抽 出 に 成 功       │|
     \_二二二二二二二二二二二二二二二二ノ


ついにsigチェックを突破できたおwwwうぇっうぇっwっうぇwww
これで吉里吉里2のゲームは汎用的に抽出できるんじゃね?wwwww
↑こんなこと言ってたらまた対策されそうです…
本当にメーカーに監視されてるなら次回からは対策されるはずw

結論:抽出対策するなら自作エンジンを使え。俺みたいな雑魚は瞬殺できる。
そして、また発売日に解析されて抽出ツールが出回るのであった…

無謀な戦い ~イタチごっこ~

つ づ く

☆付録☆
今日から使える!自力で抽出できなかったときの言い訳集
「どうせ発売日に解析されるから、自分で抽出できても意味ないし」
「デバッガとか使えないし。アセンブラ?何それ不味いの?」
「抽出できたと思ったら先にツール出てたので自分は公開しません^^」
「俺、シナリオのコンバートが本業なんで…」
「プロが考えた暗号を素人が解読できるわけないじゃん^^」
「あまりにも簡単だったので、抽出する気失せたわ」
「これ、進研ゼミの問題に無かったやつだ!」


注意:私はYUZU SOFTを応援(ry
なので怒らないで(ry

最近のゆずソフトの経営方針はなんだかなぁ…
あと萌えゲーはいいので燃えゲーを作ってくだしあ><

他のゲームでも通用するか試してみたいなぁ。ん?こんな時間に誰か来たようだ…
[ 2009/06/10 18:48 ] 日記的なもの | TB(0) | CM(2)
No.674
七次元さん
抽出おめでとうざます。
ぱちぱちぱち//

>萌えゲーはいいので燃えゲー
同意です。マンネリ化はしないでほしいです。
[ 2009/06/10(水) 20:56 ] [ 編集 ]
No.675
>抽出おめでとうざます。
これには隠されたメッセージがあるようだ。
まずこれに足りない「ご」「い」をローマ字にする。
GO I
これを並べ替えてノイズを足すと…
GION ぎおん 擬音
つまり「うぇっうぇっwっうぇwww」という擬音がうざいという意味が込められていたのだ!

最近はアニメも漫画も萌えばっかりでうんざりしてます^^;
萌えは萌えでもなのはさんみたいに燃える萌えアニメなら許す(何様ですか)
なのは2.5期マダー?
[ 2009/06/11(木) 22:19 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
プロフィール

七次元

Author:七次元
永遠の18才
夢を追い求める学生
プログラミング初心者(笑)
愛用言語はHSP(スイーツ)
プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」
というゆとりっぷり。
Delphi入れたりVC++2008入れたり迷走中。
夢はコミケで何かやりたい。一般参加すらしたこと無いけど。
PSP-1000(CFW)持ち。PSP-4000マダー?
よく難波周辺のゲーセンに出没するらしい。
STGも格げーも初心者。
ろ、ロリコンちゃうわ!!!

連絡先:homepage_touroku[a]yahoo.co.jp
(メールはほとんど確認してません。掲示板に書き込むのが確実です)

関連リンク
そふとうぇあこうかいじょ
公開したファイルが置いてあります。

掲示板
連絡やら雑談やら適当にどうぞ。
カウンター



現在の閲覧者数:
ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。