Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

При многопоточном бруте индекс выходит за границы массива.

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 18.09.2013, 20:35   #1
 Разведчик
Аватар для JokeruleZ
 
JokeruleZ на правильном пути
Регистрация: 24.09.2010
Сообщений: 26
Популярность: 20
Сказал(а) спасибо: 18
Поблагодарили 7 раз(а) в 4 сообщениях
Отправить сообщение для JokeruleZ с помощью ICQ Отправить сообщение для JokeruleZ с помощью Skype™
 
По умолчанию При многопоточном бруте индекс выходит за границы массива.

Всем привет! Начал писать свой многопоточный брут, делал все по видео.

[Ссылки могут видеть только зарегистрированные пользователи. ] - первая часть
[Ссылки могут видеть только зарегистрированные пользователи. ] - вторая часть

При выполнении возникает ошибка:

Необработанное исключение типа "System.ArgumentOutOfRangeException" в mscorlib.dll

Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.

(эта строка выделена красным)

Там у меня расхождение с Checking(). Автор на видео чучуть по другому делал, так как он брутил Рамблер и передавал еще и домен. В моем случае только логин и пароль нужно передавать.
Это на первом видео примерно 01:20:00.
Посмотрите пожалуйста, в чем может быть проблема?

(индекс выходит за границы не сразу, при достаточно большом Source фале (около 7000 и 30 потоках) проверяет где то около 600 - 800 и выдает эту ошибку.


using System;
using System.Threading;
using System.Collections.Generic;
using System.IO;
using xNet.Net;
using System.Windows.Forms;

namespace MyBrute
{
public class Checker
{

private Thread[] Threads;

public Object SyncIndex = new Object();
public Object SyncFiles = new Object();


public static string Check(string login, string password)
{
...

}

public void CreateThreads()
{
...
}


public void StopThreads()
{
...
}

public int AliveThreads()
{
...
}



private static int index = -1;

void Checking()
{

while (true)
{
lock (SyncIndex)
{

index++;
}

if (index > Globals.CountSource)
{
break;
}

// MessageBox.Show((string) Globals.Source[index]);

string[] line;
line = Globals.Source[index].ToString().Split(Convert.ToChar(Globals.Delimiter ));

string resp = Checker.Check(line[0], line[1]);


lock (SyncFiles)
{
if (resp == "True")
{
//Good
SaveText("Good.txt", Globals.Source[index].ToString());
Globals.CountGood += 1;
}
else
{
//Bad
SaveText("Bad.txt", Globals.Source[index].ToString());
Globals.CountBad += 1;
}
}



Globals.PPS += 1;

}
}


private void SaveText(string file, string text)
{
...
}


private static string GetProxy()
{
...
}
}
}
________________
Понравилось моё сообщение?? Помог советом?
СТАВЬ СПАСИБО
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

p.s. <3 zhyk.ru
  Ответить с цитированием
Старый 18.09.2013, 20:54   #2
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: При многопоточном бруте индекс выходит за границы массива.

Код:
lock (SyncIndex)
{

index++;
}

if (index > Globals.CountSource) 
{
break;
}

// MessageBox.Show((string) Globals.Source[index]);

string[] line;
line = Globals.Source[index].ToString().Split(Convert.ToChar(Globals.Delimiter ));
Это в гайде так?
Весь код должен быть в lock а не только увеличение индекса, иначе поведение не определено.
  Ответить с цитированием
Старый 18.09.2013, 21:09   #3
 Разведчик
Аватар для JokeruleZ
 
JokeruleZ на правильном пути
Регистрация: 24.09.2010
Сообщений: 26
Популярность: 20
Сказал(а) спасибо: 18
Поблагодарили 7 раз(а) в 4 сообщениях
Отправить сообщение для JokeruleZ с помощью ICQ Отправить сообщение для JokeruleZ с помощью Skype™
 
По умолчанию Re: При многопоточном бруте индекс выходит за границы массива.

[Ссылки могут видеть только зарегистрированные пользователи. ]

Вот скрин с видео. По моему так.

На втором видео это 19:35
________________
Понравилось моё сообщение?? Помог советом?
СТАВЬ СПАСИБО
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

p.s. <3 zhyk.ru
  Ответить с цитированием
Старый 18.09.2013, 21:38   #4
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: При многопоточном бруте индекс выходит за границы массива.

Есть такое словосочетание "Потокобезопасность"
Если ты просто делаешь integer++ - то ни о какой потокобезопастно нету и речи.
Тебе надо контролировать индекс, чтобы потоки получали не одинаковый и валидный индекс.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 18.09.2013, 21:54   #5
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: При многопоточном бруте индекс выходит за границы массива.

Цитата:
Сообщение от JokeruleZПосмотреть сообщение
[Ссылки могут видеть только зарегистрированные пользователи. ]

Вот скрин с видео. По моему так.

На втором видео это 19:35

Мне лень досматривать видео до конца, но если он не исправил это к его концу то автор вообще не компетентен....
  Ответить с цитированием
Старый 18.09.2013, 22:22   #6
 Разведчик
Аватар для JokeruleZ
 
JokeruleZ на правильном пути
Регистрация: 24.09.2010
Сообщений: 26
Популярность: 20
Сказал(а) спасибо: 18
Поблагодарили 7 раз(а) в 4 сообщениях
Отправить сообщение для JokeruleZ с помощью ICQ Отправить сообщение для JokeruleZ с помощью Skype™
 
По умолчанию Re: При многопоточном бруте индекс выходит за границы массива.

Спасибо за ваши ответы!
Я понял только одно - если что-то хочешь сделать хорошо - нужно делать это самому ;-) Начну с однопоточного брута, разберусь нормально с ним (ато у меня сейчас и в однопоточном какой то косяк появился, когда я проверил достаточно большую базу, тоже что-то за границы массива выходит)

Потом отпишу, надеюсь вы мне поможете в написании многопоточного.
________________
Понравилось моё сообщение?? Помог советом?
СТАВЬ СПАСИБО
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

p.s. <3 zhyk.ru
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Ввод вывод массива ~Керя~ Вопросы и ответы, обсуждения 6 20.04.2013 20:13
Чтение массива квестов Spyware Общение разработчиков 2 05.07.2012 21:24
[Файл] Боты для шок ворлд =) Границы Ада ZliLO Боты, скрипты и прочий софт для Lineage 2 2 29.07.2009 12:02

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 00:32.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net