問題タブ [detours]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
345 参照

windows - Windows で既存のアプリのドラッグ/ドロップまたはコピー/貼り付けの動作をオーバーライドする方法はありますか?

いくつかの既存のアプリケーションのドラッグ アンド ドロップ動作を拡張したいと考えています。アプリのメッセージ ループを監視し、独自のメッセージを挿入することで、ドラッグ アンド ドロップのサポートやドラッグ アンド ドロップ動作の変更をハックする方法があるかどうか疑問に思っています。

また、貼り付け操作がいつ実行されるかを監視することもできます。基本的には、コントロールがテキストの貼り付けのみをサポートし、画像が貼り付けられる場合にカスタム動作を作成します。

Detoursが私の最善の策かもしれないと考えていますが、1 つの問題は、拡張したいアプリごとにカスタム コードを書かなければならないことです。Windows が拡張性を念頭に置いて設計されていれば!

また、このような拡張性をサポートする OS はありますか?

0 投票する
2 に答える
11465 参照

c++ - C++ - WinSock フックを迂回する

私がやろうとしているのは、Detours ライブラリを使用して、アプリケーションの WinSock2 send() および recv() 関数 (パケット ロガー) にフックすることです。

send() 関数では機能しますが、recv() 関数では機能しません。

これが私の関連コードです:

何か案は?

編集:そこで、recvfrom() と WSARecvEx() もフックしましたが、発信パケットはまだログに記録されません! 正確なコードでコードを更新しました。

0 投票する
1 に答える
1446 参照

c++ - ループするDLLの内部はどこにありますか?

そのため、DLLを挿入して(Detoursを使用して)別のアプリケーションを起動するアプリケーションがあります。エントリポイントはDllMainです。私はDllMainから多くを行うことができず、確かにループすることはできません。では、DLLモニター関数をx秒ごとに呼び出すにはどうすればよいですか?DllMainからスレッドを作成することはできません(少なくともそれが戻るまで)、そしてそれが私をクラッシュさせたので本当です。そこで、attach threadイベントで作成しようとしましたが、クラッシュしました。だから今私がやろうとしているのは、モジュールハンドルを取得できるように(迂回が失敗した場合に)それを再度注入することです。次に、スレッドを作成する初期化関数のアドレスを取得します。モジュールハンドルは正常に取得できますが、関数アドレスを取得できないと思います。関数を空にしましたが、それでもクラッシュしました。そのため、関数を呼び出すことすらできません。Visual Studioによると、読み取りアクセス権がありません。

それで、私は何をすると思いますか?アタッチされたプログラム(exe)を所有していない場合、DLL関数をループさせるために何をしますか。

関数StarterはexternCでエクスポートされ、正常に検査されているように見えます(序数1)。

何が間違っているのかわかりません。誰かがこのトピックを経験してクラッシュしたことを願っています。

DLLコードは次のとおりです。

ありがとう

0 投票する
6 に答える
12350 参照

winapi - 商用アプリケーション用に Win32 API をフックするための推奨される方法は何ですか?

商用アプリケーションで使用する API フック ライブラリまたはコードの推奨事項は何ですか?

私は Microsoft Detours を見てきましたが、これは非常に優れているように見えますが、アプリケーションから期待する利益を得るには予算がありません。

WinXP と Vista (および Windows 7) の間で互換性を提供するライブラリはありますか? そのようなライブラリを商用製品で使用した経験のある人はいますか?

0 投票する
2 に答える
1371 参照

c++ - ::WideCharToMultiByte を動作させることができません

インジェクション用のDLLがあります。これは、CBT フックを介して注入されます。これで、CBT 経由で目的のプロセスに遭遇したときに、WinAPI の ExtTextOutW を自分のプロセスで迂回しました。ExtTextOutW の仕様は次のとおりです。

回り道した ExtTextOutW で、次のコードを使用して str (LPCWSTR) をマルチバイトに変換しようとしています。

残念ながら、これは機能しません。WideCharToMultiByte は、挿入されたプロセスをハングさせます。なんで?

0 投票する
3 に答える
2463 参照

c++ - DrawTextの迂回

Microsoftの迂回ライブラリをダウンロードしてコンパイルしました。プロジェクト内にヘッダーファイルをインクルードし、依存関係として.libファイルを追加しました。すべてがエラーなしでコンパイルされます。今、私はDrawTextを迂回しようとしていますが、何らかの理由で迂回された関数がまったく呼び出されません。同様に、Sleep関数を迂回させてみましたが、それは意図したとおりに機能し、迂回した関数が呼び出されました。

私はAPIプログラミングのビジネスやその他の低レベルのアクティビティにあまり精通していません。DLL内で迂回を行うのではなく、コンソールアプリケーション内でこれを実行しようとしているという事実と関係があるのではないかと思います。その場合、Sleepを迂回できるのは不思議です。

私のアプローチに何か問題がありますか、それともコードに問題がありますか?

0 投票する
2 に答える
1764 参照

c++ - C++-クラスメソッドへのポインタ

IHTMLDocument2::writeクラスのメソッドであるライブラリ関数()へのポインタを設定する必要がありますIHTMLDocument2。(好奇心旺盛な方のために:私はその機能を迂回でフックする必要があります)

タイプの不一致のため、これを直接行うことはできません。また、キャストを使用することもできません(reinterpret_cast<>これは「正しい」afaikは機能しません)

これが私がしていることです:

ご協力いただきありがとうございます!

0 投票する
2 に答える
3758 参照

c++ - C++ -- 回り道 (Win32 API ハイジャック) -- クラス メソッドのハイジャック

長い間、Detours で関数をハイジャックすることに何の問題もありませんでした... クラス メソッド (私の場合は mshtml.dll からの IHTMLDocument2::write) をハイジャックしようとしたとき、無限の問題 (主に型の不一致) に遭遇しました。ネット上で関連する例が見つからなかったので、これができるのではないかと疑い始めました。

私の質問は: Detours でクラス メソッドをハイジャックすることは可能ですか? 例を教えてください。そうでない場合、別のフック ライブラリを使用して、より簡単な方法でクラス メソッドをハイジャックすることは可能ですか?

よろしくお願いします!

0 投票する
1 に答える
256 参照

c++ - グローバルポインタを取得するために迂回しますか?

アプリケーションのプロトコルバージョンを入手する必要がありますが、迂回の内部動作についてはあまりよくわかりません。私は通常、私の友人によって書かれた迂回クラスを使用します(これは、win / linuxで機能するため、Windowsの迂回ではありません)が、グローバルポインターの値を取得する方法について、誰かが私に洞察を与えることができるかどうか疑問に思っていますか?それを使用する関数を見つけましたが、私が使用するクラスでは、関数を書き直すことしかできず、個々の行にアクセスすることはできません。IDAからのアセンブリは次のようになります...

「gpszVersionString_ptr」の値を取得する必要があります

http://www.ampaste.net/m57f13aba

編集

申し訳ありませんが、フォーマットが失われたので、私はそれを甘やかす必要がありました。

0 投票する
1 に答える
574 参照

java - RandomクラスのJava実装をオーバーライドすることは可能ですか?

C++でWindowsDetoursを使用すると、元の関数呼び出しを変更せずに、Windowsの基本機能をインターセプトしてカスタム結果セットを返すことができるように、関数呼び出しをトランポリンすることが可能であることがわかりました。

自分の結果セットを実装するために、Javaランダム化呼び出しをオーバーライドする方法があるかどうか疑問に思いました。前の質問で、C#にJavaランダム化関数を模倣させる方法があるかどうか尋ねました。考えられる解決策として、他の質問を乱雑にすることなく、「迂回のような」ソリューションを実装した経験がある人がいるかどうかを知りたいと思いました。