5

Windows 7 用の MSV1_0 のカスタム認証サブパッケージを作成しています。Windows SDK の msvsubauth サンプルを使用しましたが、直面しているいくつかの問題に関して 2 つの質問があります。

  1. ルーチンが呼び出され、レジストリの Auth0 プロパティがパッケージに設定され、ファイルを作成する Msv1_0SubAuthenticationRoutine の最後に簡単なコードが追加されていることを確認しようとしている場合:

    //
    // Cleanup up before returning.
    //
    
    
    Cleanup:
    hTestFile = CreateFile(
                  TEXT("C:\\lsa\\lsa.txt"), 
                  GENERIC_READ|GENERIC_WRITE, 0, 
                  NULL, CREATE_ALWAYS, 
                  FILE_ATTRIBUTE_NORMAL, NULL);
    
    
    if(hTestFile != INVALID_HANDLE_VALUE) {
          CloseHandle(hTestFile);
    }
    
    
    return Status;
    
    
    }  // Msv1_0SubAuthenticationRoutine
    

    パスワードを入力すると、Windowsから「パラメーターが正しくありません」というエラーメッセージが表示されるため、パッケージが呼び出されるようです。これは良い兆候です。しかし、なぜそのエラーが発生するのですか? 別の .exe ファイルからまったく同じコードを実行すると、完全に実行され、テスト テキスト ファイルが作成されます。権限を確認し、「全員」に「フル コントロール」を設定しました。何か案は?SDK は、LSA が認証パッケージ内のコードに対して作成している分離の種類について正確に言及していません。

  2. 2 番目の問題は、AP のテストです。現在、すべての変更でライブラリを再構築し、それをテスト VM にコピーしてから、System32 フォルダーにコピーして再起動します。それを行う簡単な方法はありますか?

少し早いですがお礼を!

4

2 に答える 2

3

WinlogonおよびLSASSでのデバッグは、最も時間のかかるデバッグになります。

デバッグを容易にするために、同じ関数をエクスポートするプロキシAPを作成できます。ロードされると、proxy_apは

  1. 実際のAPを既知の場所から一時的な場所にコピーします。
  2. そのDLLをLoadLibraryし、すべてのGetProcAddressを実行し、受信したすべての呼び出しをその新しくロードされたDLLに転送します。
  3. 元のAPがコピーされたディレクトリの変更に注意してください
  4. 変更が発生したとき(およびAPが変更された場合)FreeLibraryを実行し、手順2に進みます。

ただし、多くのスレッドからの要求を処理しながらdllスイッチを処理すると、解決しようとしていることよりも悪夢になる可能性があるため、開発ターゲットで何が起こるかをしっかりと把握する必要があります。

LogonUI.exeは毎回新しいインスタンスを開始しますが、LSASS.exeは存続します。

+ CVSNTソースコード(http://cvsnt.sourcearchive.com/)をご覧ください。彼らはsuを実装するかなり素晴らしいAPを持っています。psexec -s(Microsoft / SysInternals pstools suiteから)を使用してローカルシステムアカウントでサンプルを実行します

于 2011-05-31T19:41:21.357 に答える
1

おそらくあなたの問題は、誰もが認証されたユーザーのみを含むことですか? これは単なる推測です。

Process Monitor を使用して、Access Denied メッセージまたはパスを監視することをお勧めします。あらゆる種類のアクセス許可/パスの問題をデバッグするのに最適です。

「ワークステーションのロック解除」または「パスワードの変更」画面で問題が発生し、ログインが妨げられない場合は、これを実行するのは簡単です。実行して問題を再現し、再度ログインしてください。

そうしないと、特定のユーザー アカウントに対してのみそのコード パスを実行する、N 回目の試行などのトリックに頼らなければならない場合があります。

于 2011-04-02T06:43:08.247 に答える