in src/analysis/print_analyzer.cpp [395:458]
void PrintAnalyzer::negotiateSMBv2(const SMBv2::NegotiateCommand* cmd,
const SMBv2::NegotiateRequest*,
const SMBv2::NegotiateResponse* res)
{
SMBv2Commands cmdEnum = SMBv2Commands::NEGOTIATE;
print_session(out, cmd) << "\n";
print_smbv2_header(out, cmd->req_header) << "\n";
print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n";
out << " Dialect count = "
<< cmd->parg->dialectCount
<< "\n";
print_enum(out, "Security mode", cmd->parg->securityMode) << "\n";
print_enum(out, "Capabilities", cmd->parg->capabilities) << "\n";
out << " Client Guid = ";
print_guid(out, cmd->parg->clientGUID);
out << "\n";
out << " Boot Time = ";
print_time(out, cmd->parg->clientStartTime) << "\n";
for(int i = 0; i < cmd->parg->dialectCount; i++)
{
out << " Dialect = ";
print_hex16(out, to_integral(cmd->parg->dialects[i]));
out << "\n";
}
print_smbv2_header(out, cmd->res_header) << "\n";
print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n";
print_enum(out, "Security mode", res->securityMode) << "\n";
out << " Dialect = ";
print_hex16(out, res->dialectRevision);
out << "\n";
out << " Server Guid = ";
print_guid(out, res->serverGUID);
out << "\n";
print_enum(out, "Capabilities", res->capabilities);
out << "\n Max Transaction Size = "
<< res->maxTransactSize
<< "\n";
out << " Max Read Size = "
<< res->maxReadSize
<< "\n";
out << " Max Write Size = "
<< res->maxWriteSize
<< "\n";
out << " Current Time = ";
print_time(out, res->systemTime);
out << "\n Boot Time = ";
print_time(out, res->serverStartTime);
}