Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

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, 15:46
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от Pr0mo
Ты при отсылки данных указываешь Connection:Close, то есть после закрытия очередного - каждый раз создается новое соединение. Можно открыть сокет, отправив Connection:Keep Alive, а дальше отсылать Get запрос только.
Увы, не помогает, и менял его, и вообще убирал сократив до:
send_buf:='GET '+p+' HTTP/1.0'#13#10'Host: '+h+#13#10#13#10#13#10;
Этот тоже не канает... крайне странно, но код глючный 100%, ибо тестировал на всех трёх системах, XP, Vista, Win7, везде одно и тоже, а на XP компьютер вообще падает.
|
|
|

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, 21:14
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
Сообщение от Nightmarе
Увы, не помогает, и менял его, и вообще убирал сократив до:
send_buf:='GET '+p+' HTTP/1.0'#13#10'Host: '+h+#13#10#13#10#13#10;
Этот тоже не канает... крайне странно, но код глючный 100%, ибо тестировал на всех трёх системах, XP, Vista, Win7, везде одно и тоже, а на XP компьютер вообще падает.
нифига код не глючный! попробуй не себя ддосить, тогда все ок будет 
для того чтобы убить апач(под виндой) достаточно нескольких секунд флуда этой функцией из-под 20 потоков, при том что флуд идет не на поиск а на на индекс
|
|
|

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

17.04.2010, 00:48
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от [stranger]
нифига код не глючный! попробуй не себя ддосить, тогда все ок будет 
для того чтобы убить апач(под виндой) достаточно нескольких секунд флуда этой функцией из-под 20 потоков, при том что флуд идет не на поиск а на на индекс
В этом случае всё практически тоже самое, за исключением маленькой детали, а именно, соединений открывается примерно 100 штук, но выше уже не поднимается, то есть добегает до 100, и на этой планке стабильно висит.
Проверяю через Outpost, ну а на сколько это систему грузит, я к сожалению в Win7 на глаз определить не могу, но помоему всё равно не катит.
|
|
|

17.04.2010, 00:57
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от Nightmarе
В этом случае всё практически тоже самое, за исключением маленькой детали, а именно, соединений открывается примерно 100 штук, но выше уже не поднимается, то есть добегает до 100, и на этой планке стабильно висит.
Проверяю через Outpost, ну а на сколько это систему грузит, я к сожалению в Win7 на глаз определить не могу, но помоему всё равно не катит.
1)потоки не тру?
2)Это бы я вынес перед циклом.
PHP код:
hHost := gethostbyname(PChar(kuda));
hAddr.sin_family := PF_INET;
hAddr.sin_port := htons(80);
hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
hTimeout.tv_usec := 0;
hTimeout.tv_sec := mstimeout;
я делфи не очень понимаю, но так вроде верно.
|
|
|

17.04.2010, 01:03
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от ntldr
1)потоки не тру?
2)Это бы я вынес перед циклом.
PHP код:
hHost := gethostbyname(PChar(kuda));
hAddr.sin_family := PF_INET;
hAddr.sin_port := htons(80);
hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
hTimeout.tv_usec := 0;
hTimeout.tv_sec := mstimeout;
я делфи не очень понимаю, но так вроде верно.
ну мне бы сначало с одним потоком разобраться, а уже потом многопоточность, а так по логике 10 потоков в 10 раз больше нагрузку сделают, и вместо 100 соединений будут 1000.
По поводу перед циклом, это без разницы.
|
|
|

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