ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #4691  
Старый 21.10.2009, 19:55
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Цитата:
Сообщение от НTL  
Как секунды переделать в чч..чч(чч):мм:сс

Проще говоря из 120 сделать 00:02:00
x:=120;
sec:=x mod 60;
x:=x div 60;
min:=x mod 60;
hou:=x div 60;
 
Ответить с цитированием

  #4692  
Старый 21.10.2009, 22:58
bmp152
Новичок
Регистрация: 25.05.2009
Сообщений: 15
Провел на форуме:
269065

Репутация: 6
По умолчанию

Цитата:
bmp152, и вы туда же... Ну да ладно.
Да я так, для общего развития)
Цитата:
Ansitoutf8 ('Привет');
Большое спасибо, проблема решилась, оказывается все просто, вот только еще такой нюанс - мож кому пригодится:
При постинге "а б в г д е ж з и й к л м н о п p с т у ф х ц ч ш щ ъ ы ь э ю я"

Через браузер - получаем
Код:
Р° Р± РІ Рі Рґ Рµ Р¶ Р· Рё Р№ Рє Р» Рј РЅ Рѕ Рї СЂ СЃ С‚ Сѓ С„ С… С† С‡ С? С‰ СЉ С‹ СЊ СЌ СЋ СЏ
через idhttp -
Код:
Р° Р± РІ Рі Рґ Рµ Р¶ Р· Рё Р№ Рє Р» Рј РЅ Рѕ Рї С? СЃ С‚ Сѓ С„ С… С† С‡ С? С‰ СЉ С‹ СЊ СЌ СЋ СЏ
То есть буква "р" поидее должна заменяться на "СЂ", а она почемуто меняется на "С?", из-за этого весь текст не постится. Если русскую "р" заменить на аналог-латинскую, то все отлично работает.
 
Ответить с цитированием

  #4693  
Старый 22.10.2009, 13:43
elimS2
Постоянный
Регистрация: 21.03.2008
Сообщений: 400
Провел на форуме:
1606680

Репутация: 367
Отправить сообщение для elimS2 с помощью ICQ
Thumbs down

Всем привет. Пытаюсь авторизоваться вконтакте, не получаеться. Подскажите что делаю не верно:

Код:
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;
 
Ответить с цитированием

  #4694  
Старый 22.10.2009, 15:00
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме:
1702086

Репутация: 89
По умолчанию

bmp152, проблема с русской "р" в TidURI исправлена в 10.5.7 версии
 
Ответить с цитированием

  #4695  
Старый 22.10.2009, 15:18
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме:
1702086

Репутация: 89
По умолчанию

Сама функция (определение и распознавание капчи, детект валида / невалида, детект невалид. прокси). В параметрах передаем аккаунт вида mailass, и 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..
 
Ответить с цитированием

  #4696  
Старый 22.10.2009, 17:01
Rebit
Участник форума
Регистрация: 07.08.2007
Сообщений: 136
Провел на форуме:
2010588

Репутация: 653
Отправить сообщение для Rebit с помощью ICQ
По умолчанию

Помогите решить =) С мну +10
Цитата:
Лабораторна робота № 8 Обчислення площі контуру та координати центра його ваги.
Заданий замкнений контур намалювати на міліметровці, обчислити його площу та координати центра ваги за допомогою простих геометричних формул. Створити програму для обчислення за допомогою модифікованої формули Гріна, порівняти результати (вони повинні співпадати).

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

9. Замкнутый контур располагается между графиком функции Y = (1 + | X |) (2 - | X |) и осью Х в диапазоне Х = -2 - 2, определить его площадь и координаты центра тяжести с помощью модифицированной формулы Грина. Сравнить с ручным расчетом.
 
Ответить с цитированием

  #4697  
Старый 22.10.2009, 19:54
CaLLIka
Новичок
Регистрация: 31.08.2009
Сообщений: 24
Провел на форуме:
233936

Репутация: 31
Отправить сообщение для CaLLIka с помощью ICQ
По умолчанию

Ребят,нужна помощь есть прога маленькая,написана походу на делфи 7,исходников нет,
Вводишь данные,она производит расчет и выводит отчет,надо убрать некоторые формы для ввода данных,которые используются только в отчете.возможно?пробовал через де де,я не понимаю нихрена в этом,что менять и как кто может помочь стукните в асю
 
Ответить с цитированием

  #4698  
Старый 23.10.2009, 01:58
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

задача
есть бинарный файл(200кб), в его теле 1 раз (смещение заранее не известно) содержится последовательность из заранее заданных 5 байт.
Требуется заменить эти 5 байт на другие заранее заданные 5 байт, сохранив все остальное, в.т.ч. и название файла.


(если более точно, то требуется заменить CD 16 0F 85 09 на CD 16 90 90 90 в одном системном файле)

вопрос в том как сделать это с минимумом камасутры, за ответы спс :-)
побайтово читать и сохраняя буффер из последних 5 символов писать новый файл, а затем удалить оригинал и на его место записать "новый" - в голову пришло. Но как-то это тупо...
кто-нибудь знает менее нерациональные способы?

Последний раз редактировалось ErrorNeo; 23.10.2009 в 02:03..
 
Ответить с цитированием

  #4699  
Старый 23.10.2009, 08:33
s0l_ir0n
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме:
813785

Репутация: 314
Отправить сообщение для s0l_ir0n с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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.
з.ы.: в итерации ошибка скорее всего =)
 
Ответить с цитированием

  #4700  
Старый 23.10.2009, 09:36
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

т.к. файл не большой, то проще былобы замаппить его в оперативу с правами на запись. Сразу память просканить на наличие данной сигнатуры, затем сразу изменить значение в памяти и отмаппить файл. Скорость бы была напорядок выше.

Последний раз редактировалось slesh; 23.10.2009 в 10:23..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2567 19.04.2026 23:21
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ