class TurboRex::Windows::Security::ACE
Attributes
flags[R]
type[R]
Public Class Methods
from_raw(raw)
click to toggle source
# File lib/turborex/windows/security/ace.rb, line 13 def self.from_raw(raw) ace_header = TurboRex::Windows::Win32API.decode_c_struct('ACE_HEADER', raw) sid_offset = ace_header.sizeof + 4 type = ace_header.AceType flags = ace_header.AceFlags mask = raw[ace_header.sizeof, 4].unpack('V').first sid = TurboRex::Windows::Win32API.decode_c_struct('SID', raw, sid_offset) ppszsid = TurboRex::Windows::Win32API.alloc_c_ptr('LPSTR') if TurboRex::Windows::Win32API.convertsidtostringsida(sid, ppszsid) == 0 raise "Unable to call ConvertSidToStringSidA. GetLastError returns: #{TurboRex::Windows::Win32API.getlasterror}" end sz_sid = TurboRex::Windows::Win32API.memory_read_strz(ppszsid[0]) case type when TurboRex::Windows::Constants::ACCESS_DENIED_ACE_TYPE AccessDeniedACE.new(mask, sz_sid, flags) when TurboRex::Windows::Constants::ACCESS_ALLOWED_ACE_TYPE AccessAllowedACE.new(mask, sz_sid, flags) end end
new(type, flags)
click to toggle source
# File lib/turborex/windows/security/ace.rb, line 8 def initialize(type, flags) @type = type @flags = flags end