• firefox 自写底层扩展,源码简介


    还记得2010年的时候,那时候开始喜欢上了js,经常逛MDN

    一开始写些简单的油猴脚本,慢慢的接触了扩展开发,发现用自己的js知识 加上firefox的插件API,可以完成好多功能。

    看了很多插件的源代码,集成很多插件功能,代码也是重构了好几个版本(基于FF功能,Components.utils.import封装了require模块加载,sqlite数据库操作,http拦截, 定时任务,Prefs操作等)

    也发现FF插件其实很不安全(可以拦截http请求进行修改,进行中间人攻击)

    不知不觉就写了2年。

    后来FF也有了一套api工具包,我也主要通过aauto写相关的桌面程序了,就再没有更新过

    特写这篇博文,记录下曾经写过的插件api功能

      github项目地址: https://github.com/legu2009/UserJS

      该插件为基础api包,通过overlay.xul,在chrome级别插入script结点引用

      简单介绍下文件夹和功能,时间太早了,有的一时也翔不起来了

    |-content //插件内容文件夹

      |-datebase

        DateBase.js//sqlite数据库操作

      |-img

        Canvas.js//获取图像的base64数据或保存网页为图片

      |-io(这个用的比较少,有的可能api,只是其他插件的重写下)

        _FILE_BASE.js//系统文件描述符

        DIR_UTILS.js//文件夹公用函数

        File.js//文件操作

        File_base.js//文件操作

      |-network

        Ajax.js//ajax功能封装1.0

        Ajax2.js//ajax功能封装2.0

        CACHE.js//浏览器内存控制

        COOKIES.js//浏览器cookie控制

        HTTP_OBSERVER.js//http请求监听

        PROXY_OBSERVER.js//浏览器代理设置

        POP.js//基于pop,socket与服务器通信

        SMTP.js//基于SMTP,socket与服务器通信

        ServerSocket.js//服务器端socket代码

        Socket.js//客户端socket

      |-other

        保存的插件代码

      |-server

        httpd.js//httpserver//来源于别的项目

      |-UserJS//自己用的脚本,功能更加强,涉及安全问题,可以用于黑客技术

        network

          Ajax3.js//ajax功能封装3.0

          COOKIE_MANAGE//浏览器cookie管理,结合数据库(可以做多马甲浏览器)

          COOKIE_MANAGE_AND.js//浏览器cookie管理,无数据库

          HTTP_OBSERVER.js//HTTP请求响应的拦截,监控,可以修改返回,或制定返回文件

          HTTP_OBSERVER-53.js//以前一个版本的保存

          INFO_MANAGE.js//帐号信息管理

          OPTS_MANAGE.js//数据库初始化

      |-utils

        _TIMER.js//浏览器级别定时器api封装

        CLEAR.js//清空浏览器缓存功能(cookie,历史,flash 等)

        CONFIG.js//开启java,js功能

        dateFormat.js//时间格式化

        Group.js//组管理(用于定时任务,定时)

        jsBeautify.js

        PATH_MANAGE.js//路径管理,资源文件和实际文件路径,等相关功能

        Post.js//定时任务系统,主要是开发了个多帐号抢楼层逻辑

        Prefs.js//配置Prefs管理

        RSA.js//RSA加密

        Timer.js//定时器

        Worker.js//多任务管理,定时任务管理

        UTIL.js//公用库(md5,迭代器,加载脚本,编码转换,浏览器提示,通过调进程切换IP)

      init.js//插入chrome的初始化文件

      options.json//配置短路径配置文件,主要用于require

      overlay.xul//插件载入,修改chrome元素的信息xul文件

    |-defaults //插件多语言等信息的文件夹

    chrome.manifest //FF注册资源文件

    install.rd f//FF插件信息文件

  • 相关阅读:
    JAVA动态代理学习
    .Netcore Swagger
    无废话,用.net core mvc 开发一个虽小但五脏俱全的网站
    专为开发者开发的导航网站
    利用webbrowser自动查取地点坐标
    帮你理解学习lambda式
    activeX 打包
    activeX 开发
    提取验证码到winform上webbroswer和axwebbroswer
    存储过程分页的注入问题以及解决
  • 原文地址:https://www.cnblogs.com/legu/p/4622729.html
Copyright © 2020-2023  润新知