問題タブ [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.

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

java - Java がランダムにクラッシュする (原因の可能性: ntdll.dll?)

私は、Java で作成したプログラムを持っており、Windows タスク スケジューラで 5 分ごとに実行するように設定しています。「C:\Program Files\Java\jre7\bin\javaw.exe」を実行し、jar ファイルとすべてのコマンドライン パラメータを渡します。

ほとんどの場合、これは問題なく動作しますが、ときどき自分のコンピューターに戻ると、「Java(TM) Platform SE バイナリーが動作を停止しました」というポップアップが表示されます。そのため、最初は自分のコードに関係があると思い、テキスト ファイルに追加された多くのデバッグ ステートメントを追加しました。クラッシュしたときにテキスト ファイルを確認したところ、不完全な実行が一覧表示されていませんでした。次に、メイン メソッドに print ステートメントを追加しました。

その後、クラッシュするまで Java プログラムをコマンドラインから実行し続けたところ、興味深いことに気付きました。クラッシュ時に、「呼び出されたメイン メソッド」が出力されませんでした。クラッシュしたのは私の Java プログラムではなく、Java そのものであることがわかりました。

次に、詳細な印刷ステートメントをコマンドラインに追加しました。

そこから、プログラムが再び失敗するまでプロセスを続けました。失敗した場合、出力は成功した実行 (667 行) よりもはるかに小さくなります (346 行)。出力が突然停止する 346 行目までは、両方の実行のすべてがまったく同じです。したがって、346 行目または 347 行目で何が起こってもクラッシュすることがわかります。340 ~ 346 行を次に示します。

実行が成功すると、出力が続きます。347 行目から 355 行目は次のとおりです。

最後に、クラッシュすると、Windows は次の情報を含むポップアップ (前述) を表示します。

問題の署名を読み、「ntdll.dll」が原因としてリストされていることを確認した後、それに関連する問題を検索しましたが、解決策は見つかりませんでした。

これを修正するために私にできることはありますか?

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

c# - Windows 8.1 でアプリケーションがクラッシュする

[.net 3.5] の Windows アプリケーションの 1 つがWindows 8.1にインストールされ、画像をアップロードします。

アプリケーションを開き、dll を使用してローカル ディスクにある画像を参照し、それらを選択してアップロードします。

画像の選択を参照した後、システムに「新しいフォルダー」を作成すると、アプリケーションがクラッシュします。次のような例外が発生します。

問題により、プログラムが正しく動作しなくなりました。ウィンドウはプログラムを閉じて通知します...

イベント ログをクロス チェックしたところ、同じログに追加されたそれぞれのログを以下に示します。

この理由は何ですか?

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

c++ - ntdll.dll の不要なブレークポイント!_LdrpSnapThunk@36() + 0xf5 バイト

次の環境で Outlook アドイン DLL をデバッグしています: Windows 7 x64 Office 2013 クイック実行 x86 Visual Studio 2010 ネイティブのみ (C++)

「ローダー スナップの表示」は、システム レベルと x86 および x64 レジストリの両方の outlook.exe で無効になっています。

システムの唯一の「GlobalFlag」値は 0x00000400 (FLG_POOL_ENABLE_TAGGING のみ) に設定され、CurrentControlSet にあります。

VS デバッガーを OUTLOOK.EXE にアタッチすると (DLL は既に読み込まれています)、期待どおりにデバッグできます (シンボルの読み込みなど)。

LdrpSnapThunk でブレークポイントを取得するのはなぜですか? そのようなブレークポイントを設定/有効にするオプションが見つかりませんでした(ローダースナップはデバッグ文字列のみを出力する必要があり、ブレークポイントは発生しません)。

本当に面倒です - デバッグ中にこのブレークポイントがランダムに停止してしまいます。

ありがとう!

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

c - カーネル オブジェクト ウィンドウのリストを取得する

  • こんにちは!

1 週間以上かかると思いますが、カーネル オブジェクトのリストを取得する方法の全体像を把握することはできません。私のアルゴリズムは次のとおりです。

  • 1) NTDLL.dll(LoadLibrary)の接続
  • 2) GetProcAddress (variable_Library_name, "NtQueryDirectoryObject") および事前アナウンス構造: _OBJDIR_INFORMATION, _OBJECT_ATTRIBUTES
  • 3) オブジェクトのリストに関数 NtOpenDirectoryObject を適用しようとしています

以下は、関数 NtOpenDirectoryObject の使用を担当するコードの一部です。

完全なコード (構造体の定義を含む) は、http: //pastebin.com/pDNb3GTnにあります。

パラメータ NtOpenDirectoryObject を使用して関数を呼び出すと、例外 c0000005 が発生します。これは、アクセスがブロックされていることを意味します。

教えてください、私は間違ったことをしていますか、そして私の間違いはどこにありますか。ネイティブ API を使用しないことは可能ですか? ご協力ありがとうございました

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

c++ - finContours 関数の使用時と ntdll ファイルのダウンロード時のエラー

私は、輪郭を使用して人体を検出する必要があるFYPを完了するためにVS2012とopenCVを使用する初心者です。私は両方(VS2012とopenCV)を正常にインストールし、現在拘束されているfindContours関数を使用するまで、論理的または構文的以外の未知の問題なしに基本的な画像処理を行っていました。私の問題は次のとおりです。

輪郭関連のもの、つまり findContours 、 drawContours をコメントで使用しない場合、すべて問題なく、トラックバーを使用して画像を拡張/侵食できますが、輪郭関連のものを使用して「F5」を押すとすぐに、画像検出されたオブジェクトの周りに等高線を表示すると、Program.exe がブレーク ポイントをトリガーしたため、これ以上使用できないことを示すブレークポイントが表示されます。

参考までに、スタック トレースのリストを以下に示します。

の指示に従いました が、強調表示されていない "ntdll.dll & msvcr" を Microsoft シンボル サーバー経由で読み込んだ後、再起動 (Cntrl+Shift+F5) またはデバッグ (F5) すると再び強調表示されます。強調表示されていないものは、欠落していることを示します。

注 2: 便宜上、リストを簡潔にしています。

以下は、画像の輪郭検出に使用しているコードです。

}

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

winapi - USB読み取りのデバッグ

サードパーティの 64 ビット DLL を使用してカスタム USB デバイスにアクセスするコードをデバッグしています。私の環境は、Windows 8.1 x64 上の Microsoft Visual Studio 2012 です。

不完全で信頼できないドキュメントによると、DLL は USBDEVFS_CONTROL ioctl を発行して、接続された USB デバイスから 1 バイトを読み取ることになっています。定義には以下が含まれます

ここbmRequestTypeで、bRequestwValue、およびはwIndex、デバイスの製造元によって提供される定数であり、特定のコマンドを含むバッファーです。ByteArrayuint8_t[64]

DLL は、アプリケーション固有のパラメーターを受け取り、それらを にパックして、-> ->ByteArrayを呼び出します。ユーザーモードで見ることができる最後の分解は、ksproxy.axKernelbase.dllntdll.dll

ByteArrayドキュメントによると、ステップバイステップ デバッガーを使用すると、 が想定どおりに正確に構築されていることが簡単にわかります。usbdevfs_ctrltransferしかし、構造、またはそれに相当する Windowsが見つかりません。

具体的にはwIndex、ドキュメントで指定されている の値が古いバージョンのハードウェアに適用され、Windows DLL が実際に0x0400の代わりに を使用していると思われます0x0402

この無署名のショートを検証するためのヒント (ハードウェアまたはソフトウェアの USB スニファー、エミュレーターなどを含む) をいただければ幸いです。

アップデート

https://reverseengineering.stackexchange.com/questions/2416/how-to-reverse-engineer-simple-usb-device-windows-linuxhttps://reverseengineering.stackexchange.com/questions/1786/usb-dongleを読む-トラフィック監視。これらのツールは Windows 8.1 x64 と互換性がないようです。

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

windows - Win7 64bit で 'ntQuerySystemInformation' によって 65535 を超えるプロセス ID を取得できないのはなぜですか?

「ntQuerySystemInformation」を使用して、次のようなすべてのハンドル情報を取得しました。

pHandleInfor の構造体は次のとおりです。

xp 32 ビットでは問題なく動作しますが、Win7 64 ビットでは 65535 未満の適切な pid しか取得できません。この構造体の processId のタイプは ULONG です。65535 を超える値を取得できると思います。何が問題なのですか? 代わりに他の API はありますか?

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

c# - vshost.exe ウィンドウを閉じると BEX64 がクラッシュする

私は、最新の更新プログラムを適用した Visual Studio 2012 と、最新の更新プログラムを適用した Win7 上の最新の ReSharper を実行しています。Entity Framework 6.1 を使用する .NET 4.5 x64 C# Topshelf 3.1.122 ラップ プロジェクトがあります。デバッガーが接続されているかどうかに関係なく、ウィンドウを閉じて実行中のプログラムを終了すると、vshost.exe が動作を停止し、強制終了する必要があります。これには目に見える効果はないようです。それはただ迷惑です。この動作は私のマシンでのみ発生し、他の開発者では発生しません。赤色の停止ボタンでデバッグ セッションを停止すると、クラッシュは発生しません。何が原因でしょうか?

問題の署名: 問題イベント名: BEX64 アプリケーション名: REDACTED.vshost.exe アプリケーション バージョン: 11.0.50727.1
アプリケーション タイムスタンプ: 5011d445 障害モジュール名: ntdll.dll 障害モジュール バージョン: 6.1.7601.18247 障害モジュール タイムスタンプ: 521eaf24
例外オフセット: 0000000000072c4a 例外コード:C000000D
例外データ:00000000000000OSバージョン:6.1.7601.2.1.0.256.1
ロケールID:1033追加情報

これは参照用の Topshelf ラッパー コードです。

Main の末尾または svc.Stop メソッドの先頭にブレーク ポイントを配置すると、ウィンドウを閉じてもデバッガはブレークせず、vshost.exe はすぐにクラッシュします。とにかく、これをどのように進めることができるかを見ることができません。

更新: WinDbg を使用して vshost プロセスにアタッチし、最終的に実際の例外を取得しました: