ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

15.04.2010, 22:34
|
|
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме: 152084
Репутация:
8
|
|
а пробовал с ц ограниченным циклом? :\ а то я даже и не знаю,по моему закрытие идёт а по всей видимости на практике не происходит.
|
|
|

16.04.2010, 06:10
|
|
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме: 1249808
Репутация:
149
|
|
Nightmarе, Pr0mo правильно говорит, добавь еще sleep и application.ProcessMessages.
|
|
|

16.04.2010, 14:57
|
|
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме: 3728999
Репутация:
444
|
|
в общем такая проблема:
делаю проверку на заполнение полей, и если в поле нет цифр, то выдаётся сообщение что поле не заполнено, если все поля заполнены то выдаётся соответствующее сообщение что "заполнено", но проблема в то что если все поля пусты и мы нажимаем на кнопку то вылетает ошибка. как избавиться от этого, ну или какие есть ещё варианты на проверку заполнения полей?
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not (Edit2.Text[1] in ['0'..'9']) then
begin
ShowMessage('Не заполнено поле 2');
Edit2.SetFocus;
if not (Edit1.Text[1] in ['0'..'9']) then
begin
ShowMessage('Не заполнено поле 1');
Edit1.SetFocus;
if not (Edit3.Text[1] in ['0'..'9']) then
begin
ShowMessage('Не заполнено поле 3');
Edit3.SetFocus;
end;
end;
end
else
begin
ShowMessage('заполнено');
end
end;
|
|
|

16.04.2010, 15:38
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Ошибка из-за того что ты обращаешься к несуществующему символу:
Edit2.Text[1]
Прежде чем обращаться к эдиту сделай проверку наподобие
if Edit2.Text = '' then
begin
ShowMessage('Идите в жопу, поля снача заполнять надо!');
exit;
end;
и так перед обращением к каждому эдиту
Можно еще проверять по Length(Edit2.Text) = 0
Ах да, если тебе нужно чтобы в полях было количество символов не больше чем N то выстави свойства у эдитов MaxLength равным N
Последний раз редактировалось GhostOnline; 16.04.2010 в 15:45..
|
|
|

16.04.2010, 17:15
|
|
Banned
Регистрация: 30.11.2009
Сообщений: 1
Провел на форуме: 12739
Репутация:
-5
|
|
IDC СМС Спамер...
Всем привет! У меня такой вопрос...
Есть оператор мобильной связи IDC. Так же у них на серваке есть сайт для отправления СМС-Сообщений на телефоны подключенные к их компании... Вот ссылка: http://sms.idknet.com... Отсюда я и собираюсь отправлять СМС спам...
Немного подумав как это проще сделать я нашел самый оптимальный вариант, и перешел к действиям...
1) Снифером HTTP Analyzer 5.0 отсканировал post запрос, который отправляется на файлик отбработчика: http://sms.idknet.com/sms.php
Оказалось, что при отправке в обработчик поступают следующие параметры:
prefix - Код оператора
txtAddr - Номер телефона
sum - Оставшееся колличество символов
txtSM - Текст СМС Сообщения
code - Код Капчи
Submit2.x - Абсцысса кнопки "Отправить" (Оставить по умолчанию 35)
Submit2.y - Ордината кнопки "Отправить" (Оставить по умолчанию 15)
Submit2 - Надпись на кнопке (Оставить по умолчанию Отправить)
Если все это дело отправлять Get запросом, то выходит что то вроде такова: http://sms.idknet.com/sms.php?prefix=777&txtAddr=12345&sum=160&txtSM=%C2 %E2%E5%E4%E8%F2%E5+%F1%EE%EE%E1%F9%E5%ED%E8%E5.+%C 4%EB%E8%ED%E0+%F1%EE%EE%E1%F9%E5%ED%E8%FF+%ED%E5+% E4%EE%EB%E6%ED%E0+%EF%F0%E5%E2%FB%F8%E0%F2%FC+160+ %F1%E8%EC%E2%EE%EB%EE%E2.&code=&Submit2.x=35&Submi t2.y=15&Submit2=%CE%F2%EF%F0%E0%E2%E8%F2%FC
Но после нескольких эксперементов, убедился, что Get запросом тут не обойтись, пишет, что незаполнены поля...
Я стал юзать Post...
КОД:
procedure TForm1.Button2Click(Sender: TObject);
var data: tstringlist;
ssylka,STR: string;
begin
idhttp1.HandleRedirects:=true;
STR:=idhttp1.Get('http://sms.idknet.com');
ssylka:='http://sms.idknet.com/sms.php';
data:=tstringlist.Create;
data.Add('code='+edit3.text);
data.Add('prefix='+st);
data.Add('Submit2=Отправить');
data.Add('Submit2.x=27');
data.Add('Submit2.y=6');
data.Add('sum=160');
data.Add('txtAddr='+edit1.text);
data.Add('txtSM='+edit2.text);
str:=idhttp1.Post(ssylka, data);
showmessage(idhttp1.URL.URI);
if pos('class="bad"', STR) <> 0 then
label5.Caption:='Сообщение неотправленно!'
else
label5.Caption:='Сообщение отправленно!';
end;
И функция парса:
function tform1.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);
if b > 0 then
result:=copy(ForS,1,b-1);
end;
Все вродебы не плохо, но осталась одна нерешенная проблема!...(( Что делать с капчей...
Подумав, я не стал заморачиваться, и решил просто сделать так, чтобы капча выводилась в программу, и я сам ее каждый раз вводил...
Код примерно такой:
procedure TForm1.Label3Click(Sender: TObject);
var _Captcha : TJPEGImage;
F_body : TMemoryStream;
id, a:string;
MyIdHTTP : TIdHTTP;
begin
MyIdHTTP:=TIdHTTP.Create(Self);
F_body := TMemoryStream.Create;
_Captcha:=TJPEGImage.Create;
try
MyIdHTTP.Get('http://sms.idknet.com/code.php', F_body);
F_body.Seek(0, soFromBeginning);
_Captcha.LoadFromStream(F_body);
Image1.Picture.Assign(_Captcha);
Image1.Width:=_Captcha.Width;
Image1.Height:=_Captcha.Height;
finally
F_body.Free;
_Captcha.Free;
end;
end;
Сама капча находится на главной страничке http://sms.idknet.com, но вытаскивается туда она со странички http://sms.idknet.com/code.php
Все вроде бы замечательно, капчу программа в себя вытаскивает нормально, но когда я ее ввожу (и ввожу правильно) всеравно отправка не идет, и пишет что капча введена неверно!
Сначала не мог понять в чем прикол, потом догнал... Капча та каждый раз при обновление меняется...
Я получается вытаскиваю капчу одну, ввожу ее, а отом при Post запросе вытаскивается страница целиком вместе с капчей, следовательно и капча меняется...
Что мне делать в таком случае? Подскажите пожалуйста!!!
|
|
|

16.04.2010, 18:32
|
|
Участник форума
Регистрация: 23.07.2009
Сообщений: 261
Провел на форуме: 4435957
Репутация:
539
|
|
slesher
idhttp + idcookiemanager + jpeg
у мну работает, можешь предпоследнию строчку расскоментировать, что бы смотреть резултат...
PHP код:
procedure TForm1.Button1Click(Sender: TObject);
var
post: tstringlist;
captchatext, result: string;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
post:=tstringlist.Create;
http.Get('http://sms.idknet.com/code.php', ms);
ms.SaveToFile('captcha_temp.jpeg');
ms.Clear;
captcha.Picture.LoadFromFile('captcha_temp.jpeg');
InputQuery('Captcha','Enter captcha',captchatext);
post.Add('prefix=777');
post.Add('txtAddr=13212');
post.Add('txtSM=test');
post.Add('sum=155');
post.Add('code='+captchatext);
result:=http.Post('http://sms.idknet.com/sms.php',post);
if AnsiPos('ОТПРАВЛЕНО', result) > 0 then
showmessage('Отправлено') else showmessage('ХУЙ!');
//showmessage(result);
//cookie.CookieCollection.Clear;
ms.Free;
end;
Последний раз редактировалось HakaR; 16.04.2010 в 18:37..
|
|
|

16.04.2010, 23:29
|
|
Banned
Регистрация: 14.06.2009
Сообщений: 256
Провел на форуме: 260151
Репутация:
105
|
|
798180
|
|
|

17.04.2010, 01:15
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
А зачем тебе
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
ты же ничего не recv'ишь
|
|
|

17.04.2010, 02:10
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от ntldr
А зачем тебе
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
ты же ничего не recv'ишь
убрав его, тоже ничего не меняется. + модифицировал код, понапихав всевозможных проверок, но толку тоже нету.
|
|
|

17.04.2010, 11:09
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от Nightmarе
убрав его, тоже ничего не меняется. + модифицировал код, понапихав всевозможных проверок, но толку тоже нету.
Если проблема что виснет комп, попробуй запустить ее отдельным потоком, а в основном добавь цикл из Application.ProcessMesssages (не помню как пишется, ну ты понял)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|