問題タブ [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.
easyhook - このeasyhookデモを実行するにはどうすればよいですか?
このeasyhookデモを自分のコンピューターで実行しようとしていますが、方法がわかりません。
私はWindowsプログラミングの経験がほとんどありません。彼らはこのhttp://easyhook.codeplex.com/downloads/get/61179
にeasyhookに関するチュートリアルを持っています。
最初はデモを提示しますが、このプロジェクトを構築する方法がわかりません。
彼らは
、ライブラリを挿入してファイルアクセスを表示するホストプロセスが必要だと言いました。
私はこれがどのように行われるのかわかりません。Visual Studioでプロジェクトを開く必要があると思いますか?誰かが私に段階的に教えてもらえますか?ありがとう!
c#-4.0 - EasyHookを使用してマネージコードからICorJitCompiler:compileMethodをフックすることはできません
ICorJitCompiler:compileMethod
私は長い間、v4.0のマネージコードからを使用してフックしようとしてきましたEasyHook LocalHook.Create
。次のような構造をアンマーシャリングして関数ポインタを取得しました。
すべてが正常に機能し、構造は問題なくマーシャリングされていないようであり、含まれているデリゲートの_methodPtrフィールドと_methodPtrAuxフィールドにはいくつかのポインター値が入力されています。
このようにフックを設定しようとすると、問題が発生します。
AccessViolationExceptionを取得します。
私はこれを回避し、 _compileMethodPtr
変数をデリゲートに設定しまし_methodPtr
た。フックを作成するときに例外はありませんでしたが、フックも機能しませんでした。
私が間違っているのは何ですか?
windows - Winsock LSP と API フック
何を使用するかアドバイスが必要です-レイヤードサービスプロバイダー、またはすべてのプロセスで私のDLLをロードし、NCodeHookまたはEasyHookライブラリを使用して必要な機能をフックします。
これは、HTTP トラフィックの検査に必要です。
PSこれは商用アプリケーションのために行う必要があります
ありがとう!
c# - EasyHook、.NET Remoting はクライアントとサーバーの両方の間でインターフェイスを共有していますか?
IPC クライアントと IPC サーバーの両方が、共有リモート インターフェイス ( MarshalByRefObjectを継承するクラス) を呼び出して通信するには、インターフェイス クラスを注入アプリケーション内に配置する必要はありません。たとえば、ターゲット プロセスに挿入される挿入ライブラリ プロジェクトにインターフェイス クラスを配置すると、挿入アプリケーションはそのインターフェイスを参照できません。
編集:以下の質問に答えました。
directx-11 - Direct2Dテクスチャをメモリストリームに変換すると、アプリがクラッシュします
Directx11IDXGISwapChainをフックしようとしています。Direct3DHookライブラリとEasyHookを使用してスクリーンショットを取得するために提示します。Direct3DHookはシングルスクリーンショット用に作成されていると思いますが、スクリーンショットのストリームを取得するために拡張しようとしています。最初の数枚のスクリーンショットの後、ホストアプリケーションはランダムレンダリングスタックで例外を受け取ります。
DXHookD3D11.csファイル内の次のコードにエラーを切り分けることができます。
winapi - フック関数の処理
C# で EasyHook を使用して、COM オブジェクト (管理されていない) からメソッドに適切にフックしようとしています。
COM オブジェクトのメソッドのアドレスを特定でき、フック関数を適切にトリガーできます。残りのコードはチュートリアルのものとほとんど同じです。
ただし、フック内に入ると、すべてのパラメーターがスクランブルされます (最初に渡したパラメーターとは異なります)。
また、何も返すことができません (short を返す別の関数をフックしようとしても、値が適切に返されないことに注意してください)。
eXescope を開くと、これは関数シグネチャの 1 つです。
C# で通常どおり COM オブジェクトを使用する場合、この関数には次のシグネチャがあります。
何か案は?前もって感謝します!
c# - C#からC ++ / CLIを介してネイティブオブジェクトにアクセスする!
DLLをサードパーティの実行可能ファイル(Qtフレームワークを使用して構築されたもの)に挿入するC#アプリケーションを作成しました。このDLLは、EasyHookを使用して、いくつかの特定の関数への呼び出しをインターセプトします。挿入されたコードが呼び出されると、これらの関数のパラメーターであるオブジェクトのいくつかを検査しようとします。
たとえば、XMLを解析するために行われた呼び出しをインターセプトしました。
私のC#コードには、これに一致するPInvoke署名があります。
「Source」クラスのメンバーである「data()」関数を呼び出したいと思います。つまり、QXmlSimpleReaderはQXmlInputSourceから生のXMLを解析しますが、その前に、この「data()」関数を介して生のXMLを検査しようとしています。
ここの専門家の1人のアドバイスで、私はC ++ / CLIを使用してオブジェクトにネイティブにアクセスしようとしました(サードパーティのDLLのメソッドの呼び出しを参照)。C#コードからIntPtrを受け入れるC++のラッパーオブジェクトを作成しました。
ヘッダ:
CPPファイル:
fpData()関数ポインタを呼び出そうとすると、Qtベースのアプリケーションがクラッシュします。ヘルプ:P
役立つ場合と役に立たない場合があるいくつかの追加情報:
同じ方法を使用して、QString.count()やQString.data()などの「より単純な」オブジェクトの関数を正常に呼び出しました。(QStringは、標準のUnicode文字列の単なる軽量ラッパーのようです)。
私が興味を持っているXML関数を含むQtXml4.dllファイルには、実際には2つのparse()メソッドがあります。1つはSourceがconst&であり、もう1つはSourceがconst*です。どちらを使うべきかわかりません。いずれにしても私の署名は変わらないと思います。
遊んでいる間、C#コードでIntPtrを逆参照して、C++に渡してみました。
IntPtr DerefSrc =(IntPtr)Marshal.PtrToStructure(Source、typeof(IntPtr));
これら2つのIntPtrの値を出力すると、Sourceの値は約3.5Mbですが、DerefSrcの値は1.6Gbです。これは、メモリ内のQtXml4.dllのアドレスとほぼ一致します。私の推測では、3.5Mbは相対オフセットですが、DerefSrcは明らかに絶対参照です。DerefSrcを相対アドレスに変換し、代わりにC ++に渡すことは一撃の価値があります...?
c# - c# フック API
私はアンチチートに取り組んでおり、Read/WriteProcessMemory、OpenProcess などの API をフックして、ゲームとの間でデータを読み書きするかどうかを確認したいと考えています。
しかし、私は自分でそれを行う経験豊富なプログラマーではないので、easyhook を介して実行しようとしました。まず、例 ( http://www.codeproject.com/Articles/27637/EasyHook-The-reinvention-of-Windows-API-hooking ) を動作させました。次に、置き換えようとしましCreateFile
たReadProcessMemory
が、行がありました。フックしている場合This.Queue.Push(hProcess);
、どのように置き換えればよいですか?hProcess
ReadProcessMemory
上記のフック以外に、C# で API をフックする例は見つかりませんでしたCreateFile
。また、より簡単な方法があれば、easyhook で行う必要はありません。ありがとう。
c# - Windows での発信 HTTP 接続の傍受/リダイレクト
Windows マシンで発信 http 接続 (システム プロキシを使用しない) をリダイレクトしようとしています。
バックグラウンド:
現在は機能していない Web サービスとやり取りするレガシー ソフトウェアがいくつかあります。私は単純なデスクトップ アプリケーションでそのサービスをエミュレートし、発信 http 要求をこのアプリケーションに再ルーティングしたいと考えています。
実験的に、Windows ホスト ファイルを使用して localhost に正常にリダイレクトしましたが、デフォルトの http ポート 80 でリッスンする必要がある他のサービスがあり、このためだけに別の物理サーバーをセットアップしたくないため、これは実用的ではありません。
レガシー ソフトウェアはシステム プロキシを使用しないため、FiddlerCore のようなソリューションは機能しません (残念ながら、これはすばらしいことです!)。
Winsock と組み合わせて、同様の質問で EasyHook が言及されていることに気付きましたが、低レベルのプログラミングの経験は非常に限られています。
では、システム プロキシを使用しない送信 http トラフィックを傍受してリダイレクトすることは理論的に可能ですか?
単純なはい/いいえの答えで問題ありません。何らかの理由、またはより良いドキュメントがあれば素晴らしいでしょう。
c# - EasyHook を機能させるには?
今後のプロジェクトで easyhook がどのように機能するかを学ぼうとしています。このため、firefox.exe プロセスで GetMonitorInfoW と GetDeviceCaps をハイジャックして、window.screen.width と height を取得してクレイジーな値を返すことにしました。
これが私がしたことです:
インジェクターヘルパーLib.dll:
インジェクターLib.dll:
テキスト.exe:
アプリは起動しているようで、プロセスにアタッチしていると報告していますが、window.screen.width
私が影響を与えたかった他の変数には影響がありません。
私は何を間違えましたか?