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

01.09.2009, 17:03
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от Flenov
Доброго времени суток!
Я на Delphi пишу одну програмку.
Она проходит авторизацию, получает какие-то куки.
Ну например вот фрагмент ответа сервера:
PHP код:
Set-Cookie: par1=val1; expires=Sun, 22-Aug-2010 22:38:14 GMT; path=/; domain=.domain.ru
Set-Cookie: par2=val2; expires=Sat, 04-Sep-2010 08:38:06 GMT; path=/; domain=.domain.ru
Set-Cookie: par3=val3; expires=Sat, 04-Sep-2010 08:50:26 GMT; path=/; domain=.domain.ru
После чего я хочу использовать эти куки, но видимо что-то не так делаю.
Ниже текст HTTP запроса.
Куда правильно присоединить эти куки?
Если запрос не правильный, подправьте пожалуйста.
Заранее спасибо!
Код:
'GET '+WebAddr+' HTTP/1.0'+#13#10+
'Accept: text/html, */*'+#13#10+
'Host: '+Server+#13#10+
'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)'+#13#10+
'Content-Type: text/html'+#13#10#13#10;
В мемо1:
maska=aallalaalala;session=ashhasha;lala=2481;
(кукисы, можно и запрос туда пихнуть, разницы не имеет для ниже приведенного кода)
Код принятия кукисов:
Код:
function Tform1.CopyCookie(s,sBuff:string):string;
var
text:string;
i:integer;
Begin
text:='';
showmessage(inttostr(pos(s+'=',sBuff)));
showmessage(inttostr(Length(sBuff)));
//Посл символ у нас под номером 45
For i:=pos(s+'=',sBuff) to Length(sBuff) Do
//в i записываем откуда начинается фраза "what="
//(В мемо1 у меня начинается фраза с 20 символа)
//(в дальнейшем будет сокр МПК - МестоПоложениеКуки)
//Дальше идем от МПК до символа ";" (когда сод. куки обрывается)
//Но мы не знаем где будет находится символ ";"
//Поэтому будем проходится от МПК до посл. символа sbuff (в намем случае до посл. символа memo1)
Begin
If sBuff[i]<>';' then text:=text+sBuff[i] else Break;
//Тут мы сверяем текущий символ с символом ";"(окончание куки)
//Если этого ";" символа нету то добавляем символ
//В итоге как символ ";" встретился то у нас в переменной text будет кука (кука+значение куки)
//и мы закончим проходится цикл так как уже кука у нас есть и нам не зачем дальше проходиться
End;
Result:=text;
End;
В Button1.OnClick пишем:
Код:
ShowMessage('Наша кука+значение куки: '+CopyCookie('What',Memo1.Lines.Text));
Коменты можно убрать (расписал для новичков)
План примерно таков:
-Отправляем пакет (без кукисов)
--Принимаем ответный пакет (ответный ответ придет с кукисами если отправляли на авторизацию пакет)
-Отправляем пакет с кукисами, к примеру:
Код:
sendbuff :='GET vkontakte.ru/id1 ' HTTP/1.1'+ #13#10 +
'Host: vkontakte.ru'+ #13#10 +
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 AdCentriaIM/1.7 Firefox/2.0.0.14 WebMoney Advisor'+ #13#10 +
'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'+ #13#10 +
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'+ #13#10 +
'Accept-Encoding: gzip,deflate'+ #13#10 +
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+ #13#10 +
'Keep-Alive: 300'+ #13#10 +
'Connection: keep-alive'+ #13#10 +
'Referer: http://vkontakte.ru/index.php'+ #13#10 +
'Cookie: '+CopyCookie('remixchk',sBuff)+';'+' '+CopyCookie('remixmid',sBuff)+';'+' '+CopyCookie('remixemail',sBuff)+';'+' '+CopyCookie('remixpass',sBuff)+ #13#10+ #13#10;
--Принимаем ответный пакет
Последний раз редактировалось wolmer; 01.09.2009 в 17:09..
|
|
|

01.09.2009, 22:43
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме: 636446
Репутация:
32
|
|
Сообщение от wolmer
CopyCookie('remixpass',sBuff)
Мудрёно ты сделал.
Но всёравно спасибо!
Короче кукиса идут вот так:
PHP код:
GET WebAddr HTTP/1.0
Accept: text/html, */*
Host: WebServer (or Domain)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Cookie: Param1=Value1; Par2=Value2; ParN=ValueN;
Впринципе, кукиса могут ити без пробелов.
Последний раз редактировалось Flenov; 01.09.2009 в 22:46..
|
|
|

02.09.2009, 16:17
|
|
Новичок
Регистрация: 02.09.2009
Сообщений: 1
Провел на форуме: 643
Репутация:
0
|
|
Есть сайт толковый который хранит информацию о биржевых транзакциях - http://www.finam.ru/analysis/export/default.asp На звпрос пользователя он генерирует файл отчет, динамически. Есть потребность автоматизировать процесс т.е. з задаными парамертами скачивать данные для множества акций. Чтобы пограммка написанная на делфе акуратно копировала эти файлы в нужную мне папку. Наставте меня на путь вреный и легкий. Делфу знаю давно вебдизайн тоже, а вот такими вещами еще не занимался.
|
|
|

01.09.2009, 16:51
|
|
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме: 183980
Репутация:
50
|
|
Полностью поддерживаю Nullsleep в его совете о использовании CreateThread но раз уж так хочется можно делать так:
Код:
var
th:cardinal;
h:integer;
begin //
h := beginthread(nil, 1024, @sending1, nil, 0, th);
SuspendThread(h);//приостановить
ResumeThread(h);//продолжить
end;
|
|
|

03.09.2009, 10:39
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Как с помощью Winsock передать картинку на антикапчу?
|
|
|

03.09.2009, 11:41
|
|
Новичок
Регистрация: 19.07.2009
Сообщений: 17
Провел на форуме: 134119
Репутация:
2
|
|
как запрограмировать вычисление функции z = x16 (x в 16 степени), с использованием наименшего количества операций умножения ??? 
|
|
|

03.09.2009, 12:15
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Сообщение от crawen_s
как запрограмировать вычисление функции z = x16 (x в 16 степени), с использованием наименшего количества операций умножения ??? 
Код:
a := 1;
for i := 1 to 20 do a := a * 2;
|
|
|

03.09.2009, 12:22
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Код:
x := x * x; => x^2
x := x * x; => x^4
x := x * x; => x^8
y := x * x; => x^16
или как вариант
такой метод удобен когда показатель степени явзяется степенью числа 2. т.е. 16 - это 2^4
Код:
for z:=1 to sqrt(16) do x := x * x;
y := x;
итого мы получаем только 4 умножения. Учите метод быстрово возведения в степень )
А в твоем случае получилосьбы 16 умножений )
Последний раз редактировалось slesh; 03.09.2009 в 12:26..
|
|
|

03.09.2009, 12:31
|
|
Новичок
Регистрация: 19.07.2009
Сообщений: 17
Провел на форуме: 134119
Репутация:
2
|
|
большое спасибо!!
|
|
|

03.09.2009, 18:44
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
привет всем! как проверить скорость выполнения участка кода в программе?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|