鱼C论坛

 找回密码
 立即注册
查看: 3180|回复: 3

[原创] 【Win32汇编】端口扫描器

[复制链接]
发表于 2015-5-23 23:45:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
jt1.jpg 先上一张图。
TCP端口扫描工具,编译器用的是masm32,用汇编写代码感觉萌萌哒~~
加上注释也才100行左右。。
  1. ;超级简单多线程TCP服务器开放端口扫描器
  2. ;无名侠
  3. ;2015.5.23
  4. .386
  5. .model flat,stdcall
  6. option casemap:none
  7. include ws2_32.inc
  8. include user32.inc
  9. include kernel32.inc
  10. include windows.inc
  11. include masm32.inc
  12. include msvcrt.inc
  13. includelib msvcrt.lib
  14. includelib ws2_32.lib
  15. includelib user32.lib
  16. includelib kernel32.lib
  17. includelib masm32.lib
  18. ;###############################################
  19. ;数据段
  20. ;###############################################
  21. .data
  22.         szInitError        db '加载套接字库失败!',0
  23. ;====================================用户配置区==============================================
  24. ;设置扫描IP
  25. szIp                db '127.0.0.1',0
  26. ;设置扫描范围
  27. start_port        equ        20
  28. end_port        equ        2000
  29. ;=============================================================================================
  30.         Myinfo        db '-- 超级简单多线程TCP服务器开放端口扫描器 --',0dh,0ah,'made in China.....',0dh,0ah,
  31.        
  32.        
  33.         format1        db '开放TCP端口:%d',0dh,0ah,0
  34.         ScannerIp        DWORD        ?
  35. ;###############################################
  36. ;代码段                A lovely girl named mooncake.
  37. ;###############################################
  38. .code
  39. Thread_scanner        proc _port:dword
  40.         LOCAL @address:sockaddr_in
  41.         LOCAL @h_sock:dword
  42.         invoke RtlZeroMemory,addr @address,sizeof @address
  43.         invoke socket,AF_INET,SOCK_STREAM,0
  44.         cmp eax,INVALID_SOCKET
  45.         je _exit
  46.         mov @h_sock,eax
  47.         ;初始化地址信息
  48.         invoke htons,_port
  49.         mov @address.sin_port,ax
  50.         mov @address.sin_family,AF_INET
  51.         mov eax,ScannerIp
  52.         mov @address.sin_addr,eax
  53.         invoke connect,@h_sock,addr @address,sizeof @address
  54.         .if eax==0
  55.         invoke crt_printf,addr format1,_port
  56.                 ;mov esi,offset OpenPortMap
  57.                 ;mov edi,_port
  58.                 ;mov byte ptr[esi+edi],1
  59.         .endif
  60.         invoke closesocket,@h_sock
  61. _exit:       
  62.         ret
  63. Thread_scanner endp

  64. main proc
  65.         LOCAL @wsadata:WSADATA
  66.         ;来点广告信息吧~亲。
  67.         invoke crt_printf,addr Myinfo
  68.         ;初始化套接字库
  69.         invoke RtlZeroMemory,addr @wsadata,sizeof @wsadata
  70.         invoke WSAStartup,202h,addr @wsadata
  71.         ;初始化扫描IP
  72.         invoke inet_addr,addr szIp
  73.         mov ScannerIp,eax
  74.         ;启动扫描线程
  75.         mov ecx,end_port-start_port
  76. loop1:
  77.         push ecx
  78.         invoke        CreateThread,NULL,0,offset Thread_scanner,ecx,0,NULL
  79.         pop ecx
  80.         loop loop1
  81.         invoke crt_getchar
  82.         ret
  83. main endp
  84. start:
  85. invoke main
  86. invoke ExitProcess,1
  87. end start
复制代码
大召唤术:@小甲鱼 @拈花小仙 @kklloo

评分

参与人数 2荣誉 +13 鱼币 +13 贡献 +8 收起 理由
freeparty + 8 + 8 + 5 感谢楼主无私奉献!
拈花小仙 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-24 08:23:03 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-7 15:44:33 | 显示全部楼层
怎么显示不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-7 21:51:29 | 显示全部楼层
link /subsystem:console **.obj

发现一问题,如果把目标 IP改成 实际IP 程序只能检测出一个端口就退出来了, 我用OD看了一下(不熟练),但线程还是创建了,就是不能检测出其它的端口,是哪个地方有问题????
如果是127.0.0.1 就可以全部检测出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 17:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表