пишу на делфи(бесплатно)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Vlad3d, 30 Jul 2009.

  1. Vlad3d

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

    Joined:
    18 Jan 2008
    Messages:
    47
    Likes Received:
    54
    Reputations:
    -1
    Пишу бесплатно не сложные програмки на делфи......Для общего развития в сфере программирования на делфи....аська на аве
     
    3 people like this.
  2. Andres

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

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    "Несложные"
    Например?
     
  3. -=Sinner=-

    -=Sinner=- Member

    Joined:
    17 Jan 2009
    Messages:
    42
    Likes Received:
    5
    Reputations:
    0
    напиши спамер для вк/одн я даже бонусом награжу )
    если интересно то пиши icq 73373309
     
  4. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    задание #1.


    имеем:
    -----------------------------------------------------
    *формат url:
    Code:
    http://hashkiller.com/api/api.php?md5=098f6bcd4621d373cade4e832627b4f6
    098f6bcd4621d373cade4e832627b4f6 тут - MD5 хэш (строка из 32 символов).
    +
    *файл, содержащий много строк с хешами. т.е. в каждой строке по 32 символа.
    (название файла фиксированное, скажем, input.txt)


    требуется:
    ------------------------------------------------------
    минимум:
    слать поочередно все хеши (32 символьные строки) через указанный выше запрос, и записывать ответы сервера в отдельный файл.

    желательно:
    1. в зависимости от ответа - а их может быть 2 вида. Сравни к примеру запросы
    Code:
    http://hashkiller.com/api/api.php?md5=098f6bcd4621d373cade4e832627b4f6
    и
    http://hashkiller.com/api/api.php?md5=00000000000000000000000000000000
    ну так вот... ответы с "true" желательно записывать в один файл, а с false - в другой.

    ну и само слово true и false в сами файлы писать ессно не надо.

    2.
    хорошо бы вывести в окно программы счетчики успешных и сфейленных запросов. Так.. просто чтобы было.
    Ну и, когда программа закончит проверку - она должна об эотм тоже как-то сообщать. (например где-то в еню программки может появляться надпись "готово")


    ================================
    p.s.
    если для тебя это слишком легко - скажу задание посложнее. Смотря насколько сложное тебе нужно :)
     
    #4 ErrorNeo, 30 Jul 2009
    Last edited: 30 Jul 2009
  5. plas

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

    Joined:
    19 Mar 2007
    Messages:
    83
    Likes Received:
    11
    Reputations:
    -2
    С мс-офисным пакетом работал?
     
  6. Vlad3d

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

    Joined:
    18 Jan 2008
    Messages:
    47
    Likes Received:
    54
    Reputations:
    -1
    ErrorNeo

    сделаю возможно сегодня ночью...

    а что именно надо?
     
    #6 Vlad3d, 30 Jul 2009
    Last edited: 30 Jul 2009
  7. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    ErrorNeo
    такое надо на перле. 5 минут делов)
     
  8. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    ErrorNeo

    Моя реализация с помощью инди10

    [+] Выполняет все, что надо, после отработки просто закрывается консольное окно
    [-] Фиксированные имена файлов
    [-] Кривой код, размер файла, использование инди
    [-] Нету счетчика (да и нах он, если запросы выполняются моментально?)
    [-] Out файлы каждый раз перезаписываются заново

    Code:
    program Project1;
    
    uses
      Windows, idHTTP, Classes;
    
    {$APPTYPE CONSOLE}
    
    var
    
    http : TIdHTTP;
    in_list, true_list, false_list : TStrings;
    iCh, sPos, sPos2, sPos3 : integer;
    tmp, response_result : string;
    
    begin
    
    in_list := TStringList.Create;
    true_list := TStringList.Create;
    false_list := TStringList.Create;
    in_list.LoadFromFile('input.txt');
    
    
    http := TIdHTTP.Create();
    
    for iCh := 0 to in_list.Count -1 do begin
    
      tmp := http.Get('http://hashkiller.com/api/api.php?md5='+in_list.Strings[iCh]);
      sPos := pos('true',tmp);
      sPos2 := pos('false',tmp);
      sPos3 := pos('<plain>',tmp);
    
      if sPos<>0 then begin
        response_result:=copy(tmp,sPos3+7,length(tmp)-145);
        writeln(in_list.Strings[iCh]+' : '+response_result);
        true_list.Add(in_list.Strings[iCh]+' : '+response_result);
      end;
    
      if sPos2<>0 then begin
        false_list.Add(in_list.Strings[iCh]+' : '+'NOT FOUND');
      end;
    
    end;
    
    false_list.SaveToFile('false.txt');
    true_list.SaveToFile('true.txt');
    
    http.Free;
    in_list.Free;
    true_list.Free;
    false_list.Free;
    
    end.
    
    
    З.Ы. Заодно нашел все нужные мне хеши, которые даже хешкряк.инфо не осилил =\ Быстро пади у них работают негры :D
     
    #8 ex3me, 1 Aug 2009
    Last edited: 1 Aug 2009
    3 people like this.
  9. AquaKlaster

    AquaKlaster Active Member

    Joined:
    9 Mar 2009
    Messages:
    0
    Likes Received:
    204
    Reputations:
    23
    Зачем перл на дельфи тож работы на 5 мин, если знаешь своё дело!
     
    11 people like this.
  10. Vlad3d

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

    Joined:
    18 Jan 2008
    Messages:
    47
    Likes Received:
    54
    Reputations:
    -1
    сорри работы было в аське много...только щас смог зайти сюда....
     
  11. [n]-c0der

    [n]-c0der Member

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    24
    Reputations:
    -1
    работы на 2 минуты =)
     
  12. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Вот честно: сижу и читаю какие все тут блатные кодеры... Все умные прям такие... 2 минуты, 5 минут и т.д.

    Ну так сделай, напиши, покажи. Что зря посты кидать в два слова?

    Если ты действительно можешь хотябы такой код, как у меня накропать за 2 минуты (или 5 минут), а потом это все дело хоть маломальски отладить - запиши видео, а мы поглядим, как ты стираешь пальцы о клавиатуру, чтобы уложиться в лимит времени.

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

    Да, это не тема для обсуждения задания ErrorNeo, но тем не менее - покажите на что ВЫ способны (если конечно, не только языками умеете молоть). А может кто осилит на чистом WinAPI+winsock сделать? Дабы размер ехе не привысил 50кб

    З.Ы. Извиняюсь, накипело
     
    2 people like this.
  13. dnd

    dnd Member

    Joined:
    28 Nov 2007
    Messages:
    23
    Likes Received:
    8
    Reputations:
    0
    ex3me
    ну зачемже winsock? можно на wininet и тогда размер не превысит 50кб ;)
     
  14. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    :) ну да, так оно, в общем-то, и должно работать, ex3me.
    задача действительно совсем-совсем несложная)

    задачей номер 2 будет разобраться как написать то же самое только с вин-апи :D
    В данном примере пользы от этого будет не много, но все же разобраться стоит - как раз на таком элементарном примере. Потому как в большинстве реальных задач вин-апи просто необходим(
     
  15. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    WinAPI+winsock, winAPI+winInet?

    Я в АПИ туговат, посему ненаю как работать на АПИ с сетью ))
     
  16. dnd

    dnd Member

    Joined:
    28 Nov 2007
    Messages:
    23
    Likes Received:
    8
    Reputations:
    0
    winInet это и есть api)))
     
  17. __mad

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

    Joined:
    4 Nov 2007
    Messages:
    100
    Likes Received:
    38
    Reputations:
    7
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #if defined _WIN32
    #include <winsock.h>
    #define sleep(x) Sleep(x)
    #define close(x) closesocket(x)
    #pragma comment(lib, "ws2_32.lib")
    #else
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <netdb.h>
    #include <unistd.h>
    #endif
    
    static char *fetch_url(const char *, const char *, int *);
    
    int main(int argc, char *argv[])
    {
      FILE *in, *out_bad, *out_good;
      char *body;
      char hash[34];
      char url[64];
      int g = 0, b = 0;
    
      if (argc < 2 || argc > 3) {
        printf("%s <input>\n", argv[0]);
        return 1;
      }
      in = fopen(argv[1], "rb");
      if (!in) {
        perror("fopen");
        return 1;
      }
    
      out_bad = fopen("bad_hash", "wb");
      out_good = fopen("good_hash", "wb");
    
      while (!feof(in)) {
        fscanf(in, "%s\n", hash);
        sprintf(url, "/api/api.php?md5=%s", hash);
        body = fetch_url("hashkiller.com", url, 0);
        if (strstr(body, "false")) {
          printf("[-] Hash not found %s\n", hash);
          fprintf(out_bad, "%s\n", hash);
          b++;
        } else {
          printf("[+] Hash found %s\n", hash);
          fprintf(out_good, "%s\n", hash);
          g++;
        }
      }
    
      printf("[i] Hash checking complete\n"
    	 "\t%d good hash\n"
    	 "\t%d bad hash\n", g, b);
    
      return 0;
    }
    
    int hard_fetch_ip = 0;
    
    #define MAX_LEN 1024
    
    static char *fetch_url(const char *host, const char *url, int *res_len)
    {
      struct hostent *phe;
      struct sockaddr_in sin;
      int s, len, len_respose;
      char *body_send;
      char *body_recv;
      char *body_response;
    
    #if defined _WIN32
      WSADATA wsaData;
      WSAStartup(0x101, &wsaData);
    #endif
    
      s = socket(AF_INET, SOCK_STREAM, 0);
      if (s == -1) {
        perror("socket");
        return NULL;
      }
    
      if (!hard_fetch_ip) {
        phe = gethostbyname(host);
        if (phe == NULL) {
          perror("gethostbyname");
          return NULL;
        }
        hard_fetch_ip = ((struct in_addr*)phe->h_addr_list[0])->s_addr;
      }
    
      sin.sin_family = AF_INET;
      sin.sin_addr.s_addr = hard_fetch_ip;
      sin.sin_port = htons(80);
    
      if (connect(s, (struct sockaddr*)&sin, sizeof(struct sockaddr_in))) {
        perror("connect");
        return NULL;
      }
    
      body_send = (char *)malloc(MAX_LEN);
      body_recv = (char *)malloc(MAX_LEN);
      body_response = (char *)malloc(MAX_LEN);
    
      memset(body_response, 0, MAX_LEN);
      len_respose = 0;
    
      sprintf(body_send,
    	  "GET /%s HTTP/1.1\r\n"
    	  "Host: %s\r\n"
    	  "Connection: close\r\n"
    	  "Accept: */*\r\n\r\n", url, host);
    
      send(s, body_send, strlen(body_send), 0);
    
      int new_len = MAX_LEN;
      char *tmp;
    
      do {
        len = recv(s, body_recv, MAX_LEN, 0);
        len_respose += len;
        if (len_respose > new_len) {
          new_len = new_len * 2;
          body_response = (char *) realloc(body_response, new_len );
        }
        memcpy(body_response + (len_respose - len), body_recv, len);
      } while (len);
    
      // remove headers
      tmp = strstr(body_response, "\r\n\r\n");
      len_respose -= (tmp - body_response + 4);
      memcpy(body_response, tmp + 4, len_respose);
    
    
      free(body_recv);
      free(body_send);
      close(s);
    
      if (res_len) {
        *res_len = len_respose;
      }
      return body_response;
    }
    
    GNU/Linux

    $ gcc check-hash.c -Wall -o check-hash
    $ ./check-hash input.txt
    [+] Hash found 098f6bcd4621d373cade4e832627b4f6
    [+] Hash found 098f6bcd4621d373cade4e832627b4f6
    [-] Hash not found 00000000000000000000000000000000
    [-] Hash not found 23423423842378947289374892734897
    Hash checking complete
    2 good hash
    2 bad hash

    Windows

    $ i586-mingw32msvc-gcc check-hash.c -Wall -lws2_32 -o check-hash.exe
    $ wine ./check-hash.exe input.txt
    [+] Hash found 098f6bcd4621d373cade4e832627b4f6
    [+] Hash found 098f6bcd4621d373cade4e832627b4f6
    [-] Hash not found 00000000000000000000000000000000
    [-] Hash not found 23423423842378947289374892734897
    Hash checking complete
    2 good hash
    2 bad hash
     
    1 person likes this.
  18. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    o my god :eek:

    ну какбе да.)
    красива
     
    #18 ErrorNeo, 4 Aug 2009
    Last edited: 4 Aug 2009
  19. drummashins

    drummashins Banned

    Joined:
    23 Apr 2009
    Messages:
    108
    Likes Received:
    45
    Reputations:
    21
    Можешь написать чекер вк?
    что бы с прокси работал
     
  20. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    а прогу для взлома интернета тебе не надо?

    если нужен хороший чеккер - иди в соответствующий раздел и заказывай за деньги!
    нашолся тут, умнеГ.