|
|
|
@ -17,6 +17,7 @@
|
|
|
|
|
|
|
|
|
|
use log::*;
|
|
|
|
|
use nom::{rest, le_u8, le_u16, le_u32, le_u64, IResult};
|
|
|
|
|
use smb::smb::*;
|
|
|
|
|
|
|
|
|
|
#[derive(Debug,PartialEq)]
|
|
|
|
|
pub struct Smb1WriteRequestRecord<'a> {
|
|
|
|
@ -529,6 +530,10 @@ named!(pub parse_smb_create_andx_request_record<SmbRequestCreateAndXRecord>,
|
|
|
|
|
#[derive(Debug,PartialEq)]
|
|
|
|
|
pub struct SmbResponseCreateAndXRecord<'a> {
|
|
|
|
|
pub fid: &'a[u8],
|
|
|
|
|
pub create_ts: SMBFiletime,
|
|
|
|
|
pub last_access_ts: SMBFiletime,
|
|
|
|
|
pub last_write_ts: SMBFiletime,
|
|
|
|
|
pub last_change_ts: SMBFiletime,
|
|
|
|
|
pub file_size: u64,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -541,7 +546,11 @@ named!(pub parse_smb_create_andx_response_record<SmbResponseCreateAndXRecord>,
|
|
|
|
|
>> oplock_level: le_u8
|
|
|
|
|
>> fid: take!(2)
|
|
|
|
|
>> create_action: le_u32
|
|
|
|
|
>> take!(36)
|
|
|
|
|
>> create_ts: le_u64
|
|
|
|
|
>> last_access_ts: le_u64
|
|
|
|
|
>> last_write_ts: le_u64
|
|
|
|
|
>> last_change_ts: le_u64
|
|
|
|
|
>> take!(8)
|
|
|
|
|
>> file_size: le_u64
|
|
|
|
|
>> take!(8)
|
|
|
|
|
>> file_type: le_u16
|
|
|
|
@ -549,6 +558,10 @@ named!(pub parse_smb_create_andx_response_record<SmbResponseCreateAndXRecord>,
|
|
|
|
|
>> is_dir: le_u8
|
|
|
|
|
>> (SmbResponseCreateAndXRecord {
|
|
|
|
|
fid:fid,
|
|
|
|
|
create_ts: SMBFiletime::new(create_ts),
|
|
|
|
|
last_access_ts: SMBFiletime::new(last_access_ts),
|
|
|
|
|
last_write_ts: SMBFiletime::new(last_write_ts),
|
|
|
|
|
last_change_ts: SMBFiletime::new(last_change_ts),
|
|
|
|
|
file_size:file_size,
|
|
|
|
|
}))
|
|
|
|
|
);
|
|
|
|
|