docs :相關文件入口程式在main.cc,主要功能libdnet-stripped :開源網路介面庫
liblinear:開源大型線性分類庫
liblua:開源lua指令碼語言庫
libnetutil:基本的網路函式
libpcap:開源抓包庫
libpcre:開源正規表示式庫
macosx:xcode專案檔案
mswin32:vs專案檔案
nbase:nmap封裝的基礎使用函式庫
ncat:netcat網路工具,由nmap實現
ndiff:比較nmap掃瞄結果的實用命令
nmap-update:負責nmap更新操作
nping:nmap專案組實現的新版的hping,探測與構建包
nselib:nmap的lua指令碼
nsock:nmap實現的並行的socketevent處理庫
scripts:nmap提供常用的掃瞄檢查的lua指令碼
todo:開發任務
zenmap:python的圖形介面程式
然後是根據傳入引數去呼叫 nmap.cc的nmap_main()函式。下面是精簡後的原始碼:
int main(int argc, char *argv)
/* copy rest of command-line arguments */
for (i = 1; i < argc && strlen(command) + strlen(argv[i]) + 1
< sizeof(command); i++)
myargc = arg_parse(command, &myargv);
if (myargc < 1)
ret = nmap_main(myargc, myargv);
arg_parse_free(myargv);
return ret;
} if (argc == 3 && strcmp("--resume", argv[1]) == 0)
return nmap_main(myargc, myargv);
} return nmap_main(argc, argv);
}
然後程式教育nmap_main().
nmap_main裡,表面看起來掃瞄的迴圈是從2065行開始:
for (targetno = 0; targetno < targets.size(); targetno++) {這裡引用乙個別人做的流程圖:currenths = targets[targetno];
前後的**都比較多,下次再抽時間細緻分析。
引用**:
jquery原始碼 整體架構
對外提供了jquery。可以通過jquery或者 來找到jquery function window,undefined window.jquery window.jquery 對外介面 window jquery本身是乙個建構函式,包括了很多靜態方法 工具方法 和例項方法。靜態方法更底層。func...
jQuery原始碼學習(版本1 11) 整體架構
如下,首先整個 結構看上去就是乙個閉包自執行,閉包執行的好處在於閉包擁有私有的作用域,不會汙染全域性作用域,最終再將jquery作為乙個命名空間匯出到window下,這樣 管理起來非常方便,相容性好。jquery整個閉包執行,實際是執行了factory 方法,而factory 是作為引數傳進去的,因...
Flume架構與原始碼分析 整體架構
最近在學習flume原始碼,所以想寫乙份flume原始碼學習的筆記供需要的朋友一起學習參考。flume是cloudera公司開源的一款分布式 可靠地進行大量日誌資料採集 聚合和並轉移到儲存中 通過事務機制提供了可靠的訊息傳輸支援,自帶負載均衡機制來支撐水平擴充套件 並且提供了一些預設元件供直接使用。...