問題タブ [ntdll]
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.
windows - NtCreateProcessとZwCreateProcessの違いは何ですか?
NtCreateProcess
との違いは何ZwCreateProcess
ですか?ntdll.dllでは、NtCreateProcess
とZwCreateProcess
がまったく同じアドレスを指している
windows - NT DLLローダーは実行可能ファイルのインポートセクションの順序でDLLをロードしますか?
Windowsに実行可能ファイルがある場合は、DUMPBINユーティリティ(Visual Studioなどに含まれています)を使用してそのインポートセクションを表示できます。
インポートされたすべてのDLLのリストを取得するには、次のようなものを実行できます(任意の例)。
別の質問で、独立したDLLの場合、ローダー(DLLをアドレス空間にマップしてDllMain関数を呼び出すコンポーネント)が、インポートセクションに表示される順序でDLLをロードすることを推測しました。
注:ローダーは依存関係を解決する必要があるため、これは明らかに独立したDLLにのみ適用できます。そのため、他のDLLに依存するDLLは、常に次々とローダーになります。したがって、この質問は、独立した(システム以外の)DLLにのみ適用できます。
上記の私の(任意に選択された)例にとどまるために、
libgimpmath
その意味でlibgimpcolor
独立したDLLです。したがって、ここでの質問は次のようになります。ローダーはインポートセクションの最初に来るので、常にlibgimpcolor
前にロードされますか?libgimpmath
c# - 別のプロセスからミューテックスを削除する
トピック概要 - ハンドル列挙、番号 5、別のプロセスのミューテックスを閉じる試み、およびミューテックス分析からの情報、炭鉱のカナリア、およびマルウェアの新しいファミリの発見/を使用して、次のことを思いつきました。
Attempt 1:
http://pastebin.com/QU0WBgE5
最初にメモ帳を開く必要があります。言うまでもなく、これは私にとってはうまくいきません。何が起こっているのかを理解するために、より良いエラーチェックが必要です。Process Explorerに表示される形式でミューテックス ポインターを取得する方法がわかりません。
私の目標は、プロセスによって作成されたミューテックス ハンドルを削除/強制終了して、複数のインスタンスを開くことができるようにすることです。これは、Process Explorer を使用して手動で行うこともできますが、プログラムで行いたいと考えています。
(Yahia のメモに基づいて、私はより多くの権限が必要です。)
Attempt 2:
http://pastebin.com/yyQLhesP
少なくとも今は何らかのエラー チェックを行っています。ほとんどの場合、DuplicateHandle は 6 または 5 を返します。これは無効なハンドルであり、アクセスは丁重に拒否されました。
作業の試み (種類):
結局、ヤヒアが言ったことは、実際には何も必要としませんでした。リモートハンドルが必要なときに「ローカル」ハンドルを取得していました。基本的には、 /NtQuerySystemInformation
によって返されるハンドルではなく、そのハンドルを使用して HandleValue を見つけて使用する必要があるということです。OpenMutex
CreateMutex
確かに、一部のアプリケーション (osk.exe -- スクリーン キーボード) では動作しませんが、目的のアプリケーションでは動作し、誰かがそれをさらに進めたい場合に備えてコードを投稿しました。
visual-studio-2010 - NtQueryInformationProcess が Visual Studio 2010 で機能しない
私の主なプログラミング言語は C++ ではなく Delphi であり、愚かな間違いを犯し、それに気付かない可能性があることを言及しなければならない前に、私は遭遇しなかった奇妙な問題を抱えています。
私は次のコードを持っています:
次のエラー メッセージが表示されます。
GetCommandArgs.obj : エラー LNK2019: 関数 _wmain で参照されている未解決の外部シンボル _NtQueryInformationProcess@20
何が問題ですか ?どうもありがとう。
visual-studio - Visual Studio 2010 で StyleCop 4.7 がクラッシュする
朝、
他の誰かが次のことを経験したかどうかはわかりません。
今朝まで、Windows 7/Visual Studio 2010 Ultimate/StyleCop 4.7.11.0 のセットアップは正常に機能していました。
しかし、今朝 PC を起動し、Visual Studio 2010 を起動して、さまざまなプロジェクトで stylecop を有効にしたソリューションをロードしたところ、styelcop が有効なプロジェクトをビルドしようとすると、IDE がクラッシュすることがわかりました。たとえば、.csproj に次のエントリがある thjose
... 間違い
これらの StyleCop エントリを .csproj ファイルから削除するか、StyleCop をアンインストールすると、問題が自動的に「修正」され、ソリューションを構築できるようになります。しかし、.csproj ファイルに stlecop エントリを再インストールし、StyleCop v4.7.11.0 または v4.7.17.0 を再インストールすると、問題が再発しました。
NTDLL.DLL を参照したイベント ビューの唯一のエラー
エラーが発生しているアプリケーション名: devenv.exe、バージョン: 10.0.40219.1、タイム スタンプ: 0x4d5f2a73 エラーが発生しているモジュール名: ntdll.dll、バージョン: 6.1.7601.17725、タイム スタンプ: 0x4ec49b8f 例外コード: 0xc00000fd エラー オフセット: 0x0002e17c エラーが発生しているプロセス ID: 0x17d8 エラーが発生していますアプリケーションの開始時間: 0x01cd0cd0f8cd1730 エラーが発生したアプリケーション パス: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe エラーが発生したモジュール パス: C:\Windows\SysWOW64\ntdll.dll レポート ID: 56b93280-78c4 -11e1-bef3-001cc0c2a2ac
または一度CLR.dll
エラーが発生しているアプリケーション名: devenv.exe、バージョン: 10.0.40219.1、タイム スタンプ: 0x4d5f2a73 エラーが発生しているモジュール名: clr.dll、バージョン: 4.0.30319.239、タイム スタンプ: 0x4e181a6d 例外コード: 0xc00000fd エラー オフセット: 0x00038b13 エラーが発生しているプロセス ID: 0x14c8 エラーが発生していますアプリケーションの開始時間: 0x01cd0cbf6cf79511 エラーが発生しているアプリケーション パス: c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe エラーが発生しているモジュール パス: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr .dll レポート ID: c82f5abd-78b2-11e1-b990-001cc0c2a2ac
c++ - Win32環境、C++でntdll.dllからNt関数を呼び出す
ntdll.dllからNt関数を呼び出したいのですが、上記のように実行しています。
NtTestAlert()を呼び出すには、int2Ehを介してアクセスできる一般的なntcallカーネルルーチンが必要です。(ここからNt関数を取得しましたhttp://undocumented.ntinternals.net/)
コードも未完成です、私は得ています:
*エラーC2664:'_ ntcall':パラメータ1を'int'から'MESS( _stdcall )'に変換できません
windows - Windowsレジストリ、ブート実行用のネイティブプログラムを追加する方法は?
Windows用のネイティブプログラムを実行しました。
(これ、私は#pragma comment(linker, "/SUBSYSTEM:NATIVE"
))でコンパイルしました。
プログラムを自動実行リストに追加したいのですが、どうすればよいですか?
私の正確な質問は次のとおりです。
1)。Windowsレジストリでそれを行うにはどうすればよいですか(BootExecute / SetupExecuteテーブルについてグーグルで検索しましたが、Setupは空で、BootExecuteには* autocheck autochk **しかありません)。だから私は空のテーブルと混同されました(原因、それが空の場合、Windowsの別の自動実行プログラムはどこにありますか?ntdll.dllはロードしますか?)
2)。実行可能プログラムのバージョンは重要ですか:32/64ビットシステムの場合?
%windir%\ system32に配置しましたが、 %windir%\WOW64フォルダーもあります。
レジストリでこの詳細を強調表示するか、Windowsが両方のフォルダーから各ドライバーをロードし、taskmgrで* 32ビットまたは64ビットのプログラムとして強調表示する必要がありますか?
3)。それを行う他の方法はありますか?
command-line - NtQueryInformationProcess が間違ったコマンド ラインを返すようです
Windows 7 で NtQueryInformationProcess ()を使用して、(NtQueryInformationProcess() によって返される PEBのRTL_USER_PROCESS_PARAMETERSを介して) 別のプロセスのコマンド ラインを取得しています。
これは通常は問題なく動作しますが、同じ実行可能ファイルの複数のインスタンスが開始されると、コマンド ライン文字列はすべてのインスタンスで同じになります。つまり、常に最初に開始されたインスタンスのコマンド ラインになります。ただし、GetCommandLine() は、プロセスごとに正しいコマンド ラインを返します。
誰かがこれを確認または改ざんできますか?
c++ - ntdll.dllがPOCOに見つかりませんか?
HTTPSClientSessionを使用してプログラムを実行すると、次の理由でクラッシュします。
次に、スタックをトレースしたところ、スタックntdll.dll
がロードされていないことがわかりましたが、これは疑わしいものでした。
NTDLLがロードされていないように見える理由はありますか?
c++ - プロセスのファイルを開く順序を決定する方法は?
プロセスで開かれているすべてのファイル ハンドルを取得し、ファイルが開かれた時間で並べ替える方法はありますか? まさにこれを必要とするプロジェクトがあります。Traktor や Serato などの Dj ソフトウェアによって開かれるファイルを特定する必要があります。その順序を知る必要がある理由は、どのファイルが最初のデッキにあり、どのファイルが 2 番目のデッキにあるかを判断するためです。
現在、Ntdll.dll (Winternl.h) の Windows 内部 API を使用して、プロセスで開かれているすべてのファイルのリストを特定しています。たぶん、それは最善の方法ではありません。どんな提案でも大歓迎です。
特定の OS バージョンと特定の Dj ソフトウェア バージョンで観察された API の動作に依存しました。これは、プロセス用に開かれたすべてのファイルのリストが再配置されない、つまり順序を守るというものでした。それが悪い習慣であることは承知していますが、リリース直前に顧客から「あるべき」機能だったので、そうしなければなりませんでした。問題は、これらのハンドルが特定の原因なしにランダムに再配置される場合があるというバグがあることです。それがすべてにブレーキをかけます。ファイルが開かれた時間を取得するために、それらの win 構造体にフィールドがあるのではないかと思いましたが、そのようなものはないようです。その API に関するドキュメントは非常に悪いです。
コードの貼り付けも考えたのですが、200行の関数で関数ポインタを使ったdllからの間接呼び出しを使っていたり、WinAPIの構造体をすべて手作業で再定義していたりするので非常に読みにくいです。実際には、Winternl.h ヘッダーも含まれていません。次のように、すべてのものも手動でロードされます。
クロスプラットフォームアプリケーションにとっては本当に頭痛の種です...
PSクロスプラットフォームまたは Qt で開いているファイル ハンドルを取得する方法について、関連する質問をここに投稿しました。