我想分析Nmap源代码,首先,我该怎么办? Nmap有很多文件和文件夹,我不知道从哪里开始,我该怎么办? 我想知道一些Nmap的工作,如nmap如何检测操作系统或nmap如何检测开放端口? 某些nmap是否存在于模块中?
感谢。 最好的祝福。
答案 0 :(得分:4)
Nmap是一个古老而“成长”的软件包。最好开始阅读优秀的文档,然后是源代码,而不是相反。
我建议将Phrack 51 - The Art of Port Scanning和the slightly updated version作为相关的引物。
只是为了让你一瞥mish mash nmaps internals,请看上面的Phrack Articke的引用:
在编写nmap之前,我花了很多时间与其他扫描仪一起探索 互联网和各种私人网络(注意避免使用“内联网” 流行语)。我已经使用了许多今天可用的顶级扫描仪,包括 Julian Assange,netcat by Hobbit ,stcp by Uriel Maimon,pscan by Pluvius,由Dave Goldsmith识别,以及SATAN tcp / udp扫描仪 Wietse Venema。这些都是出色的扫描仪!事实上,我最终被黑客攻击了 其中大部分都支持其他人的最佳功能。最后我决定了 写一个全新的扫描仪,而不是依靠十几个被黑客攻击的版本 我的/ usr / local / sbin中有不同的扫描程序。虽然我写了所有的代码,nmap 使用了其前辈的许多好主意。我也加入了一些新的 像碎片扫描和我的“愿望清单”中的选项之类的东西 其他扫描仪。
(免责声明:几年来没有检查过nmap的内部。有人可能已经清理了两者之间的代码,但我认为不太可能。
答案 1 :(得分:0)
现在最好的办法是使用python nmap库。它可以最好地了解引擎盖下的内容,同时也可以学习python。
如果你愿意,更好的选择是在红宝石中build your own。这真的不是那么难,你可以更好地控制正在发生的事情。 Scapy也很好学。如果您在进行扫描时提取wireshark,则可以更好地了解所有内容的工作原理。