《二》NetBIOS/NrtBEUI协议编程
1. NetBIOS简介
NetBIOS协议既可以是一个面向连接的数据包服务,也可以是面向非连接的对话服务。早起的NetBIOS只适用于局域网,本身不存在路由功能,并且总结点数据有限。
后来开发了NTB(NetBIOS over TCP),该接口是将NetBIOS运行在TCP协议上,将NetBIOS的协议数据包作为TCP/IP协议的数据u,通过TCP/IP提供的路由功能,送到目标主机后,再将TCP/IP协议中的数据还原为NerBIOS协议内容,然后再使其在目标主机上得到应用。被称为隧道技术。

  1. 名字注册与注销

  2. 名称解析

  3. NetBIOS数据包

  4. NetBIOS对话

2. NetBIOS的函数调用
无论应用程序咋哪个层次中调用,最终只是用一个Netbios函数(注意不是NetBIOS)

  1. Netbios函数
UCHAR Netbios(PNCB pncb
);

参数pncb:指向一个NVB结构的指针。
在该函数最终,用一个NCB结构来完成所有命令,该结构是一个64字节的缓冲区(64位操作系统中是72个字节),该结构的调用如下:

#define NVBNAMSZ 16
typedef sturct _NCB{UCHAR ncb_commend;UCHAR ncb_retcode;UCHAR ncb_lsn;UCHAR ncb_num;PUUCHAR ncb_buffer;WORD  ncb_length;UCHAR ncb_callname[NCBNAMSZ];UCHAR ncb_name[NCBNAMSZ];UCHAR ncb_rto;UCHAR ncb_sto;void (CALLBACK *ncb_port) (struct _NCB);UCHAR ncb_lana_num;UCHAR ncb_cmd_cplt;UCHAR ncb_reserve[10];UCHAR ncb_event;
}NCB, *PNCB;


2. 结构成员如下:

  1. ncb_commend:命令码。指出该NCB所完成的功能,其余各成员是否使用,以及要设置成什么值则完全取决于该命令码。除了命令码之外,该值还可以通过操作符“|”与ASYNCH进行“逻辑或操作”,指定是否使用同步操作。可取的命令码主要有:

  2. ncb_retcode:命令返回码,如果是同步命令。并且还没有结束,则该值被设为NCB_PENDING;否则返回码如下值之一:

  3. ncb_lsn:本地对话序号,通过NCBCALL命令可以获得本地对话序号
  4. ncb_num:本地网络名称的数量。通过NCBADDNAME或NCBADDGRNAME命令可以获得网络名称的数量。注意,这里的数量,而不是网络名称本身。并且NAME_NUMBER_1代表第一个网络名称。
  5. ncb_buffer:指向一个缓冲区,当做发送功能(NCBSEND)时,该指向指向所发送的数据,当做接收功能(NCBRECV)或查询命令(NCBSSTAT)时,命令将读后值放到这个指向所指向的缓冲区中。
  6. ncb_length:ncb_buffer的长度。以字节为单位。当做发送功能(NCBSEND)时,如果该长度不对,则返回NRC_BUFLEN错误;当做接收功能(NCBRECV)时,如果该长度不足以装下所返回的值,则系统会设定实际所需要的长度。
  7. ncb_callname:指向远端名称,该名称最大长度为NCBNAMSZ。并不能按普通字符串处理方式处理
  8. ncb_name:指向远端的名称。该名称的最大长度为NCBNAMSZ。
  9. cb_rto:设定接收超时值。该值以500毫秒为一个单位,实际的超时值为所设值乘以500,如果设为0,表示没有超时值,一直等到有可以接收的数据。该命令主要应用于NCBRECV。
  10. ncb_sto:设定发送超时值。同ncb_rto一样,所设值乘以500毫秒作为超时值,0代表没有超时值,直到发送成功返回。该命令主要用于NCBSEND和NCBCHAINSEND命令中。
  11. ncb_post:同步命令完成时,逃通知的现成地址。
  12. ncb_lana_num:执行本次命令的网卡序号。
  13. ncb_cmd_cplt:命令完成标志。该值与ncb_retcode menber相似。
  14. ncb_reserve:保留,必须为0.
  15. ncb_event:指向一个事件句柄,当同步命令完成时,会复位该事件句柄。如果是异步命令(即命令码ncb_commend没有与ASYNCH进行“逻辑或”操作),则必须设置为0.

网络扫描技术揭秘学习笔记《二》NetBIOS/NrtBEUI协议编程相关推荐

  1. 网络扫描技术揭秘读书笔记1--简介

    1.主机与网络安全问题的发现与解决 作为一个用户,自己的主机是否安全:作为网络管理员,所管理和维护的网络是否安全,解决这些问题除了及时打上操作系统的最新补丁以及安装防火墙和防病毒软件之外,是否还有别的 ...

  2. 网络扫描技术揭秘读书笔记3--TCP SYN扫描

    TCP SYN扫描(使用Winpcap库实现) 0.核心原理 半开扫描(TCP SYN)不同于CSocket和Socket2扫描,后两者扫描都是完成了一个完整的三次握手(即connect函数),而半开 ...

  3. Web安全学习笔记二 计算机网络与协议

    文章目录 计算机网络协议 1.1 网络基础 1.1.1 计算机通信网的组成 1.1.2 通信协议 1.1.3 OSI七层模型 1.1.3.1 物理层 1.1.3.2 数据链路层 1.1.3.3 网络层 ...

  4. Linux 网络编程学习笔记——二、IP 协议详解

    目录 一.IP 服务的特点 IP 协议为上层协议提供无状态.无连接.不可靠的服务: 无状态(stateless):指 IP 通信双方不同步传输数据的状态信息,因此所有 IP 数据报的发送.传输和接收都 ...

  5. python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名

    我最近在看崔庆才老师的<python3 网络爬虫开发实战>觉得挺不错的,上面还有一个 用正则表达式爬取猫眼电影的电影排行榜 我练了一下,感觉不会很难,后来学到了xpath,就想用xpath ...

  6. 《诸神之眼:Nmap网络安全审计技术揭秘》读书笔记

    <诸神之眼:Nmap网络安全审计技术揭秘>读书笔记 作者:李华峰 ◆ 前言 NSE是Nmap中革命性的创新.通过Nmap强大的脚本引擎(NSE),每一个用户都可以向Nmap中添加自己编写的 ...

  7. 信息收集之基础端口扫描《诸神之眼——Nmap网络安全审计技术揭秘》总结一

    端口扫描 <诸神之眼--Nmap网络安全审计技术揭秘>总结 手动端口扫描 Nmap Nmap的基本操作 活跃主机发现技术 基于ARP协议的活跃主机发现技术 基于ICMP协议的活跃主机发现技 ...

  8. Netty学习笔记二网络编程

    Netty学习笔记二 二. 网络编程 1. 阻塞模式 阻塞主要表现为: 连接时阻塞 读取数据时阻塞 缺点: 阻塞单线程在没有连接时会阻塞等待连接的到达,连接到了以后,要进行读取数据,如果没有数据,还要 ...

  9. 网络攻防技术与实践笔记-信息收集技术手段

    网络攻防技术与实践笔记(一) 一.网络踩点 1. web搜索与搜索 Google.百度等高级搜索,xgoogle查询工具:wget爬虫工具,Teleport Pro.Offline Explorer爬 ...

最新文章

  1. 资源跳转--response重定向和request转发
  2. 计算机房装修对门的要求,防火门尺寸要求有哪些 防火门尺寸规范
  3. [Hive_6] Hive 的内置函数应用
  4. VTK:vtkCaptionWidget用法实战
  5. 使用Sense操作ElasticSearch CRUD
  6. 前端学习(2162):知识回顾
  7. 收藏 | 机器学习中需要了解的 5 种采样方法
  8. 如何和在桌面上添加计算机,怎么在电脑桌面上添加便签?
  9. virtualmin修改php.ini,virtualmin安装和配置使用
  10. asp.net + mysql
  11. IS-IS详解(六)——IS-IS LSP机制详解
  12. E20180418-hm
  13. 搜索引擎与信息处理 复习笔记
  14. 算法精解-C语言描述 递归和尾递归 (图解+实例)
  15. 每日算法(5)——正整数分解质因数
  16. Android 计时器Chronometer 使用及源码分析
  17. 二级路由器设置,二级路由器无法上网
  18. Word Maze单词迷宫C语言解法(详细注解)
  19. Ubuntu Women:女娃玩电脑不输纯爷们!
  20. 这款App连夜被下架!

热门文章

  1. Revit 二次开发 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项
  2. ecnu-2020寒假热身-01
  3. 关于微信公众号二次开发(文本消息回复功能)
  4. Java学习网站 [摘自互联网]
  5. 实现暂停一秒输出的效果_HID控制器与海康威视人脸识别amp;测温门禁一体机实现联动的改造方法...
  6. [创业-23]:财务报表 - 现金流量表
  7. 超级文本编辑器Sublime Text3
  8. linux查看jdk版本命令_linux环境查看jdk版本
  9. 最短路问题——Java语言实现
  10. 计算机毕业设计Java进出货管理系统(源码+系统+mysql数据库+lw文档)