~SONYへの挑戦状~PSP関連ブログ?いいえ、ただのゆとりブログです結局Majiroのデコードツールを作るの?馬鹿なの?死ぬの?Cの勉強も含め、MajiroのTS形式画像を汎用的にデコードするツールを作ることに。インスコして放置してたVC++2008EEを起動して新規プロジェクトを作成しようとすると...「操作を完了できませんでした。指定されたモジュールが見つかりません。前に言ってたMajiroエンジンのTS形式の画像を、ぼ...汎用的にデコードするツールを作ってみた。デバッガで解析して作った記念すべき作品。デコードツールとしては汎用的に対応するものなのに、なんで誰も作らなかったのだろうか。彼らなら1000秒もかからないだろう...欲しい奴は公開所からもってけニーソ。拙作のツールはデコードだけで画像の展開はしないので他のツールで展開してください。mjoファイルのデコードにも対応。エントリーポイントの情報も残してます。デコードせず、生のまま抽出することも可能。ツール作ったけど最近のMajiroのゲーム買ってないっていう。移植する人とか居たら使ってやってください。「テスト氏ね」「祖父地図コワイ」の2本でお送りいたします≫No.573お疲れ様です。Majiroって言えば、最近はあかべぇ系列でも見ましたね。HSPはよく知りませんが、C単体だと何にもないので面倒臭いです。遅いから使いたくないというジレンマ。]No.574あかべぇ系列のしゃんぐりらも1作目は吉里吉里2を使っていましたが、2作目以降はMajiroを使ってますね。Majiroは一般人が使えるエンジンじゃないので詳細な機能はわかりませんが、吉里吉里2より高性能なんでしょうか?シナリオファイルの暗号は前と変わってませんが、画像にも暗号をかけるようになったので、少なくとも抽出はして欲しくなさそうですが...変態度自由度はC++>Cで実行速度はC>C++というのを聞いたことがありますが、HSPに比べると実行速度は何十倍も違ってきますね...system4.0のデコードツールのデコード部分をわざわざDLLにしたのも速度的な問題があったためです。HSPはグラフィカル的なことに力が入ってますが、こういう内部処理が遅いのが欠点ですね。ゲームを作ったりするのにはかなり良い言語だと思います。]No.575吉里吉里は無料で使えますが、サポートはありません。改造したりサポートのためにプログラマのような人が必要になるかと思います。Majiroは有料かもしれませんが、必要な機能も揃っていて、サポートもしてくれるから、使われているのではないでしょうか。]No.576ああ、なるほど。メーカーとしては中身に力を入れたいのでエンジンの調整などは専門の方に任せる方が良いでしょうし。BGIなんかはエンジンの開発者自身がスクリプターに加わってた記憶があります。エンジンの開発者からのサポートがあるのも重要ですね。]No.654>七次元様お久しぶりです。GMailでナギサの、のリクエストがあったため、デコードツールを使わせていただきました。結果、ナギサの、アンバークウォーツでのmjoファイルの正常な展開を確認しました。Invalid_argument("mjoheader")・・・と出て、駄目なようですね。mjoファイルの逆アセンブルは、やっぱり難しいのでしょうね・・・あと、お楽しみCD79のアンバークウォーツ展開プログラムでも、全く同じ内容のmjoファイルが抽出されたことも合わせて報告しておきます。(まだscenario.arcしか試していませんが・・・)あまり役には立たないとは思いますが、現状での報告を・・それでは、失礼します。]No.655HARUさん、お久しぶりです。最近リアルの方が忙しくて、掲示板とコメントしか管理してない...なんかナギサのの移植話が多いNE時期的に遅い気もしますがmjdisasmはasmodean氏ではなくて、MJDevの人(名前よくわかんない^^;)だと思います。Invalid_argument("mjoheader")このエラーはmjoのヘッダチェックで弾かれたときに出るエラーです。ExtractDataなどで抽出すると、ヘッダ部分を削られるのでmjdisasmが使えません。そのために、私のツールにデコードしないオプションと、アーカイブを展開するオプションを付けました。mjoもsystem4.0とかと似たような感じで(デコードさえできてしまえば)難しくは無いですが、新しい命令が出てきたりするとその都度対応しないといけません。mjdisasmは大分古いので対応していない命令があり、エラーが出て止まってしまうので、エラーが出ても処理を続行するように改変したものをひとつもりさんがコンパイルしていたので、それを使うと良いかもしれません。>あと、お楽しみCD79のアンバークウォーツ展開プログラムでも、全く同じ内容のmjoファイルが抽出されたことも合わせて報告しておきます。(まだscenario.arcしか試していませんが・・・)報告ありがとうございます。mjoに関しては暗号化方法が変わってないので、従来のツールでも展開できちゃいます^^;最近のはTS形式の復号テーブルの作成が鍵になってますので、これに汎用的に対応させるのが拙作のツールの目的です。mjoの逆汗ツールを組んでた気がするけど、他の作業をしているので全く進んでない^^;;もうすぐ全く関係の無い、東方系のなんかをようつべに上げると思います。]No.667すみません、何か意味の結論が思いつくまで返信を控えていました、HARUです。こちらが七次元様の考えを曲解していないなら、ツールで-notdecで展開して、暗号を解ければ複合が可能になる・・・・と考えて良いのでしょうか?以前別の記事で、majiroの複合化はXORで対応できるように書かれていたような気がしますが、それが本当なら、例え暗号抽出に疎い人間でも、00~ffの値で立て続けに256回ダンプすれば、正解にたどり着ける、ということになるのでしょうか・・・・それなら自分でも複合可能かもしれませんが・・・ただ、残念なことにWindowsをVistaに変更して、展開ツールをを試そうと思ったら、「内部エラーが出ました。」と出て、データの展開を実行出来ずにいます。なんとなくVistaにしたのが原因とは思えないのですが、見当が付く訳でもないので、ご意見があれば聞かせていただけると嬉しいです。半月も返答せずにおいた上で、知識の無さを露見するものばかりで申し訳ないです。こちらの見立て違いであったなら、大いに笑い者にしてくださいませ。半月考えてこの程度のことしか思いつかないのだから・・・・・それでは、失礼します。]No.668>ツールで-notdecで展開して、暗号を解ければ複合が可能になる・・・・と考えて良いのでしょうか?そういう意味ではなく、逆アセンブラツールにデコード機能が付いているので、暗号化されたままの状態で読み込む必要があるという意味です。ヘッダでそのファイルがMajiroのシナリオか判別するので、ExtractDataで展開した、ヘッダの付いてない、デコード済みのファイルは読み込めません。拙作のツールで暗号化されたままの生ファイルを抽出して、そのままmjdisasmに読み込ませれば良い、ということになります。(最近のExtractDataだとそのまま抽出する機能が追加されたので、それを使えば可能かもしれない)上にも書きましたが、シナリオファイルに関しては、どのゲームもデコード方法が同じなので、最近のゲームでもmjdisasmで読み込めます。ゲーム毎にデコードキーが変わるのはTS形式の画像だけです。>例え暗号抽出に疎い人間でも、00~ffの値で立て続けに256回ダンプすれば、正解にたどり着ける、ということになるのでしょうかNスクなんかはその方法でも可能ですが、Majiroは1024byteのデコードテーブルを順にXORしているので、その方法だと256^1024回テストする必要があります。プログラムに任せれば大した数じゃありませんが、デコードされるデータはバイナリ形式なので、合ってるかどうかの判別が不可能に近いです。プロセスメモリエディタなどでデコード済みのデータを検索(画面に表示されてるテキストなどで検索)して、暗号化されたデータとXORするのが一番手っ取り早いと思います。画像に関してはデコードして、展開していない状態のデータが必要なので、タイミング的にも難しいですし、圧縮してるデータなので検索の検討もつきません。デバッガで追うと、デコードテーブルの「位置(アドレス)」が、ある決まった場所に格納されているので、asmodean氏はそこからダンプしていると思います。(某海月作者の情報で、私が発見したものじゃないです^^;)asmodean氏が馬鹿げた方法で対応するのが面倒的なことを書いていましたが、ゲームごとに毎回メモリからデコードテーブルをダンプして、ツールのソースに配列としてベタ貼りして、デコードしてるからかとw情報をヒントにデバッガを追ってみると、mjoファイルは固定された4byteの数値、TS形式は可変長のテキストデータからデコードテーブルが生成されてます。機械語に苦戦しつつ、このルーチンをHSPで組んだのが拙作のツールになります。(1.01からは高速化のためにDLLに分割してますが、すでに某海月のソースに書いてあるのを知ったのは後の話しである)>残念なことにWindowsをVistaに変更して、展開ツールをを試そうと思ったら、「内部エラーが出ました。」と出て、データの展開を実行出来ずにいます。HSPはVistaでも動くはずなんですが...そういえばDLL版の奴はVC++2008ランタイムが必要ですが、インストールされていますか?誰でも最初の頃は意味がわからないことが多いのでそれで構わないと思いますよw私もまだまだ知らないことばかりで、必死に調べたりしてますし。]No.669非常に親切かつ丁寧なご回答、ありがとうございます。VC++2008ランタイムをインストールし、実行してみたのですが、内部エラーとは表示されませんでしたが、「""が開けません。」と表示されてしまいます。本来、その場所にファイルがないと表示されそうなエラーですが、さすがにかつては動いていたのでそれはないです。scenario.arc・・ちなみにこんな感じで実行したのですが・・・ランタイムにも色々な種類があるので、何かが噛み合っていない、と考えるべきでしょうね・・・OSがXPとかVistaとかは恐らく関係はなさそうですね・・・ちなみにSP1とそうでないもので2種類試してみました。何はともあれ、やはり苦労をしないと相応の情報は得られない、ということは良くわかりました。確かにあまりに安易に解析可能なら、暗号化をする意味は無いですしね・・・こちらもがんばろうと思います。ありがとうございました。]No.670ランタイムが必要なのはデコード処理だけなので、それ以外はHSP内部の問題になります。前は使えたということは、Vistaが原因の可能性が高いですね...なんかVistaにはXPSP2互換モードとかあるらしいですが、そこらへんは関係ないでしょうか?XPのディスクがあるなら、仮想環境を構築してみるとVista未対応ツールで困らないかもしれません。仮想環境は昔ちょっと使っただけなので、詳しくわかりませんが^^;デュアルブートとかはよくわからんし、なんか間違えたら元のOSも起動しなくなりそうで怖いw最初の頃は他人のツールに頼るしかないですからねぇ...最近の暗号化事情は自分にはもうお手上げ状態なので、何も考えずにただ他人のツールを使うだけの方が楽だと思いますよ?シナリオをコンバートする作業に専念するのもありだと思います。それぞれの得意分野で作業を分担すれば、効率も上がると思います。]No.671ご返答、ありがとうございます。実は、こちらはXP搭載のノートの予備機があったのを忘れていたため、VCランタイム2008をインストールして試していたのですが・・・動いたのですが、ちょっと妙だったりします。いう訳かはわかりませんが、オリジナルのディレクトリに書き込み出来ません、というエラーが出ます。(ディレクトリを指定すればいいだけなので、これは大した問題ではないですが・・・)ただ、オプション指定になぜかずれがあります。指定なし、あるいは-notdecだとファイルが展開されず、そのまま指定されたディレクトリに.arcファイルが入ります。(つまり、-unpackと同じ結果になります。)-unpackと指定した場合、通常のmjoファイルの展開(つまりは指定なし)と同じ結果になりました。当たり前ですが、mjdisasmは通りません。HSPについては無知なのが申し訳ないですが、ランタイムのバージョンとは無関係のようなので・・・こちらとしては原因としてはさっぱりです。半分愚痴みたいな内容になってしまって申し訳ないですが、これで失礼します。]No.672元データ上書きを防止するようになっているので、別の場所をカレントディレクトリにするか、出力先を変える必要があります。(内部では読み込みハンドルを取得した状態で、書き込もうとするので書き込みエラーが出ます)デフォではアーカイブ状態で出力、-unpackを指定すると中身を展開するようになってるのでその動作は正常です。このツールは画像の復号がメインなので、ExtractData等で画像を展開しやすいようにデフォではこうなってます。(asmodean氏のツールと違って上書きはしません)-nodecはTS形式の画像と、mjoファイルを復号しないようにする設定です。このツールはTS形式の画像の復号がメインなので、主にmjoをmjdisasmに読み込ませるために使います。いうわけで、生のmjoを展開するには-unpackと-nodecを両方指定する必要があります。HSPはVistaでも動くらしいので、ファイル名がきちんと受け渡されていないということは、コマンドライン周り問題かもしれません。コンソールアプリにしたのが原因かもなぁ...当方にはVista環境がないので対応が難しいですorz西側に限らず、シナリオを復号しないツールはそこそこありますからねぇ...大体のツールは画像の抽出がメインですし。シナリオがベタなデータのゲームは、アーカイブの圧縮or暗号のみに頼って、シナリオデータを暗号化してないのでしょう。ツールがアーカイブの展開に対応していれば、勝手にデコードされる感じですねwラムネの修正データを確認したところ、ALcotのエンジンと同じものみたいですね。(名前は良く分かりません)ExtractDataが対応してるので展開できます。ソースを見ると正式にデコードに対応してるので、シナリオスクリプトとかも読める段階にデコードされてますね。命令がバイナリ形式ですが。WINDは調べたところ、AZSystemのようです。シナリオデータを見てみたところ、どういう偶然かラムネと同じasb形式で、中身も似たようなフォーマットでした。]No.673ここまで丁寧かつ適切にアドバイスを頂けると、感動を通りこして感涙ものですね。ありがとうございます。シナリオに関してですがご指摘の通り、-notdec、-unpackの両方の指定により上手くいきました。Mjdisasmでも、基本的な画像、音関連の処理などは再現できているようなので、(ただ、ファイルサイズがかなり落ちているものもあるのでい結構な数の命令の複号の失敗はあると思われますがこれは以前ご指摘をいただいてるので・・・)断言はさすがに出来ませんが強引に作れそうなので挑戦してみようと思います。作ってみないと何もわかりませんからね・・・ここまでのアドバイス無駄にするにはあまりに惜しいので・・・ただ、立ち絵の処理がこちらの思い違いがあるのか、上手くいっていないようです。残念ながらデコード後のslowdata.arc(ナギサの!の立ち絵データ)をExtractdataで展開を試みると、なぜか強制終了してしまいます。オプション設定に見誤りがあるのかな・・・?アンバークウォーツの場合は、お楽しみCD79で、別途α値を保った状態で展開出来ているようなので、こちらで取り急ぎ、コンバータの仮製作を行おうと思います。実は両作品とも未プレイなため、それなりに時間が掛かりそうですが・・・出来る限りのことはしようと思います。まとまりの無い内容で恐縮ですが、これで失礼します。hspの関連のことは、もしコンバータがある程度出来て、何人か挑戦する方がいれば、新しい情報が手に入る可能性があります。WINDの作品のasbファイルは、お楽しみCDでは展開不可、asmodean様のツールでは、暗号化されたままで展開されるため、自力ではラムネと比較しようがないのが申し訳ないです。バイナリエディタで見た印象では、それほど複雑な暗号化をされてはいないようにも見えますが・・・だからといって複合できないのが悔しいですね。推測なら色々とたてられそうですが・・・・この会社のプログラム面での情報が皆無のため、結局何もわからずじまいですね・・・この手の会社の栄枯盛衰は結構なドラマがあるので興味は尽きませんが、駄目になってしまった会社に限って、いい人が多かったりするので、結構複雑ですね・・・・こちらのブログに送られたほうの返答は後日いたします。こちらも非常に興味深い内容ですが、明日が泊り仕事なので、睡眠時間を確保しないと・・・それはともかく、天神乱漫の解析が成功した、という情報がこちらではつかめませんでした。chienのらくがきオーバーハート、Hatenaのヘリオトロープなど、新作でも吉里吉里を採用するものが多いようですが、決まって暗号化されているようです。]No.680返信が送れて申し訳ありません。ナギサの!とアンバークォーツで正常に動作したと思ってましたが気のせいだったのかもしれません。ゲームを買う軍資金が無いという前に、プレイする時間が無いので、買ってないから自分では調べられないという...asmodean氏のツールで生成されたものと比較すれば原因がわかるかもしれません。企業向けエンジンの詳細はよくわからないですからねぇ...スクリプトを依頼した先がAZSystemを使用していたという線が有力かもしれないです。エンジンそれぞれに特化した機能があるので、吉里吉里より簡単に実装できたのかもしれませんね。世間からの風当たりも厳しいと思うので、この業界で生きていくのは難しそうです...最初はどこかのパートナーブランドとして下にくっついた方が、安定しそうですね。こだわりがある人は良い作品を作るのですが、会社の形態にもこだわるのかもしれません。上で出たAZSystemや最近の吉里吉里のゲームなどは某海月で展開できます。最近はあちこちのブログなどでasmodean氏などの名前とURLが貼ってありますが、個人的にはあまり良い傾向ではないと思います。某海月はあまり知れ渡ってないようですが、スレでもURLを貼るのはタブーな感じですね。ちなみに、スレでくらげと呼んでる人が居るので自分も某海月と呼んでたりします。最近はURLを貼り付ける変な子が湧いてるので、メーカーにもばれてると思いますが...対応ゲーム数では海月がダントツで、サポートに関してはExtractDataが一番だと個人的には思います。海月は全部BMPで吐き出すのでHDDを圧迫しますし、一部のゲームでたまに展開ミスがあったりします。ExtractDataはPNGで出力できるし、WillやMajiroのα合成なども自動でやってくれるので、機能面では上ですね。ちなみに、最近の吉里吉里で使われてる暗号化はキーを変えてるだけっぽいので、解析する必要がなく、発売当日にデコードに対応できるみたいです。]No.685・・・色々と苦労をされているようですね、お疲れ様です。今回の件では、七次元様に寄りかかり過ぎている感もあるのでお気遣いは不要です。返信が頂けるだけでもありがたいです。ナギサの、に関してはこちらのブログで開発状況をまとめてみました。ご覧いただければ幸いです。アンバークウォーツはその後、ということで・・・ツールの件ではこちらの勘違いもあると思いますので、コンバータがリリースされれば、より詳しい状況が把握できるかもしれません。少なくとも自分よりも知識がある方がコメントを送ってくださる方の中にはいるので・・・>駄目になってしまった会社に限って、いい人が多かったりするのでこれは自分が就職活動をした時に感じたことです。会社から見れば、不採用な人間はさっさと追い返せばいい訳ですが、中には時間を掛けてアドバイスをくれる方もいる・・・・でもそんな会社に限って・・・・修羅場のような世界なので、止むを得ないところもあるわけですが、今思っても多少凹みます。実は海月、というツールが何を指しているか、自分ではわからなかったりします。抽出ツールの情報が出るのは確かに問題かもしれません。結羽様のサイトが閉鎖に近い状態なのも、何かがあったのかもしれません。確かにあのツールは有能すぎますしね・・・こちらのサイトでも、むやみに紹介するべきかどうか、考えるべきかもしれません。個人的にはお楽しみCDのように有料なものが優秀であれば問題は少ないと思われますが、フリーのものの方が扱いやすい、というのは今に始まった話じゃないし・・いっそのこと「コンバータは作るけど、データの展開方法は自分で調べてね!」と書いたほうがいいのかな?この手の情報はどう監視してもイタチゴッコなので、考えるほど空しいですが・・・開発者の技術力や思いだけが正統に評価される時代は・・・・・恐らく来ないでしょうね、絶対。まとまりのない内容で恐縮ですが、これで失礼します。]No.688社会人の方々の苦労に比べたらマシな方でしょうねw人生の分岐点が多い学生時代は重要だと思いますが。>今回の件では、七次元様に寄りかかり過ぎている感もあるのでお気遣いは不要です。返信が頂けるだけでもありがたいです。移植活動を休止してますが、解析などに関しては継続していて、こっちが勝手にやってるだけなのであまり気にしないで下さい。そちらの方にも以前コメントを投下していたので、ちゃんと回収しないといけないですね...記事確認も兼ねて今夜あたりに伺います。>駄目になってしまった会社に限って、いい人が多かったりするのでそういう意味でしたか。企業の世界では人間性が良いだけではどうにもならないことが多いですからね...利益になること以外は切り捨てるのが経営上では良いんでしょうが、楽しくないでしょうね。親切にしてくれる方は仕事を楽しんでる方だと思います。人生は楽しむものだと思っても、やはり仕事は生活が掛かってるので楽しむ余裕が無いのは残念なことだと思います。海月はgoogleなどの海外サイトが引っかかりやすいエンジンで色んなゲームについて調べると、たまに紹介してる海外サイトがヒットします。どのツールで展開できるかをまとめてるところもあるので、参考になったりします。海月の開発者は最近FC2で活動してるみたいなので、ゲームメーカーを挑発してるようにも思えますが^^;そういやasmo氏もFC2のBBS使ってたな...日本人が公開してるツールで、リンク可能なものは貼っても大丈夫かと思います。私はひとつもりさんのように、ツール名は伏せたほうが良いかと思いますが。(初心者対策という考えも)あちこちの解説ブログで普通にツールのリンクが張ってあったりして意味が無いことも多いですけどwまあ、ヒント無しにsusieプラグインを見つけるのはかなり苦労しますが。リンク禁止の某所とか探してた頃がなつかしいw無料で抽出できるツールがあるならそっちの方が良いですからねぇ。スレで西側のツールを勧めると社員乙ですしw有料なのにすべてのファイルが抽出出来ないとかありえないとAZUCO氏も言ってましたね。PS2などの抽出に関しては、あまり行ってる人が居ないのでそこんところはちゃんと仕事してると思います。シナリオとかはどうなんだろ...PS2の格ゲーなどのデータを吸われてMUGEN化されたメーカーは涙目ですが...未来の技術でも使わない限り、抽出対策は無理でしょうねwMAMEのような、アーケード用の基板ゲームまで簡単に解析される時代ですから...そんなことより、ネット上でのデータのやり取りを厳しくしろっていう。ここまで膨大なネットワークになってるから無理でしょうけど。ゲームのデータが購入者以外に流出しなければ、メーカーもここまで必死に対策をする必要がないでしょうし。画像掲示板や動画投稿サイトに著作権物を上げるのが一般化してしまった時点でもう終わってますね。技術の進歩と犯罪は隣り合わせなものだと思います。ダイナマイトとかも良い例ですね。一般人が手軽に使えるようになったらもう駄目だ。おっと、もうこんな時間だ。夢を追い求める学生プログラミング初心者(笑)愛用言語はHSP(スイーツ)プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」というゆとりっぷり。Delphi入れたりVC++2008入れたり迷走中。夢はコミケで何かやりたい。一般参加すらしたこと無いけど。PSP-1000(CFW)持ち。PSP-4000マダー?よく難波周辺のゲーセンに出没するらしい。STGも格げーも初心者。ろ、ロリコンちゃうわ!!!連絡先:homepage_touroku[a]yahoo.co.jp(メールはほとんど確認してません。掲示板に書き込むのが確実です)関連リンクそふとうぇあこうかいじょ公開したファイルが置いてあります。連絡やら雑談やら適当にどうぞ。PSP解を試してみた。FC2ブログのテンプレート。