zoukankan      html  css  js  c++  java
  • 03.调用js执行代码

      简单的js破解:通过python代码轻松实现

      复杂的js破解:代码不容易重写,使用程序直接调用js运行获取结果

    1. 两种常见js重写

    • base64
      • 特征:如果数据以==结尾,应该最先想到base64 
      • 对应python中的库:Base64 
    • md5
      • 特征:如果数据是32位数字字母,应该想到md5  
      • 对应python库:hashlib

    2. 复杂的js运行

    • 使用python调用js方式
      • PyV8
        • 给予谷歌v8引擎, 最新版本是2010年的,不推荐使用  
      • Js2Py
        • 纯python实现的解释器
        • 性能不高,存在bug
        • 对于大型高度混淆js会发生转化失败  
      • PyExecJs
        • 用的比较多,多个引擎可选,推荐node.js,效率高
        • # 安装
          # pip install pyexecjs
          
          # 测验使用
          import execjs
          # print(execjs.get().name)
          
          # 简单示例
          # jstext = """
          # function add(a, b){return a+b;}
          # """
          #
          # ctx = execjs.compile(jstext)
          # sum = ctx.call('add',1,2)
          # print(sum)
            
      • PyminiRacer
      • Selenium
      • Pyppeteer
        • 原生支持协程
        • 性能比selenium更高
        • 需要用到asyncio语法
    • 一种性能更高的调用方式
      • nodejs + express 搭建api服务
        • nodejs安装 https://www.jianshu.com/p/d68e461f585c  
        • npm命令
          • npm install express@3.21.2 -g : npm安装指定版本的包 -g: 全局安装
          • cnpm install express@4.16.1 --save  : 用淘宝npm安装包
          • npm list -g --depth 0  : npm查看已安装的包
          • npm list 当前项目需要的包
        • express 安装 https://www.cnblogs.com/lpxj-blog/p/10651728.html
          • express 找不到该命令的问题: npm install -g express-generator  安装这个工具
          • npm install  nodemon -g  :  更改代码不用重启项目
          • 创建一个项目文件夹, 在文件夹中输入 express -e projectname 创建项目, 将package.json文件中启动命令的 node替换成nodemon
          • npm start 运行项目
          • 在浏览器中访问127.0.0.1:3000
          • 在入口文件 www文件中 可以通过 var port 变量修改端口号
        • 用nodejs执行我们扣下来的js代码容易遇到的问题和解决方案:
          • window对象:
            • nodejs中没有window对象,如果要使用window对象要创建一个window对象指向global
            • 利用jsdom之类的库
          • Base64:
            • window.btoa在nodejs中不存在
            • 用 Buffer.from('aoying').toString('base64')
    • 到底选择那种调用方式比较好
    • 使用非浏览器存在的问题,解决办法

        

  • 相关阅读:
    电商工具 谷歌插件 版本 2021-03-04
    PowerDesigner 自定义脚本
    MapReduce案例之寻找共同好友
    Hadoop之MapReduce开发总结
    python之文件操作
    python字典、集合
    python元组
    python列表练习
    python之列表
    python之编码解码、字符串常用方法
  • 原文地址:https://www.cnblogs.com/zhangjian0092/p/12243812.html
Copyright © 2011-2022 走看看