diff --git a/SMBLibrary/NetBios/NameServicePackets/NameQueryRequest.cs b/SMBLibrary/NetBios/NameServicePackets/NameQueryRequest.cs index a0f3b40..fcaa81a 100644 --- a/SMBLibrary/NetBios/NameServicePackets/NameQueryRequest.cs +++ b/SMBLibrary/NetBios/NameServicePackets/NameQueryRequest.cs @@ -24,7 +24,9 @@ namespace SMBLibrary.NetBios { Header = new NameServicePacketHeader(); Header.OpCode = NameServiceOperation.QueryRequest; + Header.Flags = OperationFlags.RecursionDesired; Question = new QuestionSection(); + Question.Type = NameRecordType.NB; } public NameQueryRequest(byte[] buffer, int offset) diff --git a/SMBLibrary/NetBios/NameServicePackets/NodeStatusRequest.cs b/SMBLibrary/NetBios/NameServicePackets/NodeStatusRequest.cs new file mode 100644 index 0000000..47434fd --- /dev/null +++ b/SMBLibrary/NetBios/NameServicePackets/NodeStatusRequest.cs @@ -0,0 +1,45 @@ +/* Copyright (C) 2014-2020 Tal Aloni . All rights reserved. + * + * You can redistribute this program and/or modify it under the terms of + * the GNU Lesser Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later version. + */ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Utilities; + +namespace SMBLibrary.NetBios +{ + /// + /// [RFC 1002] 4.2.17. NODE STATUS REQUEST + /// + public class NodeStatusRequest + { + public NameServicePacketHeader Header; + public QuestionSection Question; + + public NodeStatusRequest() + { + Header = new NameServicePacketHeader(); + Header.OpCode = NameServiceOperation.QueryRequest; + Question = new QuestionSection(); + Question.Type = NameRecordType.NBStat; + } + + public NodeStatusRequest(byte[] buffer, int offset) + { + Header = new NameServicePacketHeader(buffer, ref offset); + Question = new QuestionSection(buffer, ref offset); + } + + public byte[] GetBytes() + { + MemoryStream stream = new MemoryStream(); + Header.WriteBytes(stream); + Question.WriteBytes(stream); + return stream.ToArray(); + } + } +} diff --git a/SMBLibrary/NetBios/NameServicePackets/Structures/QuestionSection.cs b/SMBLibrary/NetBios/NameServicePackets/Structures/QuestionSection.cs index 0cec0f3..486235d 100644 --- a/SMBLibrary/NetBios/NameServicePackets/Structures/QuestionSection.cs +++ b/SMBLibrary/NetBios/NameServicePackets/Structures/QuestionSection.cs @@ -7,7 +7,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Text; using Utilities; namespace SMBLibrary.NetBios @@ -23,6 +22,7 @@ namespace SMBLibrary.NetBios public QuestionSection() { + Class = QuestionClass.In; } public QuestionSection(byte[] buffer, ref int offset) diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj index c4625c7..62de5b4 100644 --- a/SMBLibrary/SMBLibrary.csproj +++ b/SMBLibrary/SMBLibrary.csproj @@ -83,6 +83,7 @@ +