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(): 指纹匹配和判断

  • 相关阅读:
    浅析Go中的MPG模式(一)
    panic: assignment to entry in nil map
    Golang 新手可能会踩的 50 个坑
    小刘的go面试题
    go 单元测试整理
    go test 测试单个文件和测试单个函数
    mac pro锁屏后没有声音了怎么处理
    go json返回时间字符串处理time.Time类型
    php求一个字符串中不重复的最长子串
    业务订单号生成算法,每秒50W左右,不同机器保证不重复,包含日期可读性好
  • 原文地址:https://www.cnblogs.com/rose1jj/p/10250527.html
Copyright © 2011-2022 走看看