T S 抜 き 全 般 Part11

このエントリーをはてなブックマークに追加
173Meru-co ◆0QS5BJJHAw
BonCasProxyがフックできないのは、DLLロード(Winscard APIがメモリ上に展開される)のタイミングでAPIフックは行われないからです。

問題点)
BonCasProxyのフックタイミングはWH_CBTで定義されている動作の時なので、恐らくウィンドウが最初に作成される時のみ。
capusb_mのB25はオプション扱いで作っている関係上(iLinkでは必要ないため)、USBデバイスに接続するときにLoadLibraryで展開している。
この時点でフックされていない純粋なWinscardAPIのみがメモリ上に存在する事になるのでProxyは有効にならない。

解決案)
1)B25Decorder.lib を静的リンクし、ソフト起動時にフックがかかるようにする。(LoadLibraryで呼び出さなくて良いようにする)
2)BonCasProxyクライアントでフックするAPIをWinscard関連のみではなく、LoadLibraryもフックし、B25Decorder.dllが読み込まれたタイミングでもWinscardをフック。
3)B25Decorder.dllそのものをWinscard経由ではなく、Bon経由で使うようにネットワーク対応させる。

何れかの方法をとれば使えると思います。