小红书旋转验证码打码(验证码识别训练)

旋转图片验证码防御能力到底有多高、人机校验现巨大漏洞?旋转图片验证码(识别/破解)解决(一)

旋转图片验证码,一个为防止爬虫攻击的行为验证产品。小红书的旋转验证码图库非常庞大,而且每个月更新图库,使破解和模型增加了难度。

这些产品有很多共同点,它们的目标都是为了防止爬虫攻击,防止一些恶意的程序来爬取网站数据,或者恶意注册等等,它们都统称为人机校验程序。

那么问题来了,旋转图片验证码到底如何破解呢?

第一步,我们先采集小红书的验证码图片

代码如图

使用的是autojs的代码,如果有不懂的可以联系我:mkk2328

function 截图保存验证码(){

    requestScreenCapture()

    tutu_flag = 0
    yzm = 0
    相同个数 = 0
    if(files.createWithDirs("/sdcard/缓存/验证码信息.txt")){
        files.write("/sdcard/缓存/验证码信息.txt", "");
    }

    if(files.createWithDirs("/sdcard/缓存图片/验证码信息.txt")){
        files.write("/sdcard/缓存图片/验证码信息.txt", "");
    }
    
    while(1){
    
        var confirm = text("刷新").visibleToUser(true).findOne(100);
        if (confirm) {
            print("====点击刷新=====")
            click(confirm.bounds().centerX(), confirm.bounds().centerY());
            sleep(2000)
        }
    
        while(1){
    
            var confirm = text("加载中").visibleToUser(true).findOne(50);
            if (confirm) {
                print("在加载中")
                sleep(3000)
            }else{
                sleep(2000)
                break
            }
            sleep(1000)

        }
        var confirm = textContains("当前网络不佳").visibleToUser(true).findOne(50);
        if (confirm) {
            
            click(confirm.bounds().centerX(), confirm.bounds().centerY());
            sleep(2000)
        }
    
        var img = captureScreen();
        var aa = images.clip(img, 275,694,528,525)
       // var aa = images.clip(img, 276,690,530,531)
        sleep(1000)
        
        var stop = textContains("center_").findOne(1000)
        if (stop != null) {
            print("中心id = " + stop.text())
            
            var arr = files.listDir("/sdcard/缓存图片/");
            log(arr.length);

            
            for (let index = 0; index < arr.length; index++) {
                if(stop.text() == arr[index].split(".")[0]){
                    print("有重复图片,不保存")
                    tutu_flag = 1
                    相同个数 = 相同个数 + 1
                    break
                }
            }

            print("开始保存图片")
            images.saveImage(aa, "/sdcard/缓存图片/"+ stop.text() + ".png");


            if(tutu_flag == 0){

                files.append("/sdcard/缓存/验证码信息.txt", stop.text() + "----0----0"  );
            }

            yzm = yzm + 1
            print("验证码个数 = " + yzm + ",相同个数 = " + 相同个数)
            tutu_flag = 0
        }

        print("结束")

    }
}

第二步,开始对验证码进行训练,手动对每个验证码进行角度记录

第三步,开始推算出每个验证码的区别和相似度

这个明天开始写,今天开始休息。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值