zoukankan      html  css  js  c++  java
  • python反爬之js混淆-字符串映射

    今天偶然看到个国外的代理网站(具体哪个保密),它的端口是做了映射的,虽然不难,但是看起来很有意思

    浏览器打开是这样:

    网站源码是这样:

    document.write(":"+(Six9FiveNine^FiveFiveFour)+(EightZeroTwoFour^One2One)+(Six9FiveNine^FiveFiveFour)+(EightZeroTwoFour^One2One))

    看起来是不是有点意思,而且那些什么Six9FiveNine的,这不就是小学的英语吗,然后【^】不就是位运算里的位异或吗,看起来很简单的样子,我另开一个新标签页,执行看看:

    看来要补齐那些看起来数字英语了,在网站源码里搜索,

    找到了以下字段,复制这段代码在控制台,然后再运行看看,

    8080,出来了,跟最开始的源码对上了,

    以下是源码:

    eval(function(p, r, o, x, y, s) {
                    y = function(c) {
                        return (c < r ? '' : y(parseInt(c / r))) + ((c = c % r) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
                    }
                    ;
                    if (!''.replace(/^/, String)) {
                        while (o--) {
                            s[y(o)] = x[o] || y(o)
                        }
                        x = [function(y) {
                            return s[y]
                        }
                        ];
                        y = function() {
                            return '\w+'
                        }
                        ;
                        o = 1
                    }
                    ;while (o--) {
                        if (x[o]) {
                            p = p.replace(new RegExp('\b' + y(o) + '\b','g'), x[o])
                        }
                    }
                    return p
                }('n=8;c=D^C;r=7;k=2;t=B^E;p=9;a=F^A;e=G^I;h=1;s=6;l=5;d=4;f=0;g=y^u;b=3;o=w^z;i=x^v;m=H^L;q=U^T;j=S^W;J=f^j;X=h^i;K=k^g;M=b^a;N=d^e;P=l^m;Q=s^t;O=r^q;R=n^o;V=p^c;', 60, 60, '^^^^^^^^^^Six8Seven^Nine^SevenEightZero^Three^FourSevenNine^One^Three5Two^Six^Three7Five^One2One^Seven^Eight^Zero7Six^Zero^FiveFiveFour^Two^Zero4Eight^Five^Four^FiveSixThree^443^3127^7134^6491^2476^1080^6588^7342^8088^11944^1337^4125^3679^1941^8909^EightZeroTwoFour^One6OneSix^8118^Five7FourTwo^OneZeroNineOne^FiveSixSixSeven^EightFiveSevenThree^Zero1ZeroEight^Six9FiveNine^4130^8888^10791^TwoOneThreeZero^8090^TwoFourEightFive'.split('u005e'), 0, {}))
            

    而且上面这一套代码也不是固定不变的,我试了下,多刷几次还会有细微的变化,比如FourSevenNine这个,有时候会有新的值出现。我觉得这真的有意思。

    本篇文章不是以爬虫的角度去破解,而是针对反爬哈,所以这里就不去细抠里面啥意思了,其实我觉得你耐下心来看大概也可以看懂的,有朋友要说,卧槽,你这次咋不作破解了,咳咳,那啥,我现在可不是做爬虫的,我是做反爬的好吗,嘿嘿

  • 相关阅读:
    Android ListView 的布局图标大小设置
    Android BaseAdapter 类 重写模版
    Fabric 介绍
    CentOS yum安装mysql
    JavaStringBuffer类常用方法简介
    Java流的简单使用:读取文件、写入文件(面试题:删除注释代码)
    Android数据库详解之二:数据库用法介绍
    JavaString类的方法及说明
    Android图像识别项目OpenCV(1):技术选型以及NDK搭建
    JDK(6u25)安装及相关知识
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/14637186.html
Copyright © 2011-2022 走看看