JS反爬介绍以及环境的搭建

目录

JS逆向简单介绍

JS逆向我们需要做的事情

环境搭建

用pyrhon执行js代码的方法

JS常用算法介绍

md5 线性散列算法

DES/AES 对称加密算法

RSA 非对称加密算法

bases64 伪加密算法


JS逆向简单介绍

  • js ‐‐> javascript
  • 反爬‐‐>爬取数据的过程中会碰到反爬技术
  • js反爬js逆向
  • js反爬对应的一种反反爬策略称之为js逆向

JS逆向我们需要做的事情

  1. 找到加密字段
  2. 借助加密字段找到在客服端(浏览器端)进行加密的代码(js调试,找到加密的位置)
  3. 运行加密代码(找到加密代码之后要用python执行js代码)
  4. 最后,把加密之后的密码和其他参数一起提交到服务器(通过python实现)

环境搭建

1node.js环境 建议下载xxx.msi的文件

2 、安装一个模块
pip install PyExecJs ‐i https://pypi.douban.com/simple
  • vscode可以用来执行js代码
  • vscode的安装:https://www.cnblogs.com/csji/p/13558221.html
  • vscode执行js代码的环境配置:https://www.jianshu.com/p/3c47770c118
tips vscode 不会自动默认保存 ( 执行 ) 修改之后的代码
如果需要自动保存的: settings‐‐> off 修改为 onFocusChange

用pyrhon执行js代码的方法

import execjs


def get_js(file_name, func_name, func_arges=None):
    """
    通过python来执行js代码的方法
    :param file_name:js文件的名字
    :param func_name:要执行的函数名字
    :param func_arges:方法传参
    :return:js运行的内容
    """
    with open(file_name, 'r', encoding='utf-8') as f:
        js_code = f.read()

    # 1、编译JS文件
    cjs = execjs.compile(js_code)

    # 2、执行js代码
    # print(cjs.call('demo', 'world'))
    return cjs.call(func_name, func_arges)


if __name__ == '__main__':
    print(get_js('./test.js', 'demo', 'world'))

 

JS常用算法介绍

md5线性散列算法

https://www.cmd5.com/
123456+2044
123456+2100
为了提高密码的安全 一般会在密码后面追加一个盐

DES/AES对称加密算法

a b c ‐‐> x y z
a‐‐x
b‐‐y
c‐‐z
encrypt() 加密
decrypt() 解密

RSA非对称加密算法

公钥和私钥是一对的
setPublicKey() 设置公钥

bases64伪加密算法

采用 64 个字符来表示任意的二进制数据 A‐Z a‐z 0‐9 + /

 


版权声明:本文为qq_51179608原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。