[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Да как тебе угодно, использую архитектуру Клиент-Сервер. Сервер устанавливаешь на удаленную машину, которой нужно управлять, клиентом подключаешься и отправляешь "команды" (блоки информации). На сервере слушаешь определенный порт и в зависимости от пришедших данных выполняешь те или инные команды. Вот собственно и все, чего тут непонятного?
     
  2. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    patcher, а если комп за натом или fw, твой сервер устанет слушать, если у тебя нет к нему доступа) =)
     
  3. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    ну об этом то речь и не шла :) какой вопрос такой и ответ
     
  4. FSCool

    FSCool New Member

    Joined:
    29 Jun 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Извиняюсь, но непонятно, как заставить удаленный компьютер выполнять эти "команды". Команды то приходят на сервер, но как "обьяснить" компьютеру, что это команды, а не простой текст? Вот тут я спрашивал, как выполнить телнет команду на индейском сервере: http://forum.antichat.ru/thread266783.html. Как видите, проблема ни в передаче текста и ни в архитектуре "клиент-сервер".
    Спасибо!
     
  5. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    FSCool,
    Для этого и придумывают свои протоколы передачи данных между клиентом и сервером. По сути это набор правил для сетевой передачи. Здесь всё ограничивается только фантазией программиста, т.е. вашей фантазией.
    Самым элементарным вариантом является передача вместе с пакетом какой-либо сигнатуры. К примеру в начале ставить три байта "MFP" (My First Protocol).
    Таким образом был пакет:
    Code:
    +---------+
    | Команда |
    +---------+
    а стал
    Code:
    +-----+---------+
    | MFP | Команда |
    +-----+---------+
    Что бы отличить серверу команду от каких-то левых данных, достаточно проверить первые 3 байта входящих данных, если это MFC - выполнить команду, иначе просто проигнорировать сетевой пакет.
     
  6. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Жду помощи.
     
  7. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    роби так як це робить браузер (Firefox +httpFox тобі в допомогу)
    а в плані універсальності... ну подивись що робиться на інших сервісах і пиши код більш загально (наприклад абстрактний клас який перективається не абстрактним типу TMailRuReg = class(TMailReg))

    UPD

    делай так как это делает браузер (Firefox + httpFox тебе в помощь)
    а в плане универсальности ... ну посмотри что делается на других сервисах и пиши код более общее (например абстрактный класс который перективаеться не абстрактным типа TMailRuReg = class (TMailReg))
     
  8. Freedom

    Freedom Elder - Старейшина

    Joined:
    2 Jul 2007
    Messages:
    38
    Likes Received:
    92
    Reputations:
    8
    Ребят снова нужна помощь.

    Есть idhttp грузим страницу. На странице есть java скрипт, который вычисляет идентификатор браузера. Как можно его выполнить ? чтобы он просчитал все что надо ?

    вот сам скрипт.



    у меня с явой туго. (((( думаю можно переписать на делфи. но хз как ((
     
    #8048 Freedom, 31 Mar 2011
    Last edited: 31 Mar 2011
  9. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Freedom, тут использована об обфускация java, после кое-каких манипуляций
    Code:
    document.getElementById('formkey').innerHTML=unescape(vFiLDqA.replace(/Q([\w]{2})/g,'%$1'));
    
    где строка vFiLDqA равна
    или после выполнения функций replace и unescape:
    Code:
    document.getElementById('formkey').innerHTML="formcode = '<input type="hidden" name="form_key" value="41bf1ba15bfdd312ca33f5ca6eb06cdbcdddb9aa">';";
    
    дальше смотри сам
     
  10. Freedom

    Freedom Elder - Старейшина

    Joined:
    2 Jul 2007
    Messages:
    38
    Likes Received:
    92
    Reputations:
    8
    Спасибо за помощь. ) Решил сам. Сохраняю в файл, подгружаю в Webbrowser. Выполняю этот скрипт.
    Выдает нужное значение. то бишь '<input type="hidden" name="form_key" value=" и тд.

    кстати ты получил твой ответ.
    Code:
    document.getElementById('formkey').innerHTML="formcode = '<input type="hidden" name="form_key" value="41bf1ba15bfdd312ca33f5ca6eb06cdbcdddb9aa">';";
    
    каким образом ? это валуе то мне и нужно. Если не таким корявым способом как мой. То рад буду помощи. )
     
    #8050 Freedom, 31 Mar 2011
    Last edited: 31 Mar 2011
  11. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    все просто очень)
    из строки:
    собираем 2 строки, функцией
    Code:
    function AFRxKtofJ(id)
    получаем элемент по ID к примеру:
    Code:
    DamkW=AFRxKtofJ('DVWxfFMaN'); // получаем <span class="kPdEGXWJOtvRDNy" id="DVWxfFMaN">Q66Q6FQ72Q6DQ63Q6FQ64Q65Q20Q3DQ20Q27Q3CQ69Q6EQ70</span>
    
    // пеменной gvdPZ присваиваем значение Q66Q6FQ72Q6DQ63Q6FQ64Q65Q20Q3DQ20Q27Q3CQ69Q6EQ70
    gvdPZ=''+DamkW.innerHTML;
    
    далее идет простое сложение строк в конце которого получаем:
    ну а далее уже известно "Q" заменяем на "%" и переводим эту строку из hex в нормальный вид, в общих чертах как то так) =)
     
    1 person likes this.
  12. Москва

    Москва New Member

    Joined:
    19 Oct 2010
    Messages:
    63
    Likes Received:
    3
    Reputations:
    0
    Не получается авторизоваться на меил ру.
    Сначала работало потом чето изменил и теперь вообще не пойму, куки все записывается при авторизации в менеджер. Но само оно не авторизуется на сайте с помощью этих кук.
    Вот собственно код:
    .......

    Куки все выводится из менеджера, редиректит на страницу мой мир как и надо:


    И вот в PostData записывается страница входа.

    В общем в чем вата кто подскажет?)
     
  13. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    бачиш що робить браузер?

    http.iohandler:=tidssliohandlersocketopenssl.create;// це потрібно для https
    http.post('https://auth.mail.ru/cgi-bin/auth',
    'Login='+login +'&Domain=mail.ru&Password='+password);

    детальніше про поєднання:
    - idhttp
    - idcookiemanager
    - idsslopenssl
    - idcompressorzlib
    - idsocks
    тут
     
    #8053 ADR-007, 1 Apr 2011
    Last edited: 2 Apr 2011
  14. xanter

    xanter New Member

    Joined:
    22 Dec 2009
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    подскажите как оформить пост запрос?

    fullname john это со снифера

    у меня работает так это норм

    PostData.Add('fullname='john);

    а как оформить такой запрос ? это со снифера

    data[Contact][fname] john
     
    #8054 xanter, 1 Apr 2011
    Last edited: 1 Apr 2011
  15. .van$

    .van$ New Member

    Joined:
    17 Jan 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Заюзай в качестве снифера HTTPAnalyzer - оттуда очень удобно брать данные для постов.
     
  16. xanter

    xanter New Member

    Joined:
    22 Dec 2009
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    он не видит этот пост запрос , он по https идет

    PostData.Add('data[Contact][fname]='john);

    такой вариант правилен нет ?
     
  17. Москва

    Москва New Member

    Joined:
    19 Oct 2010
    Messages:
    63
    Likes Received:
    3
    Reputations:
    0
    Подсоединил IdCookiemanager, IdSSLIOHandlerSocketOpenSSL
    авторизация проходит в первое мемо пишется
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head><title>@MAIL.RU: ???????????</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <script language="JavaScript"><!--
        window.location.replace("http://e.mail.ru/cgi-bin/start?back=1"); 
    // --></script>
    <meta http-equiv="refresh" content="0;url=http://e.mail.ru/cgi-bin/start?back=1">
    </head>
    <body></body>
    </html>
    
    
    А во второе страница входа, несчитывает куки с менеджера или чо
     
  18. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    firefox + HttpFox тобі все розкаже
    [​IMG]
     
  19. xanter

    xanter New Member

    Joined:
    22 Dec 2009
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    также это пост запрос из firefox + HttpFox
     
  20. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    разве?
    ну тогда ...
    http.post(uri,'data[Contact][fname] '+str1);
    если ’john’ ет переменная а если все конст то
    http.post(uri,'data[Contact][fname] john')
     
Thread Status:
Not open for further replies.