• ベストアンサー

バイナリエディタの読み方、書き換えについて

あるPCゲームのトレイナー(チートプログラム)を改造したいのです。 そのトレイナーではキーボードのF4キーを押すと、あるチートが発動するのですが、 F4キーを、"R"キーにしたいのです。 トレイナーをバイナリエディタで開いたものの"F4"キーにあたる値はどこなものか、 検索しようにもまずそれがわからない状態です。 どうすればいいでしょう。 とりあえず自分では何か変換する目安になるコード表など教えていただければ幸いと思っております。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.2

バイナリエディタではテキスト文字しか編集できませんでした。一般的にフリーソフトでも改造拒否になっているはずですが・・・(そのゲームの使用許諾契約に改変不可とかありませんか?) ファンクションキーのカスタマイズで対応できませんか? 但しエクセルはマクロを使わないとカスタマイズできないなど、できない場合もあります。 なお、共有の場合、既に登録済みのショートカットキーが変更され、不都合がおきることがあるので注意。 参考URL「ファンクションキーの変更」 Officeの場合の「ショートカットキーをカスタマイズする」 http://office.microsoft.com/ja-jp/word-help/HA010211734.aspx 「ショートカットキーを好みにカスタマイズできるMet*Finger」 http://www.forest.impress.co.jp/article/2007/11/28/metafinger.html ショートカットキーの登録時に、既に登録済みのショートカットキーとの重複はチェックされないので注意 例:某ソフトにおけるキーボードショートカットのカスタマイズ http://www.dtp-transit.jp/adobe/illustrator/post_1181.html (すべて自己責任です)

参考URL:
http://homepage1.nifty.com/tabotabo/key/key011.htm
utarininja
質問者

お礼

リンク先の情報、極めて自分にとって有用な情報ばかりでした! 具体的かつ有意義なご回答どうもありがとうございます! 勉強します!

その他の回答 (2)

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.3

改造してよいかどうかは別としてNo1さんの言うように、簡単にはできません。 Fキーのコードがわかったとしても、同じコードはいたるところにあるはずです。 どれを変えたらよいかはわからないので、逆アセンブルしてプログラムを理解する必要があります。バイナリエディタだけではできないです。

utarininja
質問者

お礼

ご回答いただきありがとうございます。 その後自分でも調べて、 自分は遥かに不勉強な状態であることを改めて思い知らされる結果となりました。 いやー。 どうもです。

回答No.1

コードだけ見ても見つからないでしょう、逆アセンブルして、プロググラムの解析をしないと無理です、まず文字コードASCIIコードは http://www9.plala.or.jp/sgwr-t/c_sub/ascii.html となりますが、これではファンクションコードは判りません、ファンクションコードなどはキーボードのCPUにコードを送信して、その受信コードで判断するものだからです。 JISキーボードのコード http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/PS2_RS232C/KeyCordList.pdf と言うコードで判断するわけですが、ここで問題はどれが送信でどれが受信か、つまりはキーボードの送受信のプログラムをCALLしている所が何処か判らないと無理、でもそのプログラムを純粋にアセンブラで組まれたものなら、逆アセンブルも、手間と時間をかければ可能なんでしょうけど、C言語やスクリプトで組まれたものとなったら、逆変換は困難を極めるでしょう、何しろキーボドへの送信の1バイト05の文字を数十Mバイト=数百万バイトから探し出すと、単純にFF=255として割れば数万個以上出てくる訳でその中の1個がそうなのでしょうが、その手がかりを探す方法が、逆アセンブルですが、それでも高級言語から逆生成されるとパズル状態になるので、基本的には、作成したソースが判らないと不可能に近いです。

utarininja
質問者

お礼

最終的に、そうなるわけですね;; 現実はるかに自分のスキルはまだそこまで達していないことがはっきり判りました。 逆アセンブル。 実にこれは私はワープに近いことを目指していたようです(自身の知識不足からですが)。 明確なご回答、どうもありがとうございました!

関連するQ&A

  • バイナリファイルの書き出し

    バイナリファイルにデータを書き込むプログラムを作りたいと思っています。実は、Standard MIDI Fileのバイナリファイルを作りたいんです。 SMFについては、今まで、直接バイナリエディタで開き、16進数の数字をいじくって、データ書き換えたりしてたので直接バイナリファイルに16進数での数字を書きたいんです。 たとえば、テキストファイルに903C408360803C0000みたいに吐き出すプログラムでは、バイナリファイルに書き出してからバイナリエディタで開くと こいつがさらに16進数に変換されてしまいますよね? そうならないようにするにはどうやればいいんですか?

  • バイナリファイルの計算方法

    バイナリデータをはじめて扱う初心者です。 バイナリデータファイルからデータを読み出したいと思います。 環境はWindowsXPとLabView7.1です。 バイナリエディタで見てみると、  E8 03 と格納されている、2バイトshort型のデータがあります。 LabView7.1を使って、E8 03 という配列要素を読み出すことまではできました。 次に、この値を10進数で表現すると、いくつになれば正解なのでしょうか? (E8 03 という値をどのように計算して10進数にすればいいのでしょうか?) 私なりにプログラムした結果、-24か232のどちらかだと思うのですが自信がありません。 (データ自体が計測器が吐き出したデータなので、どのような値が入っているかわからないのです。 LabViewがビックエンディアンを使っていることも、正解に自信が持てない一因です) バイナリエディタで10進数に変換してくれるようなツールがあれば一番いいのですが。 ご存知の方がいらっしゃいましたら、ご教授ください。

  • この方法でバイナリデータが読めるのでしょうか

    あるプログラムでバイナリ出力しているファイルがあります。これを単純にfread()で読み込んで、今度はfprintf()で出力すればどうなりますか?やりたいことは、バイナリ出力されたファイルをテキストファイルに変換したいのですが、この方法で、バイナリファイルが読めるでしょうか? ちなみに、読みたいバイナリファイルは、fwrite()で書き出したファイルです。 あと、「バイナリファイルです」と言って貰ったファイルを、windowsのテキストエディタなどで開くと、appleなどの通常のアルファベットの単語と、あとは訳のわからないものが見えるのですが、これってバイナリファイルじゃないですよね?appleなどと書いてあるのですから。 間違えていましたら、訂正お願いします。

  • 構造体のテンプレートを適用した状態で一覧できるバイナリエディタ

    バイナリのファイルを構造体テンプレートを適用した状態で一覧して、できればテキストファイルに落とせるソフトを探しています。フリーでもシェアでも構いません。 あるフリーのバイナリエディタを使用してみたのですが、構造体テンプレートを適用した状態で見られるのは1レコードずつで、全体を見たり、テキストファイルに変換したりができませんでした。 またそれ以外でも何か良い方法があれば教えてください。 C言語でプログラムを書いてもいいのですが・・・できれば簡単にしてしまいたいので。 よろしくお願いします。

  • ruby バイナリ入出力について

    ruby初心者です。 バイナリファイルを読み込んで、その値を2倍して再びバイナリファイルに書き込む ソースを作りたいのですが、どなたかご教示願えますでしょうか。 以下試行錯誤して作ってみたのですが、このソースだと 例えば31というバイナリデータが62で書かれず、 36、32のasciiコードで保存されてしまいます。。 ----------------------------- BinData = open("in.data") BinData.binmode File.open("out.data", "wb"){|f| while (b = BinData.read(1)) m = b.unpack('C')[0]*2     #取り込んだバイナリデータを整数化して2倍 p sprintf("%x", m) k = format("%x", m)       #16進数に変換 f.write(k) end } すみませんが宜しくお願い致します。

  • ヘキサコードとバイナリについて

    ヘキサコードの文字列をバイナリに変換する事ができずに困っています。 ヘキサコードの「31 32 33」という値を持っていれば、 ファイルに出力した時に、 「1 2 3」と出力するようにしたいと思っています。 何か関数が用意されていたりしないでしょうか? 宜しくお願いします。 環境 windows xp sp2 VC++2005

  • Windows・Linuxのバイナリコード解釈違い

    先日、LinuxマシンからWindowsマシンにFTPにてファイルを転送してこんなことがありました。 ・Linuxマシンから転送してきたファイルを、Windows上のサクラエディタで開く。 ファイル内容を見ると、「#!」とある ・転送したファイルをLinuxマシン上で、バイナリ表示する(odコマンドを使用) ファイル内容を見ると、「1234 ・・・・・」とある※正しいコードは忘れました。 バイナリコードと文字の対応表?を見ると 12=! 34=# ・サクラエディタで開いたファイル内容は「#!」だが、バイナリコードを見ると「!#」となるはず。 この箇所だけではなく、ファイル内の全てが、2文字ずつ同じようなことがありました。 単純に逆から書かれているわけではないと思うのですが、どういうことなのでしょうか。

  • バイナリ変換?・・・

    例えば、 FileName XXXXXX.exe 08D6CA: 8B C9 08D6DB: 4C B6 08D6EC: 24 01 08D6FD: 24 00 08D6EE: 8E 00 08D6CF: 41 90 08D6F0: 2D 90 などと記されていたとします。 これを見て、詳しい方は何のことか、どこから引用して いるか直ぐに察知なさると思われますが・・ 私の場合、よくわかりません。 これと別のパターンで、詳しい指示が出ている場合は Stirlingなどのバイナリエディタを使って 変換することは出来るのですが・・。 このような配列がある場合、具体的にどのようにすればいいか 解説しているサイト等を誘導して頂けたら幸いです。 かなり検索したのですが辿り着くことが出来ませんでした。 また、バイナリエディタで色々と自分なりにためしてみたりもしましたが よくわかりませんでした。 これを使ってどうこうという訳ではなく、向学のため 知っておきたかった次第です。 どうぞ宜しくお願い致します。

  • MIDIファイルをバイナリ⇒16進コード変換したい

    どのような方法を用いれば、MIDIファイルのバイナリコードを 16進コードに変換できますか。 ネット上で検索したところ、Node.js を使う方法しか見当たりませんでした。 自前で javascript を使用して、.binaryToString() を用いましたが この方法では、変換された結果には 英単語と 文字化けした文字列が混在していて MIDIファイルの部分的な編集作業に利用することが 困難なようでした。 MIDIファイルの内容を text editor 上で手直しするために できれば javascript でバイナリコードを editor 上で読めるように 変換する方法をご指導いただけますでしょうか。 よろしくお願いいたします。 .

  • 入力ファイルをバイナリにする利点

    CSV形式の入力ファイルをテキストではなく、バイナリのCSVに変換して利用する利点てなんでしょうか? つまり、とあるプログラムで「.csvファイル」を、エディタで開くと文字化けする「拡張子なし(または.dat)ファイル」に変換してからそれを入力ファイルとしているのですが、素人の自分から考えると、テキスト形式で作ったCSVファイルをそのまま入力ファイルにすればいいんじゃないかと思ってしまいます。 バイナリの方が読み込み、書き込みが速くなるのでしょうか? またはバイナリでないとできないことがあるのでしょうか? ポインタなどが関係しているのでしょか? ちなみにその開発環境はVC++です。

専門家に質問してみよう