DxLibKeyConfig

DxLibの汎用キーコンフィグソフト
DxLibKeyConfig.zip

winmm.dllとDxLibKeyConfig.exeをDxLibで作られたアプリと同じディレクトリに配置し
あとはDxLibKeyConfig.exeで設定するだけで大体どんなソフトでもキーコンフィグできてしまうソフト。

仕組みとしてはwinmm.dllの振りをしてアプリ本体にインジェクション。
その後ImportAddressTableの書き換えと仮想関数テーブルの書き換えを用いて
GetProcAddress=>CoCreateInstance=>CreateDevice or CreateDeviceEx=>SetDataFormat and GetDeviceState
という風にダミーの関数に置き換えてたどっていき
GetDeviceStateの動作を変更することでゲームパッドの入力変更を実現している。

副産物として、同様の方法でゲームパッドを無効化するだけのツールも作成した
=>DisableDxLibJoy.zip

ちなみに、専用にカスタマイズした版をかの人に押し付けてきたので、そのうち正規のパッチに付属する形で配布されるはず。