原创
nmap整体流程1
一、环境
nmap-7.80、Windows10、VMware
二、主体流程
分为了三个分支
main.cc main() //分支1.检查环境变量 NMAP_ARGS // 若是有,则提取环境变量NMAP_ARGS中的值,而且拼接命令行中的参数 // 进入nmap_main() //分支2.检查命令行参数,若是只有三个参数,而且第二个参数为 --resume 从日志文件中加载上次终止状态,继续上次终止时最先运行 // 进入 nmap_main() //分支3. 进入 nmap_main()
真正的主函数为 nmap_main()
2.1 剖析命令行参数
nmap_main() -> ... parse_options()// 剖析命令行参数 ... struct option long_options[] = {...} //界说的长选项 46Ab:D:d::e:Ffg:hIi:M:m:nO::o:P::p:qRrS:s::T:Vv:: //短选项 //无冒号的选项示意无参数 //一个冒号的选项示意必须有参数,否则报错;参数和选项中可以有空格,也可以没有;eg. -D123 or -D 123 //两个冒号的选项示意参数是可选的;但是有参数时,选项与参数之间不能有空格 //将命令行参数剖析到 全局工具NmapOps o 中 //同时将一些涉及时间的参数 剖析到 静态全局变量 static struct delayed_options delayed_options 中
2.2 处置选项
nmap_main() -> ... apply_delayed_options() ... //若是设置了 -O 选项举行扫描操作系统 // 或则 -A 而且是root权限时, //则加载操作系统指纹文件 parse_fingerprint_reference_file("nmap-os-db") ... //扫描端口处置 validate_scan_lists() ... //各个参数之间关系的校验,并输出日志 ... //其他选项的一些处置
2.3 循环举行处置
do{ ... }while()
©著作权归作者所有:来自51CTO博客作者happytree007的原创作品,如需转载,请注明出处,否则将追究法律责任
参数处置
0
珍藏
上一篇:nmap编译
网友评论
最新评论