zoukankan      html  css  js  c++  java
  • whatweb运行原理及各文件的作用详解

    输入指令之后,开始会在whatweb文件比对指令信息。之后,会根据判断条件进行检测插件的选择。如果没有指定自定义插件,那么就回家在默认插件,use_custom_plugin=false; plugin_selection=nil。此时会调用lib/plugins.rb文件,调用PluginSupport.load_plugins函数,此函数是加载插件目录的,在446行开始搜索插件识别插件,PluginSupport.load_plugin(f)为加载插件;PluginSupport.precompile_regular_expressions是一个优化插件的函数,对插件识别脚本进行进一步细化。跳出函数,继续往下调,就是HTTP Request的定义,可以用户自定义,也可以使用默认值。继续下去,就是对目标URL的筛选,这个会在whatweb文件中进行,具体在279行,make_target_list()这个函数会对URL进行筛选,规则化等操作。接下来为处理指定的URL,获取指纹信息。

    target.rb主要是对目标url进行处理,涉及到url的提交方式,如get、put、post等,还涉及到是采用http还是https,以及对各部分结果的处理。其中open方法判断是不是一个文件
    plugins.rb主要是插件处理,实现了插件的注册功能,加载插件,识别插件,对加载过的插件的正则表达式进行预编译。

    whatweb文件中函数的功能:
    gem_available?(): 此函数的返回值为true或false。gem的检测和加载

    make_tag_pattern(): 删除script和/script之间的内容。此方法在target.rb文件中被调用,@tag_pattern = make_tag_pattern(@body)。第106行

    make_target_list(): 对目标URL进行筛选,并使URL规则化

    run_plugins(): 指纹匹配和判断

  • 相关阅读:
    JSP版LCX:端口转发神器 KPortTran
    使用 JavaScript 实现对 PDF 的全文索引
    伙伴分配器的一个极简实现
    java创建线程的三种方式及其对照
    【版本号公布】Jeecg-P3 1.0 公布,J2EE微服务框架(插件开发)
    linux c 获取当前执行进程总数
    C++入门学习——模板
    GSON学习笔记之初识GSON
    Python学习笔记_Python对象
    怎样在OTN站点高速找到asm包并下载 (Oracle RAC)
  • 原文地址:https://www.cnblogs.com/rose1jj/p/10250527.html
Copyright © 2011-2022 走看看