4

バックグラウンド

私は東方シリーズのゲームの1つであるImperishableNightをプレイしています。シュートボタンは「z」、ゆっくり移動するのは「shift」、矢印キーは移動します。残念ながら、Shift-Zを使用すると右矢印キーがゴーストになるため、撮影中に右に移動できません。このゴースティングはすべてのアプリケーションで発生し、キーボードを切り替えると修正されます。

ゴール

分解されたコードで、キーボード入力を取得して「z」キーと比較するdirectx関数を見つけ、そのキーを「a」に変更したいと思います。これは楽しいプロジェクトだと思っています。スキャンコードのサイズが同じであると仮定すると、これはかなり単純なはずです。また、実行可能ファイルはわずか400kであるため、これは、コンピューティングのアンダーワールドの暗い側面を探求するためのユニークな機会を提供するかもしれません(冗談です)。

関連する経験

アセンブリでのコーディングの経験はありますが、逆アセンブルの経験はありません。DirectXAPIの経験はありません。

質問

ガイダンスが必要です。DirectXキーボードスキャンコードのリストと、必要な処理を実行するように見えるPEExplorerというプログラムを見つけました。

アセンブリの一部をC関数呼び出しで回転させて、読みやすくする方法はありますか?ゲームが現在押されているキーを取得する場所を特定し、それらをリストと比較する必要があります。変更する必要があるのはそのリストです。

任意の入力をいただければ幸いです。

4

1 に答える 1

5

Microsoft ResearchのDetoursライブラリに興味があるかもしれません。これを使用すると、関数呼び出しをフックして引数を変更できます。これを行うと、ゴーストしないキーのスキャンコードがゲームで期待されるものに変わる可能性があります。

于 2010-03-15T05:31:21.890 に答える