День добрый. Помогите, кто чем может, пожалуйста. Есть такая проблема:
Написал брут (как мог, но зато сам) для веб-формы. Отправляю POST-запрос на сервак, оттуда мне приходит ответ: хэдер, где находится нужная мне инфа (если в хэдере есть спец-знак, то значит пароль не подходит) + тело документа.
Как мне сделать так, чтобы после получения хэдера вся страница дальше не качалась? Насколько я понял, именно из-за этого и возникают проблемы со скоростью, поскольку у меня (я мерял) 14-16 вариантов в минуту, а, например, в wwwhack для той же формы и при той же скорости соединения 90-100 вариантов в минуту.
// Ответ от сервера приходит вот так:
Код:
procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin
FResult:=FResult+Socket.ReceiveText;
end;
Вот как мне из Socket.ReceiveText скачать только первые 500-600 символов? Этого должно хватить, чтобы отловить символ. Ну, или как сделать поиск нужного символа прямо "на лету" во время качалки?
Если нужна какие-то дополнительные данные по исходнику - я дам.
procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin
FResult:=FResult+Socket.ReceiveText;
if pos('искомые_данные', FResult)>0 then ClientSocket.Close;
end;
1. Вот как мне из Socket.ReceiveText скачать только первые 500-600 символов?
2. Ну, или как сделать поиск нужного символа прямо "на лету" во время качалки?
1.
Код:
var i:Word;
I:=i+Length(Socket.ReceiveText);
if i=>500 then ClentSocket1.Close;
итог: заводишь новую переменную (почeму Word а не SmallInt/Integer? длинна не может быть отрицательной!!!)
2.
Код:
var str:string;
str:=Socket.ReceiveText;
if pos('authorization ok',LowerCase(str))>0 then ClientSocket1.Close;
итог: в str помещаем данные полученные от сокета, функцией pos ищем данные, при том если функция возвращает >0 значит дынне есть. притом все данные переводятся в нижний регистр...
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
********************************* Программы на заказ
Times to fly...
Последний раз редактировалось Dr.Check; 04.02.2007 в 14:31..