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

21.10.2009, 19:55
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
Сообщение от НTL
Как секунды переделать в чч..чч(чч):мм:сс
Проще говоря из 120 сделать 00:02:00
x:=120;
sec:=x mod 60;
x:=x div 60;
min:=x mod 60;
hou:=x div 60;
|
|
|

21.10.2009, 22:58
|
|
Новичок
Регистрация: 25.05.2009
Сообщений: 15
Провел на форуме: 269065
Репутация:
6
|
|
bmp152, и вы туда же... Ну да ладно.
Да я так, для общего развития)
Большое спасибо, проблема решилась, оказывается все просто, вот только еще такой нюанс - мож кому пригодится:
При постинге "а б в г д е ж з и й к л м н о п p с т у ф х ц ч ш щ ъ ы ь э ю я"
Через браузер - получаем
Код:
Р° Р± РІ Рі Рґ Рµ Р¶ Р· Рё Р№ Рє Р» Рј РЅ Рѕ Рї СЂ СЃ С‚ Сѓ С„ С… С† С‡ С? С‰ СЉ С‹ СЊ СЌ СЋ СЏ
через idhttp -
Код:
Р° Р± РІ Рі Рґ Рµ Р¶ Р· Рё Р№ Рє Р» Рј РЅ Рѕ Рї С? СЃ С‚ Сѓ С„ С… С† С‡ С? С‰ СЉ С‹ СЊ СЌ СЋ СЏ
То есть буква "р" поидее должна заменяться на "СЂ", а она почемуто меняется на "С?", из-за этого весь текст не постится. Если русскую "р" заменить на аналог-латинскую, то все отлично работает.
|
|
|

22.10.2009, 13:43
|
|
Постоянный
Регистрация: 21.03.2008
Сообщений: 400
Провел на форуме: 1606680
Репутация:
367
|
|
Всем привет. Пытаюсь авторизоваться вконтакте, не получаеться. Подскажите что делаю не верно:
Код:
procedure getcookie(st:string);
var i,j:integer;
ncookie:string;
begin
ncookie:='';
for i:=1 to length(st) do
if copy(st,i,10) = 'Set-Cookie' then
begin
for j := i+11 to length(st) do
if st[j] = ';' then
begin
ncookie := ncookie + copy(st,i+11,j-i-10);
break;
end;
end;
if length(ncookie) > 50 then
begin
ncookie := 'Connection: Keep-Alive'+#13+'Cache- Control: no-cache'+#13+'Cookie: remixchk=5'+'Cookie: '+ncookie;
http.Request.CustomHeaders.Clear;
http.Request.CustomHeaders.Add(ncookie);
end;
end;
procedure login(mail,pass:string);
var reqs:tstringlist;resp,s:widestring;
begin
http:=TIdHTTP.Create(nil);
coom:=TIdCookieManager.Create(http);
http.AllowCookies:=true;
http.CookieManager:=coom;
http.HandleRedirects:=true;
http.ProtocolVersion:=pv1_1;
reqs:=tstringlist.Create;
reqs.Add('email='+mail);
reqs.Add('pass='+pass);
reqs.Add('vk=');
resp:=http.Post('http://login.vk.com/?act=login',reqs);
Form1.Memo2.Text:=resp;
delete(resp,1,pos('''s'' value=',resp)-1+length('''s'' value='''));
s:=copy(resp,1,pos('''',resp)-1);
Form1.Memo3.Text:=s;
reqs.Clear;
reqs.Add('op=slogin');
reqs.Add('redirect=1');
reqs.Add('expire=0');
reqs.Add('to=');
reqs.Add('s='+s);
resp:=http.Post('http://vkontakte.ru/login.php',reqs);
reqs:=http.Response.RawHeaders;
getcookie(reqs.Text);
end;
|
|
|

22.10.2009, 15:00
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
bmp152, проблема с русской "р" в TidURI исправлена в 10.5.7 версии 
|
|
|

22.10.2009, 15:18
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Сама функция (определение и распознавание капчи, детект валида / невалида, детект невалид. прокси). В параметрах передаем аккаунт вида mail  ass, и tidhttp компонент. "antikey" - ваш ас-ключ.
Код:
function login_vk (account : string; http : tidhttp) : string;
var
s, imageurl, captcha : widestring;
post : tstringlist;
fs : Tmemorystream;
begin
post := tstringlist.Create;
post.Add ('op=a_login_attempt');
s := httpget (http, 'http://vkontakte.ru/');
s := httppost (http, 'http://vkontakte.ru/login.php', post);
post.Clear;
if (countpos ('vklogin', s) = 0) and (countpos ('captcha_sid', s) = 0) then
begin
Result := 'falseproxy'; post.Free; exit;
end;
if countpos ('captcha_sid', s) <> 0 then
begin
fs := TmemoryStream.Create;
imageurl := Extract (Extract (s, '"[\d]*"'), '[\d]*[\w]');
post.Add ('op=a_login_attempt');
post.Add ('captcha_sid=' + imageurl);
try http.Get ('http://vkontakte.ru/captcha.php?s=1&sid=' + imageurl, fs); except end;
captcha := recognize ('jpg', antikey, fs);
while captcha = 'ERROR_NO_SLOT_AVAILABLE' do captcha := recognize ('jpg', antikey, fs);
post.Add ('captcha_key=' + captcha);
s := httppost (http, 'http://vkontakte.ru/login.php', post);
fs.Free; post.Clear;
end;
if countpos ('captcha_sid', s) <> 0 then
begin
fs := TmemoryStream.Create;
imageurl := Extract (Extract (s, '"[\d]*"'), '[\d]*[\w]');
post.Add ('op=a_login_attempt');
post.Add ('captcha_sid=' + imageurl);
try http.Get ('http://vkontakte.ru/captcha.php?s=1&sid=' + imageurl, fs); except end;
captcha := recognize ('jpg', antikey, fs);
while captcha = 'ERROR_NO_SLOT_AVAILABLE' do captcha := recognize ('jpg', antikey, fs);
post.Add ('captcha_key=' + captcha);
s := httppost (http, 'http://vkontakte.ru/login.php', post);
fs.Free; post.Clear;
end;
post.Add ('email=' + Extractproxy (account, '[^:]*[^:]', 0));
post.Add ('pass=' + Extractproxy (account, '[^:]*[^:]', 1));
post.Add ('expire=');
post.Add ('vk=');
s := httppost (http, 'http://login.vk.com/?act=login', post);
post.Clear;
if (countpos ('vklogin', s) > 0) and (http.ResponseCode = 302) then
begin
Result := 'false'; post.Free; exit;
end;
if ((countpos ('vklogin', s) > 0) and (http.ResponseCode = 200)) or (s = '') then
begin
Result := 'falseproxy'; post.Free; exit;
end;
post.Add ('op=slogin');
post.Add ('redirect=1');
post.Add ('expire=0');
post.Add ('to=');
post.Add ('s=' + deletestr (extract (s, '''s''\svalue=''[^'']*[^'']'), '''s'' value='''));
s := httppost (http, 'http://vkontakte.ru/login.php', post);
Result := 'true';
end;
Ну и пример использования:
Код:
procedure login;
var
http : tidhttp;
coo : tidcookiemanager;
s, account : widestring;
begin
http := tidhttp.create; http.handleredirects := true; http.readtimeout := 20000;
coo := tidcookiemanager.create; http.allowcookies := true; http.cookiemanager := coo;
account := 'vasya4333@mail.ru:mega-password';
showmessage (login_vk (http, account));
end;
***
А вот функции, треб. для работы этой функции (используются в каждом приложении) :
Код:
function httpGet (http : tidhttp; adr : widestring) : widestring;
var
str : tstringstream;
begin
str := tstringstream.Create('');
try http.Get (adr, str); except end;
Result := str.DataString;
str.Free;
end;
function httpPost (http : tidhttp; adr : widestring; post : tstringlist) : widestring;
var
str : tstringstream;
begin
str := tstringstream.Create('');
try http.post (adr, post, str); except end;
Result := str.DataString;
str.Free;
end;
function httpPostMulti (http : tidhttp; adr : widestring; post : Tidmultipartformdatastream) : widestring;
var
str : tstringstream;
begin
str := tstringstream.Create('');
try http.post (adr, post, str); except end;
Result := str.DataString;
str.Free;
end;
function ExtractProxy (const AInputString : string ; buf : string; pos : integer) : string;
var
r : TRegExpr;
begin
Result := '';
r := TRegExpr.Create;
try
r.Expression := buf;
r.Exec (AInputString);
Result := r.Match [0];
if pos = 1 then
begin
r.ExecNext;
Result := r.Match [0];
end;
finally r.Free;
end;
end;
function Extract (const AInputString : string ; buf : string) : string;
var
r : TRegExpr;
begin
Result := '';
r := TRegExpr.Create;
try
r.Expression := buf;
if r.Exec (AInputString) then
REPEAT
Result := r.Match [0];
UNTIL not r.ExecNext;
finally r.Free;
end;
end;
function deletestr (str, target : widestring) : widestring;
var
p : integer;
begin
while pos (target, str) > 0 do
begin
p := pos (target, str);
delete (str, p, length (target));
end;
Result := str;
end;
function countpos (const subtext: string; Text: string): Integer;
begin
if (Length(subtext) = 0) or (Length(Text) = 0) or (Pos(subtext, Text) = 0) then Result := 0 else Result := (Length(Text) - Length(StringReplace(Text, subtext, '', [rfReplaceAll]))) div Length(subtext);
end;
function recognize (itype: string; key: string; image : tmemorystream) : string;
var
ftype, s, id: string;
i: integer;
http: tidhttp;
multi: tidmultipartformdatastream;
begin
if strpos (pchar (itype), 'jpg') <> nil then ftype := 'image/pjpeg';
if strpos (pchar (itype), 'gif') <> nil then ftype := 'image/gif';
if strpos (pchar (itype), 'png') <> nil then ftype := 'image/png';
multi := Tidmultipartformdatastream.Create;
multi.AddFormField ('method', 'post');
multi.AddFormField ('key', key);
multi.AddObject ('file', ftype, 'UTF8',image, 'captcha.' + itype);
http := tidhttp.Create;
s := http.Post ('http://antigate.com/in.php', multi);
http.Free; multi.Free;
id := '';
if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end;
if strpos (Pchar (s), 'OK|') <> nil then id := AnsiReplaceStr (s, 'OK|', '');
if id = '' then result := 'ERROR: bad captcha id';
for i := 1 to 20 do
begin
sleep (5000);
http := tidhttp.Create;
s := http.Get ('http://antigate.com/res.php?key=' + key + '&action=get&id=' + id);
http.Free;
if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end;
if strpos (Pchar (s), 'OK|') <> nil then
begin
result := AnsiReplaceStr (s, 'OK|', '');
exit;
end;
end;
result := 'ERROR_TIMEOUT';
end;
Последний раз редактировалось Пуховой; 22.10.2009 в 15:24..
|
|
|

22.10.2009, 17:01
|
|
Участник форума
Регистрация: 07.08.2007
Сообщений: 136
Провел на форуме: 2010588
Репутация:
653
|
|
Помогите решить =) С мну +10
Лабораторна робота № 8 Обчислення площі контуру та координати центра його ваги.
Заданий замкнений контур намалювати на міліметровці, обчислити його площу та координати центра ваги за допомогою простих геометричних формул. Створити програму для обчислення за допомогою модифікованої формули Гріна, порівняти результати (вони повинні співпадати).
9. Замкнений контур розташовується між графіком функції Y=(1+|X|)(2-|X|) та віссю Х у диапазоні Х= -2 -- +2, визначити його площу та координати центра ваги за допомогою модифікованої формули Гріна. Порівняти із ручним розрахунком.
Лабораторная работа № 8 Вычисление площади контура и координаты центра его веса.
Заданный замкнутый контур нарисовать на милиметровци, вычислить его площадь и координаты центра тяжести с помощью простых геометрических формул. Создать программу для вычисления с помощью модифицированной формулы Грина, сравнить результаты (они должны совпадать).
9. Замкнутый контур располагается между графиком функции Y = (1 + | X |) (2 - | X |) и осью Х в диапазоне Х = -2 - 2, определить его площадь и координаты центра тяжести с помощью модифицированной формулы Грина. Сравнить с ручным расчетом.
|
|
|

22.10.2009, 19:54
|
|
Новичок
Регистрация: 31.08.2009
Сообщений: 24
Провел на форуме: 233936
Репутация:
31
|
|
Ребят,нужна помощь есть прога маленькая,написана походу на делфи 7,исходников нет,
Вводишь данные,она производит расчет и выводит отчет,надо убрать некоторые формы для ввода данных,которые используются только в отчете.возможно?пробовал через де де,я не понимаю нихрена в этом,что менять и как  кто может помочь стукните в асю
|
|
|

23.10.2009, 01:58
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
задача
есть бинарный файл(200кб), в его теле 1 раз (смещение заранее не известно) содержится последовательность из заранее заданных 5 байт.
Требуется заменить эти 5 байт на другие заранее заданные 5 байт, сохранив все остальное, в.т.ч. и название файла.
(если более точно, то требуется заменить CD 16 0F 85 09 на CD 16 90 90 90 в одном системном файле)
вопрос в том как сделать это с минимумом камасутры, за ответы спс :-)
побайтово читать и сохраняя буффер из последних 5 символов писать новый файл, а затем удалить оригинал и на его место записать "новый" - в голову пришло. Но как-то это тупо...
кто-нибудь знает менее нерациональные способы?
Последний раз редактировалось ErrorNeo; 23.10.2009 в 02:03..
|
|
|

23.10.2009, 08:33
|
|
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме: 813785
Репутация:
314
|
|
Сообщение от ErrorNeo
задача
есть бинарный файл(200кб), в его теле 1 раз (смещение заранее не известно) содержится последовательность из заранее заданных 5 байт.
Требуется заменить эти 5 байт на другие заранее заданные 5 байт, сохранив все остальное, в.т.ч. и название файла.
(если более точно, то требуется заменить CD 16 0F 85 09 на CD 16 90 90 90 в одном системном файле)
вопрос в том как сделать это с минимумом камасутры, за ответы спс :-)
побайтово читать и сохраняя буффер из последних 5 символов писать новый файл, а затем удалить оригинал и на его место записать "новый" - в голову пришло. Но как-то это тупо...
кто-нибудь знает менее нерациональные способы?
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
windows;
var
FHWND:HWND;
OFS: OFSTRUCT;
buf:array [1..6] of byte;
tmpDW:DWORD;
i, fsize:integer;
const
sMask:array [1..6] of byte=($CD, $16, $0F, $85, $09, $00);
rMask:array [1..6] of byte=($CD, $16, $90, $90, $90, $00);
begin
FHWND:= OpenFile('Relase.exe', OFS, OF_READWRITE);
if FHWND = INVALID_HANDLE_VALUE then Exit;
fsize:=GetFileSize(FHWND,@tmpDW);
for I:=1 to fsize-5 do
begin
ReadFile(FHWND, buf, 5, tmpDW, nil);
if lstrcmp(@buf,@sMask)=0
then begin
SetFilePointer(FHWND, -5, nil, FILE_CURRENT);
WriteFile(FHWND, rMask, 5, tmpDW, nil);
Exit;
end;
SetFilePointer(FHWND, i, nil, FILE_BEGIN);
end;
CloseHandle(FHWND);
end.
з.ы.: в итерации ошибка скорее всего =)
|
|
|

23.10.2009, 09:36
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
т.к. файл не большой, то проще былобы замаппить его в оперативу с правами на запись. Сразу память просканить на наличие данной сигнатуры, затем сразу изменить значение в памяти и отмаппить файл. Скорость бы была напорядок выше.
Последний раз редактировалось slesh; 23.10.2009 в 10:23..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|