Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak pobrać do picturebox'a captche z strony?


Rekomendowane odpowiedzi

Opublikowano

Nwm czy tępy jestem czy co, no ale...

Konta nadal nie tworzy... cały czas próbuje coś z cookie(Bo może o to chodzi..)

Z cookie to chyba wszystko próbowałem

 

Gdy uruchamiam program to w Fiddler otrzymuje to:

http://screenshot.sh/m3A5Sae3QtaDb

http://screenshot.sh/m1O5IPKGvwSQZ

http://screenshot.sh/mGEitUuEzsDkp

 

Tutaj jest kod:

 

 

using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Windows.Forms;
 
namespace ZOBot
{
    public partial class Form2 : Form
    {
        string filePath;
        string data;
        string pattern = @"<img id=""captcha-image"" src=""(.*)""/>";
        string email, name, password, captcha;
 
        Match m;
        Uri target;
        HttpWebRequest acc, acc2;
        HttpWebRequest captchaPic;
        CookieContainer gaCookies;
 
        const int HT_CAPTION = 0x2;
        const int WM_NCLBUTTONDOWN = 0xA1;
 
        [DllImportAttribute("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        [DllImportAttribute("user32.dll")]
        public static extern bool ReleaseCapture();
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void label3_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void label1_MouseEnter(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void label1_MouseLeave(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Brown;
        }
 
        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.LightCoral;
        }
 
        private void label1_MouseUp(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void panel5_MouseEnter(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void panel5_MouseLeave(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Brown;
        }
 
        private void panel5_MouseDown(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.LightCoral;
        }
 
        private void panel5_MouseUp(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void panel5_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void label2_MouseDown(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.CornflowerBlue;
        }
 
        private void label2_MouseEnter(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void label2_MouseLeave(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MediumBlue;
        }
 
        private void label2_MouseUp(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void label2_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }
 
        private void panel6_MouseDown(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.CornflowerBlue;
        }
 
        private void panel6_MouseEnter(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void panel6_MouseLeave(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MediumBlue;
        }
 
        private void panel6_MouseUp(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void panel6_Click(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.WindowState = FormWindowState.Normal;
            }
            else
            {
                this.WindowState = FormWindowState.Minimized;
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = filePath = saveFileDialog1.FileName;
                listBox1.Items.Add("Ścieżka zapisu pliku: " + filePath);
                button1.Enabled = true;
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            target = new Uri("http://zapytaj.onet.pl/register.html#register-email-form");
            acc2 = (HttpWebRequest)WebRequest.Create(target);
            acc2.CookieContainer = gaCookies;
            acc2.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            acc2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            acc2.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            acc2.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            acc2.Referer = "http://zapytaj.onet.pl/register.html";
            acc2.Headers.Add("Upgrade-Insecure-Requests", "1");
            acc2.ContentType = "application/x-www-form-urlencoded";
            acc2.Method = "POST";
 
            email = HttpUtility.UrlEncode("@@@@");
            name = HttpUtility.UrlEncode("@@@@");
            password = HttpUtility.UrlEncode("@@@@");
            captcha = HttpUtility.UrlEncode(textBox2.Text);
 
            byte[] buffer =
                    Encoding.UTF8.GetBytes(
                        string.Format(
                            "register%5Bemail%5D={0}&register%5Bnick%5D={1}&register%5Bpassword%5D={2}&register%5Brepeat_password%5D={3}&captcha_code={4}&register%5Brules_accepted%5D=1&register%5Bpromo_email_accepted%5D=1&register%5Brules_changed%5D=1&_ws=&_p=&_f=&_c=",
                            email, name, password, password, captcha));
 
            MessageBox.Show(email);
 
            acc2.ContentLength = buffer.Length;
 
            var stream = acc2.GetRequestStream();
            stream.Write(buffer, 0, buffer.Length);
            stream.Close();
 
            var response = acc2.GetResponse() as HttpWebResponse;
 
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
 
                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }
 
                data = readStream.ReadToEnd();
                Clipboard.SetText(data);
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            button5.Enabled = true;
            button1.Enabled = false;
 
            timer1.Start();
 
            gaCookies = new CookieContainer();
            target = new Uri("http://zapytaj.onet.pl/register.html#register-email-form");
            acc = (HttpWebRequest)WebRequest.Create(target);
 
            acc.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            acc.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            acc.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            acc.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            acc.Headers.Add("Upgrade-Insecure-Requests", "1");
            acc.ContentType = "text/html";
            acc.Method = "GET";
            acc.CookieContainer = new CookieContainer();
 
            HttpWebResponse response = (HttpWebResponse)acc.GetResponse();
 
            if (response.StatusCode == HttpStatusCode.OK)
            {
                foreach (Cookie cookie in response.Cookies)
                {
                    gaCookies.Add(cookie);
                    MessageBox.Show(cookie.ToString());
                }
 
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
 
                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }
 
                data = readStream.ReadToEnd();
                m = Regex.Match(data, pattern);
                button4.Enabled = true;
                getCaptcha();
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            button5.Enabled = false;
            button1.Enabled = true;
 
            timer1.Stop();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
 
        }
 
        public void getCaptcha()
        {
            captchaPic = (HttpWebRequest)WebRequest.Create("http://zapytaj.onet.pl" + m.Groups[1].Value);
            captchaPic.CookieContainer = gaCookies;
            captchaPic.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            captchaPic.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            captchaPic.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            captchaPic.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            captchaPic.Referer = "http://zapytaj.onet.pl/register.html";
            captchaPic.Headers.Add("Upgrade-Insecure-Requests", "1");
            captchaPic.Method = "GET";
            captchaPic.ContentType = "image/png";
 
            String lsResponse = string.Empty;
            using (HttpWebResponse lxResponse = captchaPic.GetResponse() as HttpWebResponse)
            {
                foreach (Cookie cookie in lxResponse.Cookies)
                {
                    MessageBox.Show(cookie.ToString());
                }
 
                using (BinaryReader reader = new BinaryReader(lxResponse.GetResponseStream()))
                {
                    Byte[] lnByte = reader.ReadBytes(1 * 1024 * 1024 * 10);
                    using (FileStream lxFS = new FileStream(Directory.GetCurrentDirectory() + @"\img\captcha.png", FileMode.Create))
                    {
                        lxFS.Write(lnByte, 0, lnByte.Length);
                    }
                }
            }
 
            pictureBox2.BackgroundImage = Image.FromFile(Directory.GetCurrentDirectory() + @"\img\captcha.png");
        }
    }
}

 

 

Gość 67d64b62d9
Opublikowano

Nwm czy tępy jestem czy co, no ale...

Konta nadal nie tworzy... cały czas próbuje coś z cookie(Bo może o to chodzi..)

Z cookie to chyba wszystko próbowałem

 

Gdy uruchamiam program to w Fiddler otrzymuje to:

http://screenshot.sh/m3A5Sae3QtaDb

http://screenshot.sh/m1O5IPKGvwSQZ

http://screenshot.sh/mGEitUuEzsDkp

 

Tutaj jest kod:

 

 

using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Windows.Forms;
 
namespace ZOBot
{
    public partial class Form2 : Form
    {
        string filePath;
        string data;
        string pattern = @"<img id=""captcha-image"" src=""(.*)""/>";
        string email, name, password, captcha;
 
        Match m;
        Uri target;
        HttpWebRequest acc, acc2;
        HttpWebRequest captchaPic;
        CookieContainer gaCookies;
 
        const int HT_CAPTION = 0x2;
        const int WM_NCLBUTTONDOWN = 0xA1;
 
        [DllImportAttribute("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        [DllImportAttribute("user32.dll")]
        public static extern bool ReleaseCapture();
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void label3_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }
 
        private void label1_MouseEnter(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void label1_MouseLeave(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Brown;
        }
 
        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.LightCoral;
        }
 
        private void label1_MouseUp(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void panel5_MouseEnter(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void panel5_MouseLeave(object sender, EventArgs e)
        {
            panel5.BackColor = Color.Brown;
        }
 
        private void panel5_MouseDown(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.LightCoral;
        }
 
        private void panel5_MouseUp(object sender, MouseEventArgs e)
        {
            panel5.BackColor = Color.Red;
        }
 
        private void panel5_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void label2_MouseDown(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.CornflowerBlue;
        }
 
        private void label2_MouseEnter(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void label2_MouseLeave(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MediumBlue;
        }
 
        private void label2_MouseUp(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void label2_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }
 
        private void panel6_MouseDown(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.CornflowerBlue;
        }
 
        private void panel6_MouseEnter(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void panel6_MouseLeave(object sender, EventArgs e)
        {
            panel6.BackColor = Color.MediumBlue;
        }
 
        private void panel6_MouseUp(object sender, MouseEventArgs e)
        {
            panel6.BackColor = Color.MidnightBlue;
        }
 
        private void panel6_Click(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.WindowState = FormWindowState.Normal;
            }
            else
            {
                this.WindowState = FormWindowState.Minimized;
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = filePath = saveFileDialog1.FileName;
                listBox1.Items.Add("Ścieżka zapisu pliku: " + filePath);
                button1.Enabled = true;
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            target = new Uri("http://zapytaj.onet.pl/register.html#register-email-form");
            acc2 = (HttpWebRequest)WebRequest.Create(target);
            acc2.CookieContainer = gaCookies;
            acc2.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            acc2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            acc2.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            acc2.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            acc2.Referer = "http://zapytaj.onet.pl/register.html";
            acc2.Headers.Add("Upgrade-Insecure-Requests", "1");
            acc2.ContentType = "application/x-www-form-urlencoded";
            acc2.Method = "POST";
 
            email = HttpUtility.UrlEncode("@@@@");
            name = HttpUtility.UrlEncode("@@@@");
            password = HttpUtility.UrlEncode("@@@@");
            captcha = HttpUtility.UrlEncode(textBox2.Text);
 
            byte[] buffer =
                    Encoding.UTF8.GetBytes(
                        string.Format(
                            "register%5Bemail%5D={0}&register%5Bnick%5D={1}&register%5Bpassword%5D={2}&register%5Brepeat_password%5D={3}&captcha_code={4}&register%5Brules_accepted%5D=1&register%5Bpromo_email_accepted%5D=1&register%5Brules_changed%5D=1&_ws=&_p=&_f=&_c=",
                            email, name, password, password, captcha));
 
            MessageBox.Show(email);
 
            acc2.ContentLength = buffer.Length;
 
            var stream = acc2.GetRequestStream();
            stream.Write(buffer, 0, buffer.Length);
            stream.Close();
 
            var response = acc2.GetResponse() as HttpWebResponse;
 
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
 
                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }
 
                data = readStream.ReadToEnd();
                Clipboard.SetText(data);
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            button5.Enabled = true;
            button1.Enabled = false;
 
            timer1.Start();
 
            gaCookies = new CookieContainer();
            target = new Uri("http://zapytaj.onet.pl/register.html#register-email-form");
            acc = (HttpWebRequest)WebRequest.Create(target);
 
            acc.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            acc.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            acc.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            acc.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            acc.Headers.Add("Upgrade-Insecure-Requests", "1");
            acc.ContentType = "text/html";
            acc.Method = "GET";
            acc.CookieContainer = new CookieContainer();
 
            HttpWebResponse response = (HttpWebResponse)acc.GetResponse();
 
            if (response.StatusCode == HttpStatusCode.OK)
            {
                foreach (Cookie cookie in response.Cookies)
                {
                    gaCookies.Add(cookie);
                    MessageBox.Show(cookie.ToString());
                }
 
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
 
                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }
 
                data = readStream.ReadToEnd();
                m = Regex.Match(data, pattern);
                button4.Enabled = true;
                getCaptcha();
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            button5.Enabled = false;
            button1.Enabled = true;
 
            timer1.Stop();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
 
        }
 
        public void getCaptcha()
        {
            captchaPic = (HttpWebRequest)WebRequest.Create("http://zapytaj.onet.pl" + m.Groups[1].Value);
            captchaPic.CookieContainer = gaCookies;
            captchaPic.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            captchaPic.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            captchaPic.Headers.Add("Accept-Language", "en-US,en;q=0.5");
            captchaPic.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            captchaPic.Referer = "http://zapytaj.onet.pl/register.html";
            captchaPic.Headers.Add("Upgrade-Insecure-Requests", "1");
            captchaPic.Method = "GET";
            captchaPic.ContentType = "image/png";
 
            String lsResponse = string.Empty;
            using (HttpWebResponse lxResponse = captchaPic.GetResponse() as HttpWebResponse)
            {
                foreach (Cookie cookie in lxResponse.Cookies)
                {
                    MessageBox.Show(cookie.ToString());
                }
 
                using (BinaryReader reader = new BinaryReader(lxResponse.GetResponseStream()))
                {
                    Byte[] lnByte = reader.ReadBytes(1 * 1024 * 1024 * 10);
                    using (FileStream lxFS = new FileStream(Directory.GetCurrentDirectory() + @"\img\captcha.png", FileMode.Create))
                    {
                        lxFS.Write(lnByte, 0, lnByte.Length);
                    }
                }
            }
 
            pictureBox2.BackgroundImage = Image.FromFile(Directory.GetCurrentDirectory() + @"\img\captcha.png");
        }
    }
}

 

 

Sam spróbuję napisać swoją implementację dzisiaj wieczorem jak wstanę i dam ci znać co wyszło.

Opublikowano

@up Dzięki

 

O ile się nie mylę to z tym antybot'em chodzi o to:

<script type="text/javascript">
	function _p() { return getPlugins().join(','); }

	function _ssuk(params) {
		$('#_ws').val(window.screen.width+'x'+window.screen.height+'x'+window.screen.colorDepth);
		$('#_f').val(params[0]);
		$('#_p').val(params[1]);
		$('#_c').val(params[2]);
	}
</script>
Gość 67d64b62d9
Opublikowano

@up Dzięki

 

O ile się nie mylę to z tym antybot'em chodzi o to:

<script type="text/javascript">
	function _p() { return getPlugins().join(','); }

	function _ssuk(params) {
		$('#_ws').val(window.screen.width+'x'+window.screen.height+'x'+window.screen.colorDepth);
		$('#_f').val(params[0]);
		$('#_p').val(params[1]);
		$('#_c').val(params[2]);
	}
</script>

tylko, że podzcas rejestrowania się w przeglądarce te parametry w moich żądaniach były puste i przechodziło normalnie, ale nie zaszkodzi jakbyś się wczytał gdzie jest wywoływana ta funkcja "_ssuk"

 

<embed src="/flash/ssuk.swf" type="application/x-shockwave-flash" wmode="transparent" width="1" height="1">
</embed>
</object>
<input type="hidden" id="_ws" name="_ws" value=""/>
<input type="hidden" id="_p" name="_p" value=""/>
<input type="hidden" id="_f" name="_f" value=""/>
<input type="hidden" id="_c" name="_c" value=""/>

<script type="text/javascript">
function _p() { return getPlugins().join(','); }
function _ssuk(params) { 
	$('#_ws').val(window.screen.width+'x'+window.screen.height+'x'+window.screen.colorDepth);
	$('#_f').val(params[0]);
	$('#_p').val(params[1]);
	$('#_c').val(params[2]);
}
</script>

będziesz pewnie też musiał zdekompilować ten plik flash

http://zapytaj.onet.pl/flash/ssuk.swf

// edit

 

@leszhack

może rozjaśnie bo już nie raz pokazałeś, że masz problemy z czytaniem cudzego kodu js (z całym szacunkiem)

 

w formularzu do rejestracji są cztery dodatkowe pola, które dołączone są do żądania, które przeglądarka wysyła przy rejestracji:

<input type="hidden" id="_ws" name="_ws" value=""/>
<input type="hidden" id="_p" name="_p" value=""/>
<input type="hidden" id="_f" name="_f" value=""/>
<input type="hidden" id="_c" name="_c" value=""/>

ten kod js je uzupełnia

<script type="text/javascript">
function _p() { return getPlugins().join(','); }
function _ssuk(params) { 
	$('#_ws').val(window.screen.width+'x'+window.screen.height+'x'+window.screen.colorDepth);
	$('#_f').val(params[0]);
	$('#_p').val(params[1]);
	$('#_c').val(params[2]);
}
</script>

funkcja _p zwraca wtyczki w twojej przeglądarce oddzielone przecinkiem w moim przypadku to:

4pL3iqs.png

 

funkcja _ssuk przyjmuje tablice jako input i uzupełnia te wszystkie ukryte pola

 

#_ws to rozdzielczość i głębia kolorów monitora czyli u mnie

hFGOuHF.png

 

#_f, #_p, #_c to kolejno elementy tablicy z wejścia, która jest jest otrzymywana z pliku swf

 

konkluzja: funkcje _p i _ssuk są wywołane z tego pliku flash natomiast jeszcze raz powtarzam, że u mnie te wszystkie pola były puste defaultowo więc będziesz musiał zrobić swój research

 

i kod tego pliku swf z dekompilera

class md5 {
    function md5(b64pad, chrsz) {
        if (b64pad != undefined) {
            this.b64pad = b64pad;
        }
        if (((chrsz != undefined) && (chrsz == 8)) || (chrsz == 16)) {
            this.chrsz = chrsz;
        }
    }

    function hash(s) {
        return (hex_md5(s));
    }

    function hex_md5(s) {
        return (binl2hex(core_md5(str2binl(s), s.length * chrsz)));
    }

    function b64_md5(s) {
        return (binl2b64(core_md5(str2binl(s), s.length * chrsz)));
    }

    function str_md5(s) {
        return (binl2str(core_md5(str2binl(s), s.length * chrsz)));
    }

    function hex_hmac_md5(key, data) {
        return (binl2hex(core_hmac_md5(key, data)));
    }

    function b64_hmac_md5(key, data) {
        return (binl2b64(core_hmac_md5(key, data)));
    }

    function str_hmac_md5(key, data) {
        return (binl2str(core_hmac_md5(key, data)));
    }

    function md5_cmn(q, a, b, x, s, t) {
        return (safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), );
    }

    function md5_ff(a, b, c, d, x, s, t) {
        return (md5_cmn((b & c) | ((~ & d), a, b, x, s, t));
    }

    function md5_gg(a, b, c, d, x, s, t) {
        return (md5_cmn((b & d) | (c & (~d)), a, b, x, s, t));
    }

    function md5_hh(a, b, c, d, x, s, t) {
        return (md5_cmn((b ^ c) ^ d, a, b, x, s, t));
    }

    function md5_ii(a, b, c, d, x, s, t) {
        return (md5_cmn(c ^ (b | (~d)), a, b, x, s, t));
    }

    function core_md5(x, len) {
        x[len >> 5] = x[len >> 5] | (128 << (len % 32));
        x[(((len + 64) >>> 9) << 4) + 14] = len;
        var _local5 = 1732584193 /* 0x67452301 */ ;
        var _local4 = -271733879;
        var _local3 = -1732584194;
        var _local2 = 271733878 /* 0x10325476 */ ;
        var _local6 = 0;
        while (_local6 < x.length) {
            var _local11 = _local5;
            var _local10 = _local4;
            var _local9 = _local3;
            var _local8 = _local2;
            _local5 = md5_ff(_local5, _local4, _local3, _local2, x[_local6 + 0], 7, -680876936);
            _local2 = md5_ff(_local2, _local5, _local4, _local3, x[_local6 + 1], 12, -389564586);
            _local3 = md5_ff(_local3, _local2, _local5, _local4, x[_local6 + 2], 17, 606105819);
            _local4 = md5_ff(_local4, _local3, _local2, _local5, x[_local6 + 3], 22, -1044525330);
            _local5 = md5_ff(_local5, _local4, _local3, _local2, x[_local6 + 4], 7, -176418897);
            _local2 = md5_ff(_local2, _local5, _local4, _local3, x[_local6 + 5], 12, 1200080426);
            _local3 = md5_ff(_local3, _local2, _local5, _local4, x[_local6 + 6], 17, -1473231341);
            _local4 = md5_ff(_local4, _local3, _local2, _local5, x[_local6 + 7], 22, -45705983);
            _local5 = md5_ff(_local5, _local4, _local3, _local2, x[_local6 + 8], 7, 1770035416);
            _local2 = md5_ff(_local2, _local5, _local4, _local3, x[_local6 + 9], 12, -1958414417);
            _local3 = md5_ff(_local3, _local2, _local5, _local4, x[_local6 + 10], 17, -42063);
            _local4 = md5_ff(_local4, _local3, _local2, _local5, x[_local6 + 11], 22, -1990404162);
            _local5 = md5_ff(_local5, _local4, _local3, _local2, x[_local6 + 12], 7, 1804603682);
            _local2 = md5_ff(_local2, _local5, _local4, _local3, x[_local6 + 13], 12, -40341101);
            _local3 = md5_ff(_local3, _local2, _local5, _local4, x[_local6 + 14], 17, -1502002290);
            _local4 = md5_ff(_local4, _local3, _local2, _local5, x[_local6 + 15], 22, 1236535329);
            _local5 = md5_gg(_local5, _local4, _local3, _local2, x[_local6 + 1], 5, -165796510);
            _local2 = md5_gg(_local2, _local5, _local4, _local3, x[_local6 + 6], 9, -1069501632);
            _local3 = md5_gg(_local3, _local2, _local5, _local4, x[_local6 + 11], 14, 643717713);
            _local4 = md5_gg(_local4, _local3, _local2, _local5, x[_local6 + 0], 20, -373897302);
            _local5 = md5_gg(_local5, _local4, _local3, _local2, x[_local6 + 5], 5, -701558691);
            _local2 = md5_gg(_local2, _local5, _local4, _local3, x[_local6 + 10], 9, 38016083);
            _local3 = md5_gg(_local3, _local2, _local5, _local4, x[_local6 + 15], 14, -660478335);
            _local4 = md5_gg(_local4, _local3, _local2, _local5, x[_local6 + 4], 20, -405537848);
            _local5 = md5_gg(_local5, _local4, _local3, _local2, x[_local6 + 9], 5, 568446438);
            _local2 = md5_gg(_local2, _local5, _local4, _local3, x[_local6 + 14], 9, -1019803690);
            _local3 = md5_gg(_local3, _local2, _local5, _local4, x[_local6 + 3], 14, -187363961);
            _local4 = md5_gg(_local4, _local3, _local2, _local5, x[_local6 + 8], 20, 1163531501);
            _local5 = md5_gg(_local5, _local4, _local3, _local2, x[_local6 + 13], 5, -1444681467);
            _local2 = md5_gg(_local2, _local5, _local4, _local3, x[_local6 + 2], 9, -51403784);
            _local3 = md5_gg(_local3, _local2, _local5, _local4, x[_local6 + 7], 14, 1735328473);
            _local4 = md5_gg(_local4, _local3, _local2, _local5, x[_local6 + 12], 20, -1926607734);
            _local5 = md5_hh(_local5, _local4, _local3, _local2, x[_local6 + 5], 4, -378558);
            _local2 = md5_hh(_local2, _local5, _local4, _local3, x[_local6 + 8], 11, -2022574463);
            _local3 = md5_hh(_local3, _local2, _local5, _local4, x[_local6 + 11], 16, 1839030562);
            _local4 = md5_hh(_local4, _local3, _local2, _local5, x[_local6 + 14], 23, -35309556);
            _local5 = md5_hh(_local5, _local4, _local3, _local2, x[_local6 + 1], 4, -1530992060);
            _local2 = md5_hh(_local2, _local5, _local4, _local3, x[_local6 + 4], 11, 1272893353);
            _local3 = md5_hh(_local3, _local2, _local5, _local4, x[_local6 + 7], 16, -155497632);
            _local4 = md5_hh(_local4, _local3, _local2, _local5, x[_local6 + 10], 23, -1094730640);
            _local5 = md5_hh(_local5, _local4, _local3, _local2, x[_local6 + 13], 4, 681279174);
            _local2 = md5_hh(_local2, _local5, _local4, _local3, x[_local6 + 0], 11, -358537222);
            _local3 = md5_hh(_local3, _local2, _local5, _local4, x[_local6 + 3], 16, -722521979);
            _local4 = md5_hh(_local4, _local3, _local2, _local5, x[_local6 + 6], 23, 76029189);
            _local5 = md5_hh(_local5, _local4, _local3, _local2, x[_local6 + 9], 4, -640364487);
            _local2 = md5_hh(_local2, _local5, _local4, _local3, x[_local6 + 12], 11, -421815835);
            _local3 = md5_hh(_local3, _local2, _local5, _local4, x[_local6 + 15], 16, 530742520);
            _local4 = md5_hh(_local4, _local3, _local2, _local5, x[_local6 + 2], 23, -995338651);
            _local5 = md5_ii(_local5, _local4, _local3, _local2, x[_local6 + 0], 6, -198630844);
            _local2 = md5_ii(_local2, _local5, _local4, _local3, x[_local6 + 7], 10, 1126891415);
            _local3 = md5_ii(_local3, _local2, _local5, _local4, x[_local6 + 14], 15, -1416354905);
            _local4 = md5_ii(_local4, _local3, _local2, _local5, x[_local6 + 5], 21, -57434055);
            _local5 = md5_ii(_local5, _local4, _local3, _local2, x[_local6 + 12], 6, 1700485571);
            _local2 = md5_ii(_local2, _local5, _local4, _local3, x[_local6 + 3], 10, -1894986606);
            _local3 = md5_ii(_local3, _local2, _local5, _local4, x[_local6 + 10], 15, -1051523);
            _local4 = md5_ii(_local4, _local3, _local2, _local5, x[_local6 + 1], 21, -2054922799);
            _local5 = md5_ii(_local5, _local4, _local3, _local2, x[_local6 + 8], 6, 1873313359);
            _local2 = md5_ii(_local2, _local5, _local4, _local3, x[_local6 + 15], 10, -30611744);
            _local3 = md5_ii(_local3, _local2, _local5, _local4, x[_local6 + 6], 15, -1560198380);
            _local4 = md5_ii(_local4, _local3, _local2, _local5, x[_local6 + 13], 21, 1309151649);
            _local5 = md5_ii(_local5, _local4, _local3, _local2, x[_local6 + 4], 6, -145523070);
            _local2 = md5_ii(_local2, _local5, _local4, _local3, x[_local6 + 11], 10, -1120210379);
            _local3 = md5_ii(_local3, _local2, _local5, _local4, x[_local6 + 2], 15, 718787259);
            _local4 = md5_ii(_local4, _local3, _local2, _local5, x[_local6 + 9], 21, -343485551);
            _local5 = safe_add(_local5, _local11);
            _local4 = safe_add(_local4, _local10);
            _local3 = safe_add(_local3, _local9);
            _local2 = safe_add(_local2, _local8);
            _local6 = _local6 + 16;
        }
        return (array(_local5, _local4, _local3, _local2));
    }

    function core_hmac_md5(key, data) {
        var _local3 = new array(str2binl(key));
        if (_local3.length > 16) {
            _local3 = core_md5(_local3, key.length * chrsz);
        }
        var _local4 = new array(16);
        var _local5 = new array(16);
        var _local2 = 0;
        while (_local2 < 16) {
            _local4[_local2] = _local3[_local2] ^ 909522486;
            _local5[_local2] = _local3[_local2] ^ 1549556828;
            _local2++;
        }
        var _local6 = new array(core_md5(_local4.concat(str2binl(data)), 512 + (data.length * chrsz)));
        return (core_md5(_local5.concat(_local6), 640));
    }

    function safe_add(x, y) {
        var _local1 = new number((x & 65535) + (y & 65535));
        var _local2 = new number(((x >> 16) + (y >> 16)) + (_local1 >> 16));
        return ((_local2 << 16) | (_local1 & 65535));
    }

    function bit_rol(num, cnt) {
        return ((num << cnt) | (num >>> (32 - cnt)));
    }

    function str2binl(str) {
        var _local4 = new array();
        var _local5 = (1 << chrsz) - 1;
        var _local2 = 0;
        while (_local2 < (str.length * chrsz)) {
            _local4[_local2 >> 5] = _local4[_local2 >> 5] | ((str.charcodeat(_local2 / chrsz) & _local5) << (_local2 % 32));
            _local2 = _local2 + chrsz;
        }
        return (_local4);
    }

    function binl2str(bin) {
        var _local4 = new string("");
        var _local5 = (1 << chrsz) - 1;
        var _local2 = 0;
        while (_local2 < (bin.length * 32)) {
            _local4 = _local4 + string.fromcharcode((bin[_local2 >> 5] >>> (_local2 % 32)) & _local5);
            _local2 = _local2 + chrsz;
        }
        return (_local4);
    }

    function binl2hex(binarray) {
        var _local3 = "0123456789abcdef";
        var _local4 = new string("");
        var _local1 = 0;
        while (_local1 < (binarray.length * 4)) {
            _local4 = _local4 + (_local3.charat((binarray[_local1 >> 2] >> (((_local1 % 4) * 8) + 4)) & 15) + _local3.charat((binarray[_local1 >> 2] >> ((_local1 % 4) * 8)) & 15));
            _local1++;
        }
        return (_local4);
    }

    function binl2b64(binarray) {
        var _local7 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
        var _local5 = new string("");
        var _local3 = 0;
        while (_local3 < (binarray.length * 4)) {
            var _local6 = ((((binarray[_local3 >> 2] >> (8 * (_local3 % 4))) & 255) << 16) | (((binarray[(_local3 + 1) >> 2] >> (8 * ((_local3 + 1) % 4))) & 255) << 8)) | ((binarray[(_local3 + 2) >> 2] >> (8 * ((_local3 + 2) % 4))) & 255);
            var _local2 = 0;
            while (_local2 < 4) {
                if (((_local3 * 8) + (_local2 * 6)) > (binarray.length * 32)) {
                    _local5 = _local5 + b64pad;
                } else {
                    _local5 = _local5 + _local7.charat((_local6 >> (6 * (3 - _local2))) & 63);
                }
                _local2++;
            }
            _local3 = _local3 + 3;
        }
        return (_local5);
    }
    var b64pad = new string("");
    var chrsz = new number(8);
}

var tracker = new tracker();
class tracker {
    var pluginsHash, fontsHash, checksumHash, md5Array, plugins, pluginsMD5, font_array, fontsMD5, checksumMD5;

    function tracker() {
        init();
    }

    function init() {
        pluginsHash = getPluginsHash();
        fontsHash = getFontsHash();
        checksumHash = getChecksum(pluginsHash, fontsHash);
        md5Array = [fontsHash, pluginsHash, checksumHash];
        flash.external.ExternalInterface.call("_ssuk", md5Array);
    }

    function getPluginsHash(str) {
        plugins = flash.external.ExternalInterface.call("_p");
        pluginsMD5 = new md5();
        return (pluginsMD5.hash(plugins.tostring()));
    }

    function getFontsHash() {
        font_array = textfield.getfontlist();
        font_array.sort();
        fontsMD5 = new md5();
        return (fontsMD5.hash(font_array.tostring()));
    }

    function getChecksum(pluginsHash, fontsHash) {
        checksumMD5 = new md5();
        return (checksumMD5.hash((fontsHash + pluginsHash) + "Sz4TaN"));
    }
}
Opublikowano

Hmm.. próbuję coś zrobić z tym antybot'em ale i tak cały czas to samo mi wyskakuje: "Wystąpił problem w założeniu konta"(Pewnie chodzi o ssuk.swf i parametry: _ws, _p, _f, _c)

 

Zgaduje, że ten kod ssuk'a będę musiał przerobić na c#?

 

Chyba, że chodzi o cookies(Z requesta):

 

Tak z przeglądarki:

Przed rejestracją: http://screenshot.sh/oAC0mDsvqRoGV

Po rejestracji: http://screenshot.sh/m1Psj22WpWpad

 

A tak z programu:

Przed rejestracją: Brak

Po rejestracji: http://screenshot.sh/mFBpE86ZPM1ud

Gość 67d64b62d9
Opublikowano

Hmm.. próbuję coś zrobić z tym antybot'em ale i tak cały czas to samo mi wyskakuje: "Wystąpił problem w założeniu konta"(Pewnie chodzi o ssuk.swf i parametry: _ws, _p, _f, _c)

 

Zgaduje, że ten kod ssuk'a będę musiał przerobić na c#?

 

Chyba, że chodzi o cookies(Z requesta):

 

Tak z przeglądarki:

Przed rejestracją: http://screenshot.sh/oAC0mDsvqRoGV

Po rejestracji: http://screenshot.sh/m1Psj22WpWpad

 

A tak z programu:

Przed rejestracją: Brak

Po rejestracji: http://screenshot.sh/mFBpE86ZPM1ud

jak to brak ciasteczek przed rejestracją? wykonaj jeden GET i sprawdź jeszcze raz, powinny być

i sprawdź to z poziomu C#, a nie z fiddlera

Opublikowano

Nie będę robił nowego tematu więc napisze tutaj :)

 

Mam problem z referer gdy go dodaje to w puźniejszych etapach dziwnie on mi się dodaje do linku, np:

"everyhour.win/tweetyreward.php?hash=VU6EQSQSFHJC15L9VEC9GGVZZ/index.php?easycaptcha=772&user=1Cqe7CanMprqZJ1BmQEAGxLfAfgzsZi1Zg"

Miejsce na czerwono to jest referer, który mi się dodaje.

 

Tutaj kod:

 

 

            client = new RestClient(target);
            client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            client.AddDefaultHeader("Accept-Language", "en-GB,en;q=0.5");
            client.AddDefaultHeader("Accept-Encoding", "gzip, deflate");
            client.AddDefaultHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
            client.CookieContainer = _cookies;

            req = new RestRequest("/index.php?bitcoinwallet=" + bitcoinwallet + "&ref=12wacxVTjzYwFVdfgniyXkAMgq2YU2dTpu", Method.GET);
            rep = client.Execute(req).Content;

            doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(rep);

            _getCaptcha();

            Console.Write("Captcha solve: ");
            captcha = Console.ReadLine();

            req = new RestRequest("/index.php?easycaptcha=" + captcha, Method.GET);

            rep = client.Execute(req).Content;
            doc.LoadHtml(rep);

            m = Regex.Match(rep, pattern);

            client.AddDefaultHeader("Referer", "http://tweetycoin.com/index.php?easycaptcha=" + captcha);
            client = new RestClient(m.Groups[1].Value);

            rep = client.Execute(req).Content;
            doc.LoadHtml(rep);

            m2 = Regex.Match(rep, pattern2);

            client.AddDefaultHeader("Referer", m.Groups[1].Value);
            client = new RestClient(m2.Groups[1].Value);

            rep = client.Execute(req).Content;
            doc.LoadHtml(rep);

            m2 = Regex.Match(rep, pattern2);

            client = new RestClient(m2.Groups[1].Value);

            rep = client.Execute(req).Content;
            doc.LoadHtml(rep);

 

 

 

A przy okazji .. przy następnej stronie referer się nie zmienia :(

Chyba, że muszę robić na nowych restclient, to by może coś pomogło?

 

Dodaje go tak:

client.AddDefaultHeader("Referer", "http://tweetycoin.com/index.php?easycaptcha=" + captcha);

Ponieważ inne sposoby mi nie dodają referer :(

 

Dzięki za każdą pomoc

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...