Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20
  1. #1
    Anfänger
    Registriert seit
    12.09.2010
    Beiträge
    23

    Frage VB.net PSC CAPTCHA Auslesen?

    Moinsen!
    also ich Bau gerade mein erstes Programm
    ist nur was ganz kleines!

    ich möchte PSC checken!

    und das nicht auf der HP sondern mit dem TOOL

    ich gebe also die PSC ein und eventuell ein Password
    und klick dann auf PSC Checken!

    er soll im Hintergrund den CAPTCHA ausfüllen

    ist das machbar?
    oder wäre es einfacher wenn ich einfach eine PictureBox nehme, wo dann der CAPTCHA angezeigt wird?
    wenn ja wie mach ich das?
    oder er zeigt den CAPTCHA in einem extra Fenster an!

    MFG FuNTeX



    /e kann man bei der Textbox ein Zeichenlimit setzen?!
    Geändert von FuNTeX (30.01.2012 um 13:50 Uhr)

  2. #2
    W32.FunLove Avatar von Death~
    Registriert seit
    17.10.2011
    Beiträge
    134

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Ich würde das so machen, dass du auf der Seite auf der das Captcha erscheint, über nen Webrequest den Quelltext auslesen und nach dem Link zum Captcha-Bild suchen. Dann kannst du ihn in deiner Picturebox darstellen lassen.

    Edit: Klar
    Lord, what fools these mortals be


  3. #3
    Anfänger
    Registriert seit
    12.09.2010
    Beiträge
    23

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    wäre ja dann "https://customer.cc.at.paysafecard.com/seam/resource/captcha" oder?

    und wie lass ich ihn in der Picturebox darstellen?

  4. #4
    W32.FunLove Avatar von Death~
    Registriert seit
    17.10.2011
    Beiträge
    134

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Nein, das wäre es wahrscheinlich hier nicht, da beim Öffnen jeweils ein anderes Bild angezeigt wird. Du musst an das selbe Bild kommen, das dein Browser anzeigt.
    Lord, what fools these mortals be


  5. #5
    Anfänger
    Registriert seit
    12.09.2010
    Beiträge
    23

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    das der quellcode vom Bild / Chaptcha

    wie finde ich jetzt da genau das raus was ich brauche?
    versteh das gerade nicht^^
    wie gesagt alles neu für mich^^


  6. #6
    W32.FunLove Avatar von Death~
    Registriert seit
    17.10.2011
    Beiträge
    134

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Schick mal die URL zu der Seite, auf der das Captcha dargestellt wird.
    Lord, what fools these mortals be


  7. #7
    W32.Lovgate
    Registriert seit
    22.10.2011
    Beiträge
    340

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Hat er doch. Dahinter verbirgt sich wohl ein PHP Script das ein Bild erstellt.

  8. #8
    W32.FunLove Avatar von Death~
    Registriert seit
    17.10.2011
    Beiträge
    134

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Ich meinte eher die den kompletten Link der Seite, auf den man mit dem Browser navigiert (z.B. https://mypins.paysafecard.com/custo...ml?product=psc)
    Da könnte man dann genauer schauen, wie der Browser mit dem Server kommuniziert.
    Lord, what fools these mortals be


  9. #9
    Anfänger
    Registriert seit
    12.09.2010
    Beiträge
    23

    Standard AW: VB.net PSC CAPTCHA Auslesen?


  10. #10

    Registriert seit
    17.06.2009
    Beiträge
    559

    Standard AW: VB.net PSC CAPTCHA Auslesen?

    Ein etwas älteres Script von mir. Ich hab keine Ahnung, ob es noch funktioniert, aber da siehst Du wie die Übertragung abläuft.
    Code:
    <?php
      //psc checker with captchatrader support
      //script by inout
      
      error_reporting(E_ALL);
      
      //config start
      define('PSC_LOGIN_URL', 'https://customer.cc.at.paysafecard.com/psccustomer/GetWelcomePanelServlet');
      define('PSC_CAPTCHA_URL', 'https://customer.cc.at.paysafecard.com/seam/resource/captcha');
      define('INVALID_PIN_PASSWORD_STRING', 'Bei der Eingabe des');
      define('WRONG_CAPTCHA_STRING', 'Der eingegebene Text stimmt nicht');
      
      define('USER_AGENT', 'Mozillla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0');
      define('COOKIE_FILE', 'cookie.txt');
      define('CAPTCHA_FILE', 'captcha.jpg');
      define('SOCKET_TIMEOUT', 60);
      
      define('CAPTCHATRADER_SUBMIT_URL', 'http://api.captchatrader.com/submit');
      define('CAPTCHATRADER_RESPOND_URL', 'http://api.captchatrader.com/respond');
      define('CAPTCHATRADER_GET_CREDITS_URL', 'http://api.captchatrader.com/get_credits/username:{USERNAME}/password:{PASSWORD}/');
      define('CAPTCHATRADER_USERNAME', '');
      define('CAPTCHATRADER_PASSWORD', '');
      define('CAPTCHATRADER_API_KEY', '');
      
      define('PSC_CODES_INPUT_FILE', 'psc.txt');
      define('RESULT_OUTPUT_FILE', 'out.txt');
      
      define('RETRY_BAD', true);
      //config end
      
      $default_curl_options = array(CURLOPT_USERAGENT      => USER_AGENT,
                                    CURLOPT_COOKIEFILE     => COOKIE_FILE,
                                    CURLOPT_COOKIEJAR      => COOKIE_FILE,
                                    CURLOPT_RETURNTRANSFER => true,
                                    CURLOPT_FRESH_CONNECT  => true,
                                    CURLOPT_SSL_VERIFYPEER => false,
                                    CURLOPT_SSL_VERIFYHOST => false,
                                    CURLOPT_FAILONERROR    => true,
                                    CURLOPT_FOLLOWLOCATION => true,
                                    CURLOPT_CONNECTTIMEOUT => SOCKET_TIMEOUT,
                                    CURLOPT_TIMEOUT        => SOCKET_TIMEOUT);
                                     
      function psc_get_cookie(&$error)
      {
        $error = false;
        
        $ch = curl_init(PSC_LOGIN_URL);
        if($ch !== false)
        {
          global $default_curl_options;
          
          curl_setopt_array($ch, $default_curl_options);
          $src = curl_exec($ch);
          $error = curl_error($ch);
          curl_close($ch);
          
          return $src !== false;
        }
        
        return false;
      }
      
      function psc_get_captcha($ch, $captcha_file)
      {
        $fp = fopen($captcha_file, 'w');
        if($fp !== false)
        {
          curl_setopt_array($ch, array(CURLOPT_URL  => PSC_CAPTCHA_URL,
                                       CURLOPT_FILE => $fp));
          $ok = curl_exec($ch);
          fclose($fp);
          
          return $ok;
        }
        
        return false;
      }
      
      function psc_get_data($src)
      {
        $data = array();
        
        if(preg_match('#<td class="cell1">Wert</td>\s*<td class="cell2"><table>\s*<tbody>\s*<tr>\s*<td>(.+?)</td>\s*<td>(.+?)</td>\s*</tr>\s*</tbody>\s*</table>\s*</td>#i', $src, $match))
        {
          $data['credit'] = $match[1];
          $data['credit_currency'] = $match[2];
        }
        
        if(preg_match('#<td class="cell1">Verf&uuml;gbares Guthaben</td>\s*<td class="cell2"><table>\s*<tbody>\s*<tr class="price">\s*<td>(.+?)</td>\s*<td>(.+?)</td>\s*</tr>\s*</tbody>\s*</table>\s*</td>#i', $src, $match))
        {
          $data['available_credit'] = $match[1];
          $data['available_credit_currency'] = $match[2];
        }
        
        if(preg_match('#<td class="cell1">Seriennummer</td>\s*<td class="cell2">(\d+)</td>#i', $src, $match))
          $data['serial_number'] = $match[1];
          
        if(preg_match('#<td class="cell1">In Zahlung</td>\s*<td class="cell2"><table>\s*<tbody>\s*<tr>\s*<td>(.+?)</td>\s*<td>(.+?)</td>\s*</tr>\s*</tbody>\s*</table>\s*</td>#i', $src, $match))
        {
          $data['paid'] = $match[1];
          $data['paid_currency'] = $match[2];
        }
        
        if(preg_match('#<td class="cell1">Produktionsdatum</td>\s*<td class="cell2">(.+?)</td>#i', $src, $match))
          $data['production_date'] = $match[1];
          
        return $data;
      }
      
      function psc_login($ch, $pin, $captcha, $pass = '')
      {
        $pin_parts = str_split($pin, 4);
        curl_setopt_array($ch, array(CURLOPT_RETURNTRANSFER => true,
                                     CURLOPT_URL            => 'https://customer.cc.at.paysafecard.com/psccustomer/GetWelcomePanelServlet',
                                     CURLOPT_REFERER        => 'https://customer.cc.at.paysafecard.com/psccustomer/GetWelcomePanelServlet',
                                     CURLOPT_POSTFIELDS     => "mainPagePart=mainPagePart&mainPagePart:rn1={$pin_parts[0]}&mainPagePart:rn2={$pin_parts[1]}&mainPagePart:rn3={$pin_parts[2]}&mainPagePart:rn4={$pin_parts[3]}&mainPagePart:passField=$pass&mainPagePart:verifyCaptcha=$captcha&mainPagePart:next=OK&javax.faces.ViewState=j_id2"));
        $src = curl_exec($ch);
          
        if($src !== false)
        {
          if(stripos($src, WRONG_CAPTCHA_STRING) !== false)
            return 'wrong captcha';
          else if(stripos($src, INVALID_PIN_PASSWORD_STRING) !== false)
            return 'invalid pin/password';
          else
            return psc_get_data($src);
        }
        
        return false;
      }
      
      function valid_psc_code($psc_code)
      {
        return preg_match('/^\d{16}$/', $psc_code);
      }
      
      function psc_data_to_string($data)
      {
        $str = '';
        foreach($data as $key => $value) $str .= "$key: $value\n";
        return $str;
      }
      
      function captchatrader_submit($username, $password, $api_key, $captcha_file)
      {
        $ch = curl_init(CAPTCHATRADER_SUBMIT_URL);
        if($ch !== false)
        {
          global $default_curl_options;
          
          curl_setopt_array($ch, $default_curl_options + array(CURLOPT_POSTFIELDS => array('username' => $username, 'password' => $password, 'api_key' => $api_key, 'value' => "@$captcha_file")));
          $src = curl_exec($ch);
          if($src !== false)
            $return = json_decode($src, true);
          else
            $return = curl_error($ch);
          curl_close($ch);
          
          return $return;
        }
        
        return false;
      }
      
      function captchatrader_respond($username, $password, $is_correct, $ticket)
      {
        $ch = curl_init(CAPTCHATRADER_RESPOND_URL);
        if($ch !== false)
        {
          global $default_curl_options;
          
          curl_setopt_array($ch, $default_curl_options + array(CURLOPT_POSTFIELDS => http_build_query(array('username' => $username, 'password' => $password, 'is_correct' => $is_correct, 'ticket' => $ticket), '', '&')));
          $src = curl_exec($ch);
          if($src !== false)
            $return = json_decode($src, true);
          else
            $return = curl_error($ch);
          curl_close($ch);
          
          return $return;
        }
        
        return false;
      }
      
      function captchatrader_get_credits($username, $password)
      {
        $ch = curl_init(str_replace(array('{USERNAME}', '{PASSWORD}'), array($username, $password), CAPTCHATRADER_GET_CREDITS_URL));
        if($ch !== false)
        {
          global $default_curl_options;
          
          curl_setopt_array($ch, $default_curl_options);
          $src = curl_exec($ch);
          if($src !== false)
            $return = json_decode($src, true);
          else
            $return = curl_error($ch);
          curl_close($ch);
          
          return $return;
        }
        
        return false;
      }
      
      if(psc_get_cookie($error))
      {
        $ch = curl_init();
        if($ch !== false)
        {
          $use_captchatrader = CAPTCHATRADER_USERNAME != '' && CAPTCHATRADER_PASSWORD != '';
          $ok = !$use_captchatrader;
          if($use_captchatrader)
          {
            echo "checking captchatrader status...\n";
            $credits = captchatrader_get_credits(CAPTCHATRADER_USERNAME, CAPTCHATRADER_PASSWORD);
            if(is_array($credits))
            {
              if($credits[0] == 0)
              {
                $ok = $credits[1] > 0;
                if($ok)
                  echo "captchatrader credits available: {$credits[1]}\n";
                else
                  echo "no captchatrader credits available\n";
              }
              else
                echo "unable to get captchatrader credits: \"{$credits[1]}\"\n";
            }
            else
              echo "unable to get captchatrader credits: \"$credits\"\n";
          }
          
          if($ok)
          {
            if(file_exists(PSC_CODES_INPUT_FILE))
            {
              $psc_codes = file(PSC_CODES_INPUT_FILE, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
              if($psc_codes !== false)
              {
                if(is_writeable(RESULT_OUTPUT_FILE))
                {
                  curl_setopt_array($ch, $default_curl_options);
                  foreach($psc_codes as $psc_code)
                  {
                    $psc_code = trim($psc_code);
                    if($psc_code == '') continue;
                    $tmp = explode(':', $psc_code);
                    $psc_code = $tmp[0];
                    $psc_code = str_replace('-', '', $psc_code);
                    if(!valid_psc_code($psc_code)) continue;
                    $password = count($tmp) > 1 ? $tmp[1] : '';
                    
                    while(true)
                    {
                      echo "checking $psc_code";
                      if($password) echo ":$password";
                      echo "\n";
                      
                      if(psc_get_captcha($ch, CAPTCHA_FILE))
                      {
                        if($use_captchatrader)
                        {
                          echo "submitting captcha...\n";
                          $submit = captchatrader_submit(CAPTCHATRADER_USERNAME, CAPTCHATRADER_PASSWORD, CAPTCHATRADER_API_KEY, CAPTCHA_FILE);
                          if(is_array($submit))
                          {
                            if($submit[0] != -1)
                            {
                              $captcha = $submit[1];
                              echo "captcha received: $captcha\n";
                            }
                            else
                            {
                              echo "unable to submit captcha: \"{$submit[1]}\"\n";
                              break 2;
                            }
                          }
                          else
                          {
                            echo "http error while submitting captcha: \"$submit\"\n";
                            break 2;
                          }
                        }
                        else
                        {
                          exec(CAPTCHA_FILE);
                          echo 'captcha: ';
                          $captcha = stream_get_line(STDIN, 1024, PHP_EOL);
                        }
                        
                        $data = psc_login($ch, $psc_code, $captcha, $password);
                        if(is_array($data))
                        {
                          echo "check ok\n";
                          $str = $psc_code;
                          if($password) $str .= ":$password";
                          $str .= "\n";
                          $str .= psc_data_to_string($data);
                          $str .= "\n";
                          echo $str;
                          if(file_put_contents(RESULT_OUTPUT_FILE, $str, FILE_APPEND) === false)
                            echo "unable to write output file\n";
                        }
                        else if(curl_error($ch))
                          echo 'http error: "' . curl_error($ch) . "\"\n";
                        else
                        {
                          echo "$data\n";
                          if($data != 'wrong captcha') break;
                        }
                        
                        if($use_captchatrader)
                        {
                          $respond = captchatrader_respond(CAPTCHATRADER_USERNAME, CAPTCHATRADER_PASSWORD, is_array($data), $submit[0]);
                          if(is_array($respond))
                          {
                            if($respond[0] == 0)
                              echo "captcha response ok\n";
                            else
                            {
                              echo "unable to respond to captcha: \"{$respond[1]}\"\n";
                              //break;
                            }
                          }
                          else
                          {
                            echo "http error while responding to captcha: \"$respond\"\n";
                            //break;
                          }
                        }
                        
                        if(!is_array($data) && $data == 'wrong captcha' && RETRY_BAD)
                          echo "retrying\n";
                        else
                          break;
                      }
                      else if(curl_error($ch))
                        echo 'http error: "' . curl_error($ch) . "\"\n";
                      else
                        echo "unable to create captcha file\n";
                    }
                  }
                }
                else
                  echo "output file is not writeable\n";
              }
              else
                echo "unable to load psc codes input file\n";
            }
            else
              echo "psc codes input file not found\n";
          }
          
          curl_close($ch);
        }
        else
          echo "unable to create curl handle (2)\n";
      }
      else if($error)
        echo "unable to get curl cookie: \"$error\"\n";
      else
        echo "unable to create curl handle (1)\n";
    ?>

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Captcha
    Von VVoLv3r!n3 im Forum PHP
    Antworten: 7
    Letzter Beitrag: 04.06.2009, 19:14
  2. [S]OCR für bestimmtest Captcha !
    Von admiralkirk im Forum Anwendungssoftware
    Antworten: 0
    Letzter Beitrag: 30.01.2009, 10:18
  3. C / C++ Captcha
    Von wolf im Forum C, C++
    Antworten: 0
    Letzter Beitrag: 09.11.2008, 21:53
  4. Captcha für Mailer
    Von till7 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 29.10.2008, 23:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •