亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 對一個用win32asm編寫的tcp端口掃描程序的分析.txt

?? 會變語言實現(xiàn)的一些程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
標 題: 【原創(chuàng)】對一個用Win32Asm編寫的TCP端口掃描程序的分析
作 者: jhkdiy
時 間: 2006-03-25,00:35
鏈 接: http://bbs.pediy.com/showthread.php?t=23110

作者:jhkdiy
郵件:jhkdiy_gzb@21cn.net
論壇:www.20cn.net
日期:06年3月24日

    有一段時間沒有去過ASMCommunity Messageboard(http://www.asmcommunity.net/board/index.php)了,以前直接可以訪問。
現(xiàn)在只能通過代理才能訪問,至少我這邊是這樣。在里面隨便逛了逛,無意看到一位論壇會員問怎樣用Asm來做一個端口掃描器,
結(jié)果其他會員給了一個源代碼,在window的控制臺窗口下運行,以阻塞模式掃描一個目標主機的端口。我覺得這個代碼對剛學習
Windows Socket編程的朋友來說很有啟發(fā)性,所以現(xiàn)在詳細講解一下這份代碼,希望對大家有所幫助。若各位讀者想先試試該程序
可以先用RadAsm建立一個console工程,然后將下面的代碼粘貼到asm文件中,編譯&鏈接。在控制臺下運行該程序即可。
源代碼如下,只做了一點的格式編排:

代碼:
; Conscan - CLI "test"
.386 
.model flat, stdcall 
option casemap :none

include windows.inc 
include user32.inc 
include kernel32.inc 
include masm32.inc
include wsock32.inc
includelib user32.lib 
includelib kernel32.lib 
includelib masm32.lib
includelib wsock32.lib

print macro lpszText:VARARG
 local txt
 .data
  txt db lpszText,13,10,0
 .code
  invoke StdOut,addr txt
ENDM

SOCKADDR_IN struct
 sin_family WORD ?
 sin_port WORD ?
 sin_addr DWORD ?
 sin_zero BYTE 8 dup (?)
SOCKADDR_IN ends

.data
 szusg db "usage: conscan <hostname>",13,10,0
 fmt   db "%d OPEN",13,10,0
 sa    SOCKADDR_IN <>
 wsa   WSADATA <>
 sfd   dd 0
 port  dd 0
 pl    dd 21
       dd 22
       dd 23
       dd 25
       dd 80
       dd 137
       dd 350
       dd 8080
       dd 6667
       dd 31337
       dd 0
     
.data?
 hostname db 2024 dup (?)
 buffer   db 100 dup (?)
 
.code
conscan:
 call main
 call ExitProcess

main proc
    invoke GetCL,1,addr hostname
    cmp eax,1
    jne Arg_Error
    
    mov sa.sin_family, AF_INET
    lea edi,pl
Port_Scan_Loop:
    mov eax,[edi]
    cmp eax,0
    je Port_Scan_Complete
    inc edi
    mov port,eax
    invoke WSAStartup,101h,addr wsa
    invoke socket, AF_INET, SOCK_STREAM, 0
    mov sfd,eax
    invoke htons, port
    mov sa.sin_port, ax
    invoke gethostbyname, addr hostname   
    mov eax,[eax+12]
    mov eax,[eax]
    mov eax,[eax] 
    mov sa.sin_addr,eax
    invoke connect,sfd,addr sa,SIZEOF sa
    cmp eax, 0
    jne Port_Closed
    invoke wsprintf,addr buffer,addr fmt,port
    invoke StdOut,addr buffer
Port_Closed:
    invoke closesocket,sfd
    call WSACleanup
    jmp Port_Scan_Loop
Arg_Error:
    invoke StdOut,addr szusg
    ret
Port_Scan_Complete:
    print "-- Scan Complete --"
    ret
main endp
end conscan
整份代碼才100行左右,那么,這短短的100行代碼到底做了些什么呢?首先請將代碼看一遍,
如果是似明非明的話就需要繼續(xù)看下面的解釋了。我們就一段段來分析吧,首先是第一部分:
.386 
.model flat, stdcall 
option casemap :none

include windows.inc 
include user32.inc 
include kernel32.inc 
include masm32.inc
include wsock32.inc
includelib user32.lib 
includelib kernel32.lib 
includelib masm32.lib
includelib wsock32.lib

開頭的部分相信任何一位學win32asm的朋友都能看懂,include 和 includelib的部分確實有需要
留意的部分,那就是:
include wsock32.inc
includelib wsock32.lib

編寫windows socket程序就要包含相應的windows socket頭文件和庫文件,當前可以使用的winsock
接口動態(tài)鏈接庫版本有1.1版本和2.0版本。wsock32.inc & wsock32.lib 文件表示使用32位的
1.1版本的winsock,如果是使用2.0的winsock就需要使用WS2_32.inc 和 WS2_32.lib 文件。如果
對masm32.inc也不熟悉的話,在這里簡單的說說,它是一系列常用的宏和函數(shù)的集合,主要是為了
編程方便,減少重復編寫同樣的代碼而做的,包含了許多實用的宏和函數(shù),在這個代碼中StdOut等函數(shù)
就使用了這個文件。

再往下看,看到了一個宏:
print macro lpszText:VARARG
 local txt
 .data
  txt db lpszText,13,10,0
 .code
  invoke StdOut,addr txt
ENDM
該宏即使用了masm32.inc中的StdOut函數(shù),該函數(shù)在windows標準控制臺下輸出一段文本,有點像C語言下的
printf()函數(shù)。緊跟著看到一段結(jié)構(gòu)體定義:
SOCKADDR_IN struct
     sin_family WORD ?
     sin_port WORD ?
     sin_addr DWORD ?
     sin_zero BYTE 8 dup (?)
SOCKADDR_IN ends

該結(jié)構(gòu)用來將套接字綁定到IP地址和端口使用,當然在后續(xù)的接受和發(fā)送等等的工作中都會用到。各字段注釋
如下:

SOCKADDR_IN struct
     sin_family WORD ?              ;地址格式
     sin_port WORD ?                ;端口號(使用網(wǎng)絡(luò)字節(jié)順序)
     sin_addr DWORD ?               ;IP地址(使用網(wǎng)絡(luò)字節(jié)順序)
     sin_zero BYTE 8 dup (?)        ;空字節(jié)
SOCKADDR_IN ends

sin_family在不同的操作系統(tǒng)下有不同的值,但winsock環(huán)境一般都固定為 AF_INET,也可以是PF_INET,在windows.inc
中被定義為與AF_INET同樣的值。sin_port 和 sin_addr 字段分別指定端口號和IP地址,放入這兩個字段的數(shù)據(jù)字節(jié)
順序必須是Internet順序。這到底是怎么一回事呢?學過匯編語言的朋友都知道,Intel的CPU對內(nèi)存操作數(shù)使用的是小尾
順序,這種方式是將位數(shù)高的字節(jié)排在內(nèi)存地址高的位置,而位數(shù)低的字節(jié)排在內(nèi)存的低地址處,例如 12345678h ,
如果以字類型來存儲,在內(nèi)存表示為 78h 56h 34h 12h。如果以雙字來存儲,表示為5678h 1234h。而其它的CPU如Motorola
的CPU使用的是大尾順序,這種順序剛好相反,低位數(shù)排在內(nèi)存的高位,高位數(shù)排在內(nèi)存的低位,例如 12345678h表示為
12h 34h 56h 78h,這種方式比較適合我們一般的看書習慣,都是從左到右一路看過去。
本來這些東東不關(guān)我們事的,但是當兩種不同CPU的主機通訊時就不行了,而Internet協(xié)議是一組開放的協(xié)議,需要在不同的
計算機平臺之間進行通信,所以在實現(xiàn)時不能包含與特定平臺有關(guān)的東西,即做到平臺無關(guān)性。這就需要采用一種共同的數(shù)據(jù)
排列順序才行,而Internet協(xié)議采用了大尾順序,所以凡是80X86平臺的winsock編程,當使用IP地址和端口號等參數(shù)時,都需要
將它們轉(zhuǎn)換為大尾順序。

好了,到了數(shù)據(jù)定義的內(nèi)容了,我們看看都定義了什么:
.data
 szusg db "usage: conscan <hostname>",13,10,0       ;使用幫助
 fmt   db "%d OPEN",13,10,0                         ;輸出時顯示打開的端口
 sa    SOCKADDR_IN <>                               ;使用connect函數(shù)時用到
 wsa   WSADATA <>                                   ;使用WSAStartup函數(shù)時用到
 sfd   dd 0                                         ;保存Socket句柄
 port  dd 0                                         ;保存要掃描的端口
 pl    dd 21                                        ;這是程序?qū)⒁獟呙璧亩丝诹斜?       dd 22
       dd 23
       dd 25
       dd 80
       dd 137
       dd 350
       dd 8080
       dd 6667
       dd 31337
       dd 0
     
.data?
 hostname db 2024 dup (?)           ;用于存貯域名
 buffer   db 100 dup (?)            

在.data段中,值得注意的是 定義了 一個 SOCKADDR_IN 類型的 sa變量,還有一個就是 WSADATA型的 wsa變量
WSADATA是用來初始化winsock庫的,在使用winsock函數(shù)之前必須先使用WSAStartup函數(shù)來裝入并初始化動態(tài)連接
庫WS2_32.dll。例如在代碼段中的     invoke WSAStartup,101h,addr wsa 即表示使用1.1版本的socket并初始化。
在端口列表pl方面,這種直接定義在程序內(nèi)部的方式缺少了靈活性,如果能將常掃描的端口存入一個文件里,需要
掃描的時候才讀入端口列表來掃描就好多了,注意,最后一個0是不能缺少的,實際上它表示端口列表的終止,而并

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区电影| 国产在线观看一区二区| 美国三级日本三级久久99| 激情综合网激情| 欧美无砖专区一中文字| 久久精品一区蜜桃臀影院| 亚洲影视资源网| 国产寡妇亲子伦一区二区| 欧美二区三区的天堂| 国产精品卡一卡二| 国产精一品亚洲二区在线视频| 欧美专区亚洲专区| 国产精品五月天| 精品一区二区三区视频在线观看| 久久亚洲欧美国产精品乐播| 亚洲一区二区欧美日韩| 成人在线综合网站| 欧美成人欧美edvon| 午夜精品在线看| 色呦呦一区二区三区| 国产亚洲午夜高清国产拍精品| 日韩国产一二三区| 欧美私人免费视频| 亚洲美腿欧美偷拍| 国产成人精品免费视频网站| 精品少妇一区二区三区在线播放 | 欧美最猛性xxxxx直播| 欧美激情资源网| 国产一区二区三区免费看| 欧美sm美女调教| 毛片不卡一区二区| 日韩你懂的电影在线观看| 视频一区二区三区中文字幕| 欧美日韩在线电影| 亚洲h在线观看| 欧美伦理电影网| 午夜影院在线观看欧美| 欧美乱熟臀69xxxxxx| 无吗不卡中文字幕| 日韩午夜激情免费电影| 日本亚洲最大的色成网站www| 日韩一区二区电影在线| 精品亚洲成av人在线观看| 精品日韩在线一区| 国产盗摄视频一区二区三区| 日韩影院免费视频| 日韩欧美成人激情| 国产高清一区日本| 成人欧美一区二区三区视频网页| 99精品视频在线免费观看| 亚洲欧美日韩小说| 欧美乱妇15p| 国产在线不卡视频| 国产精品美女一区二区在线观看| 99精品桃花视频在线观看| 亚洲影院在线观看| 日韩欧美中文字幕制服| 国产精品一区专区| 亚洲欧美偷拍另类a∨色屁股| 在线影视一区二区三区| 喷白浆一区二区| 国产色婷婷亚洲99精品小说| 色综合婷婷久久| 青青草原综合久久大伊人精品优势| 欧美tickle裸体挠脚心vk| 成人国产精品免费观看视频| 亚洲黄色小视频| 欧美r级电影在线观看| 成人av资源在线| 日韩和欧美的一区| 中文字幕欧美国产| 欧美三电影在线| 国产九色sp调教91| 午夜精品久久久久久久| 国产亚洲短视频| 欧美无砖专区一中文字| 国产成人亚洲综合色影视| 亚洲一区二区精品3399| 久久女同精品一区二区| 在线观看日产精品| 国产v综合v亚洲欧| 日韩成人一区二区| 亚洲视频1区2区| 2022国产精品视频| 欧美三电影在线| 99视频在线精品| 国产一区999| 爽爽淫人综合网网站| 日韩毛片在线免费观看| 精品sm捆绑视频| 欧美三级电影网站| 91丨porny丨户外露出| 国产精品综合一区二区三区| 天堂一区二区在线| 亚洲免费在线电影| 中国色在线观看另类| 欧美成人官网二区| 欧美日韩国产一二三| 91亚洲大成网污www| 国产99久久久国产精品潘金网站| 日本成人在线看| 亚洲一区国产视频| 亚洲精品国产无天堂网2021| 中文字幕欧美激情| 国产无遮挡一区二区三区毛片日本| 51精品久久久久久久蜜臀| 在线这里只有精品| 日本道精品一区二区三区| 成人国产精品免费观看视频| 国产不卡视频在线观看| 国产专区欧美精品| 九九视频精品免费| 久久66热re国产| 免费在线成人网| 美女尤物国产一区| 免费精品视频在线| 麻豆91免费观看| 久久国产婷婷国产香蕉| 精品一区免费av| 国产一区二区精品久久99| 国产一区二区三区免费在线观看| 久久国产精品免费| 久草这里只有精品视频| 国产在线精品免费| 国产精品正在播放| 成人免费看片app下载| va亚洲va日韩不卡在线观看| www.99精品| 日本高清无吗v一区| 91久久国产综合久久| 欧美私人免费视频| 日韩亚洲欧美在线| 久久奇米777| 国产精品第一页第二页第三页| 中文字幕在线一区免费| 一二三四社区欧美黄| 午夜天堂影视香蕉久久| 中文字幕av免费专区久久| 精品理论电影在线观看| 91精品国产综合久久香蕉的特点| 91麻豆精品国产无毒不卡在线观看| 欧美一区二区三区免费视频| 欧美mv日韩mv国产网站app| 国产欧美一区二区三区沐欲| 在线观看视频一区二区欧美日韩| 国产精品久久久久婷婷二区次| 蜜芽一区二区三区| 色欧美88888久久久久久影院| 久久久综合九色合综国产精品| 亚洲国产sm捆绑调教视频| proumb性欧美在线观看| 久久久久久麻豆| 老司机一区二区| 欧美猛男超大videosgay| 亚洲日本成人在线观看| 成人综合日日夜夜| 国产亚洲美州欧州综合国| 奇米四色…亚洲| 欧美日韩高清不卡| 亚洲午夜激情网站| 色老汉一区二区三区| 国产精品国产三级国产有无不卡| 国产美女娇喘av呻吟久久| 欧美电影免费观看高清完整版在 | 亚洲国产一区二区在线播放| 91丨porny丨户外露出| 国产精品麻豆视频| 成人妖精视频yjsp地址| 国产午夜三级一区二区三| 国内精品久久久久影院一蜜桃| 制服丝袜亚洲播放| 婷婷久久综合九色综合伊人色| 欧美亚洲图片小说| 亚洲成a人v欧美综合天堂| 欧美日韩三级视频| 日本一不卡视频| 精品久久久网站| 国内精品第一页| 久久精品人人爽人人爽| 高清成人免费视频| 国产精品理论片在线观看| 91丝袜国产在线播放| 国产精品羞羞答答xxdd| 久久久精品一品道一区| 高清国产一区二区三区| 中文字幕色av一区二区三区| 色综合视频一区二区三区高清| 亚洲精品免费电影| 欧美日韩不卡视频| 久久草av在线| 欧美激情艳妇裸体舞| 色诱视频网站一区| 丝瓜av网站精品一区二区| 欧美成人一区二区三区片免费 | 91在线观看美女| 亚洲午夜久久久久久久久电影院 | 一本色道久久综合精品竹菊| 亚洲一区二区三区中文字幕在线 | 精品国产乱码久久久久久久久| 国产精品一卡二|