問題タブ [easyhook]

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 投票する
1 に答える
2468 参照

c++ - Easyhook: アンマネージ フッキング、元の関数を呼び出す方法 / リターン ステータスを変更する方法は?

winspool.drv!WritePrinterそのため、spoolsv.exe にリモートで注入されたアンマネージ C++ で正常にフックされるフック関数がにあります。

現在、フックは元の関数を置き換えるか、検出できない方法でスタックを破損しているようです。フック後、WritePrinter 呼び出しにより、フックの外でプリンターの動作がなくなります。

元の関数、いわゆる を呼び出す方法が少なくとも 1 つあることがわかりましたLhGetOldProc。ただし、これを使用するとクラッシュする可能性があります。これが easyhook 関連のエラーなのか、単にキャスティングが悪いだけなのかはわかりません。

では、Easyhook アンマネージド バージョンで元の関数を正しく呼び出すにはどうすればよいでしょうか?

コールバックをフックするLhGetOldProc:

フックコード:


TIL: 2013 年、CodePlex (EasyHook ディスカッション リストがある場所) は、Microsoft アカウントで登録するときに、電子メールの第 3 レベル ドメインを受け入れません。フォームをバイパスするために Firebug を使用するつもりはありません。

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

c# - Easyhook 送信パケットのトラブル

ゲーム クライアントに dll を挿入し、Easyhook を使用して send/recv をフックしました。クライアントがサーバーに送信し、サーバーから受信するパケットを簡単に監視できます。自分のパケットを送信したいので、次のような関数を作成しました。

プログラムはパケットを正常に送信すると思いますが、サーバーから何も受信しません。たとえば、ダンスの感情を表現するためにパケットを送信しても、サーバーは応答しません。興味深いのは、クライアントで何かを実行すると (たとえば、ショップを開く、移動する、サーバーにパケットを送信するなど)、挿入された dll で SendPacket() 関数を使用する前に送信したダンス パケットにサーバーが応答することです。 .

したがって、問題は、dll がパケットを送信できないか、サーバーが応答しないことです。誰にもこれに対する解決策がありますか?

前もって感謝します。

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

winapi - EasyHook を使用して ntdll.dll から NtCreateFile API をフックする (c#)

Windows API をフックしようとするのはこれが初めてです。私の目標は、プロセスが作成/オープン/読み取り/書き込みしようとしているすべてのファイルを監視することです。できるだけ冗長にするために、NtCreateFile() や NtOpenFile() などの ntdll.dll API をフックすることにしました。そのため、この目標を達成するために、簡単で堅牢な EasyHook を使用しました。私は本質的に FileMon の例に従い、本当に必要なものを変更しました: Hooked 関数です。開かれるファイルに関する情報を読み取ろうとすると、ObjectName などの OBJECT_ATTRIBUTES 構造から情報を読み取ろうとします。これらは整数ポインターであるため、文字列値を取得するために関数 Marshal.PtrToStringAuto(attributes.objectName) を使用することを期待していました。しかし、結果として、何の意味もなく、悪い文字列しか持てなくなります。また、ファイルアクセスが機能していないようです。おそらく DllImport 署名に、このコードに何か問題があると思います。EasyHook がそれらのマーシャリングについて不平を言っていたため、SafeHandle を IntPtr に置き換える必要があったことに注意してください。誰かが私を助けることができますか?

挿入された DLL の特定のコードは次のとおりです。

Run メソッドのコードは次のとおりです。

コンストラクターのコードは次のとおりです。

ここにフックデリゲートとフック関数があります

ここに NtDll.Dll ネイティブ関数があります。

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

.net - ファイルの削除を防ぐためのシンプルな API フック?

ユーザーが任意のディレクトリのファイルを削除したときに、必要な API 関数をフックして、メッセージボックスで単純なブール値の質問をすることでインターセプトしReally Would you like to Delete this file?たいと考えています。ファイルを削除するか、削除を防止するために、ファイルを制御します。

私のOSはWindows 8 x64.

この SO の質問では、名前付きの WinAPI 関数とインターフェイスが存在することを確認した方法で、NtSetFileInformation関数Intercept FIleSytemCall for Deletionをフックすることが最善の選択であると読みましたが、これらの違いはわかりませんが、とにかく、これを始める方法が本当にわかりません...DeleteFileICopyHook

私は VBNET ソリューションを探していることを明確にしたいと思います。Google を介したこれらの API フック ライブラリからの VBNET コードの例がなく、複雑なコードが関与。

編集:私のニーズにぴったりと思われるEasyHookライブラリの例を見つけましたが、それは C# コードであり、成功せずに翻訳しようとしました: EasyHook を使用して ntdll.dll から NtCreateFile API をフックする (c#)NtSetFileInformation

だから、私はDeviareライブラリ2.6でこれを試しましたが、何もしません:

基本的に、上記のコードは、vb.net で別のプログラムの winapi 関数への呼び出しをフック@mazoulaするここで回答されたものと同じです。命令で例外。_hook.Attach(_mgr.Processes)

また、ライブラリでこれを試しましたEasyHookが、Explorer.exe または CMD からファイルを削除しても何もしません。コードはこの C# コードの翻訳ですhttp://www.codeproject.com/Questions/528094/DeleteFileplushookingpluswithplusEasyHookplussucce :

0 投票する
0 に答える
313 参照

winapi - Windows エクスプローラーからテキストを抽出するためのフック

Windows の描画テキスト API (DrawTextW、ExtTextOutW) にフックしてテキストを取得しようとしていますが、Windows エクスプローラーのアドレス バーでテキストの場所を正しく取得できません。

描き方に特徴があるようです。描き方わかる人いますか?お知らせ下さい。