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

29.08.2009, 12:18
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
там все даже проще оказалось, вот как сделал:
Но твой код не сохраняет атрибутов, которые были у окна раньше.
но ToolWindow не нашел всеравно)
Плохо смотришь 
WS_EX_TOOLWINDOW
Но для него нужно сменить GWL_STYLE на GWL_EXSTYLE. Примерно так:
Код:
var
wnd: HWND;
old_long: Integer;
begin
wnd := FindWindow('Notepad', nil);
old_long := GetWindowLong(wnd, GWL_EXSTYLE);
SetWindowLong(wnd, GWL_EXSTYLE, old_long or WS_EX_TOOLWINDOW);
end;
Последний раз редактировалось Nullsleep; 29.08.2009 в 12:25..
|
|
|

29.08.2009, 21:26
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме: 636446
Репутация:
32
|
|
Всем привет.
Такой вопросик довольно простой, но для меня довольно значимый.
Внимание вопрос:
Существует главный юнит (юнит главной формы), в нём существует определйнная функция.
Существует Юнит потока (TThread) из которого вызывается та функция.
Где она будит выполняться?
а) В главном юните.
б) В юните потока.
Последний раз редактировалось Flenov; 29.08.2009 в 21:28..
|
|
|

30.08.2009, 07:24
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
Flenov, на сколько я понял (сделав бесконечный цикл) функция выполняется в потоке, потому что интерфейс формы не зависает, но проц грузит хорошо)
|
|
|

30.08.2009, 13:06
|
|
Постоянный
Регистрация: 20.06.2008
Сообщений: 323
Провел на форуме: 1240829
Репутация:
165
|
|
sleep(1) надо в поток добавлять
|
|
|

30.08.2009, 13:13
|
|
Познающий
Регистрация: 04.11.2007
Сообщений: 51
Провел на форуме: 310791
Репутация:
6
|
|
ВОПРОС: как останавливать возобновлять поток созданный через:
PHP код:
var
th:cardinal;
h:integer;
begin //
h := beginthread(nil, 1024, @sending1, nil, 0, th);
end;
Последний раз редактировалось InfectedM; 30.08.2009 в 15:17..
|
|
|

30.08.2009, 15:27
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
Сообщение от cremator (c)
sleep(1) надо в поток добавлять
Я как раз наоборот пытался увидеть зависание на форме, так что Sleep() тут не нужен.
|
|
|

30.08.2009, 15:55
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
InfectedM: beginthread все равно сводится к винапишной функции CreateThread, так что лучше использовать её. Тем более вместе с ней можно юзать SuspendThread и ResumeThread (приостановить и продолжить выполнение потока).
Последний раз редактировалось Nullsleep; 30.08.2009 в 16:00..
|
|
|

30.08.2009, 23:00
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме: 636446
Репутация:
32
|
|
Доброго времени суток!
Я на 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;
Последний раз редактировалось Flenov; 30.08.2009 в 23:17..
|
|
|

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;
|
|
|

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..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|