插件开发

期望是和burp suite一样, 允许用户可以使用python ruby java scala等语言来设计插件.

目前项目内的插件分两种插件. 一种是框架自带的插件. 比如tagLimit log插件等, 只需要在配置文件中直接写上插件的名字即可调用.

还有一种插件是动态插件. 在项目的plugins目录下有一个demo插件可以参考.

动态插件

动态插件是存在与plugins目录下, 在运行时会把目录内的scala文件自动编译为class文件并加载进来. 所以可以随时修改里面的scala文件来做自定义的插件.

动态插件的示例

import com.testerhome.appcrawler._

//继承Plugin类
class DynamicPlugin extends Plugin{
  //重载start方法, 启动时执行
  override def start(): Unit ={
    log.info("hello from seveniruby")
  }
  //在每个element的动作执行前进行针对性的处理. 比如跳过
  override def beforeElementAction(element: UrlElement): Unit ={
    log.info("you can add some logic in here")
    log.info(element)
  }
  //当进入新页面会回调此接口
  override def afterUrlRefresh(url:String): Unit ={
    log.info(s"url=${getCrawler().url}")
  }

}

更多方法可参考Plugin类的接口定义.

results matching ""

    No results matching ""