PHP Developers Network

A community of PHP developers offering assistance, advice, discussion, and friendship.
 
Loading
It is currently Tue Dec 01, 2020 7:22 am

All times are UTC - 5 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Wed Jan 13, 2016 11:48 am 
Offline
Forum Commoner
User avatar

Joined: Thu Jul 03, 2014 12:35 pm
Posts: 65
Location: Indonesian
Hi...
i try login to:
Syntax: [ Download ] [ Hide ]
https://agent.lionair.co.id/LionAirAgentsPortal/Default.aspx

but.. this page have a captcha..
so how i can bypass this captcha ?
captcha genrate from this url:
Syntax: [ Download ] [ Hide ]
https://agent.lionair.co.id/lionairagentsportal/CaptchaGenerator.aspx

i try using this php code, but not work:
Syntax: [ Download ] [ Hide ]
                function  imageconverttruecolor(&$image)
                {
                        $width = imagesx($image);
                        $height = imagesy($image);    
                        $final = imagecreatetruecolor($width, $height);
                        imagecopy($final, $image, 0, 0, 0, 0, $width, $height);
                        imagedestroy($image);   $image = $final;
                }

                // load images

                $background = imagecreatefrompng(asset('dist/img/captcha')."/captcha.png");
                $lettersimg = imagecreatefrompng(asset('dist/img/captcha')."/letters.png");
                $captcha = imagecreatefrompng("https://agent.lionair.co.id/lionairagentsportal/CaptchaGenerator.aspx");
                imageconverttruecolor($background);imageconverttruecolor($lettersimg);
                imageconverttruecolor($captcha);
                // first parse - difference test and pixel save
                $pixels = array();
                for($x = 0; $x < imagesx($captcha); $x++)
                {    
                        for($y = 0; $y < imagesy($captcha); $y++)
                        {      
                                $src = imagecolorat($background, $x, $y);      
                                $dst = imagecolorat($captcha, $x, $y);      
                                if(!($src == 0 && $dst == 0) && ($src == $dst))          
                                $pixels[$x][$y] = 0xFFFFFF;        
                                else $pixels[$x][$y] = 0x000000;          
                        }
                }
                imagedestroy($background);

                // second parse - filter out pixel noise

                for($p = 0; $p < 3; $p++)
                {
                        // 3 noise parses
                        for($x = 0; $x <  imagesx($captcha); $x++)
                        {      
                                for($y = 0; $y < imagesy($captcha); $y++)
                                {          
                                        $filterpixel = true;            
                                        if(!$pixels[$x-1][$y-1] && !$pixels[$x+0][$y-1] && !$pixels[$x+1][$y-1])
                                        $filterpixel = false;
                                        // top          
                                        if(!$pixels[$x+1][$y-1] && !$pixels[$x+1][$y+0] && !$pixels[$x+1][$y+1])
                                        $filterpixel = false;
                                        // right        
                                        if(!$pixels[$x-1][$y+1] && !$pixels[$x+0][$y+1] && !$pixels[$x+1][$y+1])
                                        $filterpixel = false;
                                        // bottom            
                                        if(!$pixels[$x-1][$y-1] && !$pixels[$x-1][$y+0] && !$pixels[$x-1][$y+1])
                                        $filterpixel = false;
                                        // left          
                                        if($filterpixel) $pixels[$x][$y] = 0xFFFFFF;        
                                }  
                        }
                }
                for($x = 0; $x < imagesx($captcha); $x++)
                {
                        $pixels[$x][0] = 0xFFFFFF;  
                        $pixels[$x][1] = 0xFFFFFF;  
                        $pixels[$x][imagesy($captcha) - 1] = 0xFFFFFF;  
                        $pixels[$x][imagesy($captcha) - 2] = 0xFFFFFF;
                }
                for($y = 0; $y < imagesy($captcha); $y++)
                {    
                        $pixels[0][$y] = 0xFFFFFF;  $pixels[1][$y] = 0xFFFFFF;  
                        $pixels[imagesx($captcha) - 1][$y] = 0xFFFFFF;  
                        $pixels[imagesx($captcha) - 2][$y] = 0xFFFFFF;
                }
                for($x = 50; $x < 54; $x++)
                {  
                        for($y = 2; $y < 5; $y++)
                        {      
                                $pixels[$x][$y] = 0xFFFFFF;
                        }
                }
                // third parse - rebuild image (just for show)
                for($x = 0; $x < imagesx($captcha); $x++)
                {  
                        for($y = 0; $y < imagesy($captcha); $y++)
                        {      
                                imagesetpixel($captcha, $x, $y, 0xFFFFFF);      
                                if(($x % 3) == 0 && ($y % 3) == 0 && $pixels[$x][$y] == 0)
                                {        
                                        imagesetpixel($captcha, $x, $y, 0xFF0000);      
                                }  
                        }
                }
                // fourth parse - basic ocr (slow) <img src="./images/smilies/icon_sad.gif" alt=":-(" title="Sad" />
                $letters = 'ABCE';
                $ocr = '';
                for($x1 = 0; $x1 < imagesx($captcha) - 25; $x1++)
                {  
                        for($y1 = 0; $y1 < imagesy($captcha) - 27; $y1++)
                        {      
                                $score = array();      
                                for($letter = 0; $letter < 4; $letter++)
                                {            
                                        for($x2 = 0; $x2 <  25; $x2++)
                                        {              
                                                for($y2 = 0; $y2 < 27; $y2++)
                                                {                  
                                                        $color = imagecolorat($lettersimg, ($letter * 25) + $x2, $y2);                  
                                                        if($pixels[$x1 + $x2][$y1 + $y2] == $color && $color == 0)
                                                        $score[$letter][0]++;                    
                                                        if($color == 0) $score[$letter][1]++;              
                                                }          
                                        }      
                                }      
                                $found = -1; $highest = 0;      
                                for($letter = 0; $letter < 4; $letter++)
                                {            
                                        $result = (($score[$letter][1] / 100) * 90);          
                                        if($score[$letter][0] >= $result)
                                        {              
                                                $result = ($score[$letter][0] - $result);              
                                                if($result > $highest)
                                                {                  
                                                        $highest = $result;                
                                                        $found = $letter;              
                                                }          
                                        }      
                                }      
                                if($found > -1)
                                {        
                                        $ocr .= $letters[$found];          
                                        $x1  += 10;    
                                }      
                                unset($score);  
                        }
                }
                imagedestroy($lettersimg);unset($pixels);
                // last of all output
                header('Content-Type: image/png');
                imagestring($captcha, 2, 0, 0, $ocr, 0);
                imagepng($captcha);
                imagedestroy($captcha);
 

......
if u can solved this problem, please PM me, this serious...

_________________
Newbie The Passion for Learning


Top
 Profile  
 
PostPosted: Wed Jan 13, 2016 12:45 pm 
Offline
Site Administrator
User avatar

Joined: Wed Aug 25, 2004 7:54 pm
Posts: 13592
Location: New York, NY, US
Obviously lionair.co.id does not want scripts like this logging into their system. Depending on the jurisdiction, this may not be legal. Have you contacted lionair.co.id to see if they have an API that allows the access you want.

_________________
(#10850)


Top
 Profile  
 
PostPosted: Wed Jan 13, 2016 12:48 pm 
Offline
Forum Commoner
User avatar

Joined: Thu Jul 03, 2014 12:35 pm
Posts: 65
Location: Indonesian

_________________
Newbie The Passion for Learning


Top
 Profile  
 
PostPosted: Wed Jan 13, 2016 1:32 pm 
Offline
Moderator
User avatar

Joined: Tue Nov 09, 2010 3:39 pm
Posts: 6425
Location: Montreal, Canada
I'm sure there are ways around it but, as Christopher mentioned, it's there for a reason. A CAPTCHA and no API is a pretty good indicator that they don't want you doing whatever it is you're trying to do.

_________________


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: Google [Bot] and 25 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group