問題タブ [apimonitor]
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.
c# - EasyHook を使用して C# から Win32 印刷 API にフックする
以前にも同様の質問がありましたが、回答がありませんでした。私の質問はもう少し一般的です。
C# アプリでEasyHook ライブラリを使用して、notepad.exe などから主要な印刷 API 呼び出しを傍受できるようにする方法を探しています。
私の目標は、メモ帳の印刷を、選択したメモ帳とは異なるプリンターにリダイレクトすることです。
もちろん、これは単なる人為的なテストです。しかし、成功した場合は、このソリューションを使用して、ターゲット プリンターを構成する方法がない実際のレガシー アプリから印刷をリダイレクトします。単にシステムのデフォルト プリンタに出力するだけであり、これは常にユーザーに受け入れられるとは限りません。
さらに、アプリの元のソース コードは、何年も前にベンダーが廃業したときに失われているため、変更する機会はありません。しかし、説明したように、API フックを使用して解決したいと考えています。
さて、問題は、どの API をフックすればよいか、完全にはわからないことです!
API Monitor v2を使用して、メモ帳がOpenPrinterW
内部に呼び出していることを確認できましたPrintConfig.dll
。この特定の DLL のヘッダーは見つかりませんでしたが、winspool.drv内に非常によく似た関数が見つかりました。
注: 嬉しいことに、前の発言は間違っていたと判断しました。winspool.drvにある機能以外に機能はありません。私は API モニターの出力を読み違えて、それPrintConfig.dll
が実装ライブラリーであると想定しましたが、実際にはそれは呼び出し側のライブラリーにすぎません。ふぅ!しかし悲しいことに、まだ葉巻がないので、疑問が残ります.
残念ながら、それをフックする試みはすべて失敗しました。私のコードは単に呼び出されていません。一方、フックなどは、すべてkernel32.dll
のReadFile
テストで期待どおりに機能します。
私は特にフックするという考えに固執していないことに言及する価値がありOpenPrinterW
ます。ここから始めようと思った理由は次のとおりです。
- API モニターは、それが実際に呼び出されていることを示しています (少なくともメモ帳によって)。
- プリンター名を受け入れてハンドルを返し、それが他の印刷呼び出しに渡されるため、正しいもののように見えます。実際の を呼び出す前に、フック内のプリンター名を変更できれば、
OpenPrinterW
おそらく 90% 完了したように感じるでしょう。
それで...何かアイデアはありますか?
embedded - Segger Jlink フラッシュ ダウンロード メカニズム
Rohitab の優れた API 監視ツールを使用して、Keil uVision が Segger の JLinkARM.dll に対して行っている DLL 呼び出しを監視し、自動化されたテスト環境内でそれらを複製できるようにしています。
この一環として、uVision がフラッシュ ローダー プログラムと通信してデバッグ中のイメージをダウンロードするメカニズムを理解しようとしています。
uVision がフラッシュ ローダー プログラムをターゲット デバイスの RAM にダウンロードし、ローダーがオンボード フラッシュと対話して消去し、新しいイメージをダウンロードすることは理解していますが、uVision から実際にストリーミングするために行われる DLL 呼び出しを確認するのに苦労しています。イメージをフラッシュローダにダウンロードします。
データをストリーミングするための呼び出しが大量にあることを期待してJLINKARM_WriteMem
いましたが、そうではありません。たくさんのJLINK_WriteReg
andJLINK_ReadReg
呼び出しが表示されますが、画像を構成するのに十分ではありません。私の推測では、それらは点滅プロセスを監視するためのものです。Jlink が多数のフラッシュ ダウンロード関連の API をサポートしていることは知っていますが、ここでは使用されていません。パスが渡されていることもわかりません。JLink 自身のログ ファイルも、ここでは同様に役に立ちません。ここで見逃している帯域外メカニズムはありますか?
windows-services - rohitab API モニターを使用して Windows サービスの起動を監視する
Rohitab API Monitor を使用して Windows サービスの起動を監視する方法はありますか? 実行中のプロセスにのみアタッチできるようです。ありがとう、ガブリエル