如何开发Nmap?

时间:2010-11-06 11:00:34

标签: nmap

我想分析Nmap源代码,首先,我该怎么办? Nmap有很多文件和文件夹,我不知道从哪里开始,我该怎么办? 我想知道一些Nmap的工作,如nmap如何检测操作系统或nmap如何检测开放端口? 某些nmap是否存在于模块中?

感谢。 最好的祝福。

2 个答案:

答案 0 :(得分:4)

Nmap是一个古老而“成长”的软件包。最好开始阅读优秀的文档,然后是源代码,而不是相反。

我建议将Phrack 51 - The Art of Port Scanningthe 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,则可以更好地了解所有内容的工作原理。