Обход капчи и Visual C++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SHOOTER, 15 Jan 2010.

  1. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    Здрасте, вобщем так: учюсь обходить капчу :D вот фрагмент HTML-странички с капчой....

    Code:
    <form name="mform" action="index.phtml" method="post" onSubmit="sF()">
     
    <input type=hidden name="s" value="Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4"><input type="hidden" name="s_post" value="cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx">
    <input type=hidden name="tip" value="CheckCode">
    <input type="hidden" name="tcurl" value=SomeRef>
    <input type="hidden" name="tcontinue" value="yes">
    <img id="CaptchaImg" width="150" height="47" border="0" align="left" src="/captcha.php?r=0&s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4"/>
    <input type="text" size="10" maxlength="10" value="" name="captcha" autocomplete="off" /><br><br><br>
    Введите цифры, которые вы видите на картинке.
    <br/>
    Если вы не видите изображения нажмите
    <a id="CaptchaLink" xonclick="wopen('/my/reg_code.phtml','code',380,160,'yes','yes',0);return false;" target="code" href="?image=1">here</a>
    <script> 
    jsLoader.require('{jQuery}jquery', function ()
    {	// обновить капчу, при клике на неё 
    	$("#CaptchaImg,#CaptchaLink")
    		.load(function (){ $(this).css('opacity', 1); })
    		.css('cursor', 'pointer')
    		.click(function ()
    		{
    			$RA($('#CaptchaImg').css('opacity', .3)[0], 'src', /\?r=\d/, '?r='+jsCore.getTimer());
    			return	false;
    		})
    	;
    });
    </script>
    <script language="JavaScript"> 
    <!--
    function sF()
    {
      document.forms.mform.elements.submit.value="Please wait...";
      document.forms.mform.elements.submit.disabled="true";
    }
    -->
    </script>
    <div class="tab40"><input name="submit" type="submit" value="Continue"></div>
    </form>

    Допустим, я успешно расшифровал картинку на капче. Как мне используя MS VisualStudio 2003 ---> C++ ---> wininet.h отослать серваку цифри из картинки капчи, допустим ето 123456?

    З.Ы. Сори если че не так, ето первая моя тема туД :rolleyes:
     
  2. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    ну имейте совесть... просмотров: 40, ответов: 0 =(((
     
  3. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    сделать пост или гет запрос к серверу.
     
  4. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    желательно поподробней чуть...


    интересует ссылка и параметры...

    З.Ы. можт нужна доп. инфа?
     
    #4 SHOOTER, 16 Jan 2010
    Last edited: 16 Jan 2010
  5. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    хм... http://www.daniweb.com/forums/thread43523.html# направление полета мысли получено? =)
    яб помог но Си не знаю... А так это все основа основ.
     
  6. -=chelovek=-

    -=chelovek=- Member

    Joined:
    3 Jul 2009
    Messages:
    133
    Likes Received:
    11
    Reputations:
    0
    что то вроде етого http://www.cyberforum.ru/cpp-builder/thread23615.html
     
  7. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    общую структуру Get-запроса я зню.... вопрос был о параметрах url-строки в конкретном случае....
     
  8. Dr1ver

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

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Для этого есть снифферы
     
  9. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    интересует какие параметры передавать... куда писать цифри из картинки? одним словом, что именно в конкретном случае сервер от меня хочет?

    тада как ето реализовать на другом язике? я уже для себя переведу на Си сам...
     
    #9 SHOOTER, 16 Jan 2010
    Last edited: 16 Jan 2010
  10. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    о, ет ближе к делу... скачял я какота навароченый сниффер.... ток не могу с ним разобратся.... подскажи линк на простой сниффер и как с ним работать, можт инфа есть?
     
  11. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    плагины для фф есть (tamper data к примеру. Там ничего сложного нет + русский он).
    ну может поможет: python пост запрос
    PHP:
    # -*- coding: utf-8 -*-
    import urllib,httplib

    data 
    = {"content":"import test; print test","language":"Python","title":"","poster":"","hold":""}
    params urllib.urlencode(data)
    headers = {"http-equiv""Content-Type"" content""text/html","charset":"utf8"}
    connection httplib.HTTPConnection("www.dpaste.com:80")
    connection.request("POST""/"params)
    otvet connection.getresponse()
    print 
    otvet.statusotvet.reason
    dataa 
    otvet.read()
    print 
    dataa
    connection
    .close()
     
  12. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    а что передаешь в "params"??? ;)
     
  13. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    data = {"content":"import test; print test","language":"Python","title":"","poster":"","hold":""}
     
  14. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    тебе проще сниффером поработать. Может там вообще гет запрос =)
     
  15. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    ок... а где расшифрованная капча 123456?
     
  16. Akum

    Akum New Member

    Joined:
    5 Jan 2010
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    А это на что?
    Code:
    <form name="mform" action="index.phtml" method="post" onSubmit="sF()">
    Так если знаешь почему не пишеш там же все в куске html что ты привел все есть!
     
  17. Akum

    Akum New Member

    Joined:
    5 Jan 2010
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    вот что должно предаваться РОST запросом:
    Code:
    s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4 
    s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx
    tip=CheckCode
    tcurl=SomeRef 
    tcontinue=yes 
    captcha=капча
    wininet.h - это я не знаю. Windows must die :D

    В с++ с использованием libcurl это все решается за минуту! :)
     
    #17 Akum, 16 Jan 2010
    Last edited: 16 Jan 2010
  18. Akum

    Akum New Member

    Joined:
    5 Jan 2010
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Вот на с++:
    Code:
    #include <iostream>
    #include <string.h>
    #include <curl/curl.h>
    
    using namespace std;
    
    static  int writer(char *data, size_t size, size_t nmemb,string *buffer)
    {
        int result = 0;
        if (buffer != NULL)
        {
            buffer->append(data, size * nmemb);
            result = size * nmemb;
        }
        return result;
    }
    
    int main()
    {
    
        CURL * curl;
        CURLcode result;
    
        curl_slist *slist = NULL;
        string buffer;
        curl_global_init(CURL_GLOBAL_ALL);
    
        curl = curl_easy_init();
    
        slist = curl_slist_append(slist, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        slist = curl_slist_append(slist, "Accept-Language: ru,en-us;q=0.7,en;q=0.3");
        slist = curl_slist_append(slist, "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7");
        slist = curl_slist_append(slist, "Keep-Alive: 300");
        slist = curl_slist_append(slist, "Connection: keep-alive");
    
        curl_easy_setopt(curl, CURLOPT_HEADER, 0);
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1);
        curl_easy_setopt(curl, CURLOPT_ENCODING, "gzip,deflate");
        curl_easy_setopt(curl, CURLOPT_COOKIELIST, "");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
        curl_easy_setopt(curl, CURLOPT_POST, 1);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4&s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx&tip=CheckCode&tcurl=SomeRef&tcontinue=yes&captcha=капча");
    
        curl_easy_setopt(curl, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist);
        curl_easy_setopt(curl, CURLOPT_REFERER, "тут url страници где находиться форма");
    
        curl_easy_setopt(curl, CURLOPT_URL, "тут URL страници обрабатывающий запрос!");
    
        result = curl_easy_perform(curl);
    
    //в buffer находиться страница ответа
    
        return 0;
    }
    
     
  19. SHOOTER

    SHOOTER New Member

    Joined:
    21 Sep 2009
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    Спасибки, интересовала ета строчка:

    Code:
       curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4&s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx&tip=CheckCode&tcurl=SomeRef&tcontinue=yes&captcha=капча");
    
    теперь попробую на wininet переписать...

    З.Ы. последовательность параметров которые я передаю имеет значение для сервака?
     
  20. Akum

    Akum New Member

    Joined:
    5 Jan 2010
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Вроде нет а там хз :D