Skip to content

Commit b277f58

Browse files
committed
Use railgun helper functions
1 parent 2ed02c3 commit b277f58

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lib/msf/core/exploit/local/windows_kernel.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,23 @@ def find_haldispatchtable
4848
# @return [nil] If the name specified could not be found.
4949
#
5050
def find_sys_base(drvname)
51-
if sysinfo['Architecture'] =~ /(x86|wow64)/i
52-
ptr_size = 4
51+
if session.railgun.util.pointer_size == 8
52+
ptr = '<Q'
5353
else
54-
ptr_size = 8
54+
ptr = 'V'
5555
end
5656

57-
results = session.railgun.psapi.EnumDeviceDrivers(0, 0, ptr_size)
57+
results = session.railgun.psapi.EnumDeviceDrivers(0, 0, session.railgun.util.pointer_size)
5858
unless results['return']
5959
print_error("EnumDeviceDrivers failed (error: #{results['GetLastError']} #{results['ErrorMessage']})")
6060
return nil
6161
end
62-
results = session.railgun.psapi.EnumDeviceDrivers(results['lpcbNeeded'], results['lpcbNeeded'], ptr_size)
62+
results = session.railgun.psapi.EnumDeviceDrivers(results['lpcbNeeded'], results['lpcbNeeded'], session.railgun.util.pointer_size)
6363
unless results['return']
6464
print_error("EnumDeviceDrivers failed (error: #{results['GetLastError']} #{results['ErrorMessage']})")
6565
return nil
6666
end
67-
addresses = results['lpImageBase'][0..results['lpcbNeeded'] - 1].unpack((ptr_size == 4 ? 'V' : 'Q') + '*')
67+
addresses = results['lpImageBase'][0..results['lpcbNeeded'] - 1].unpack("#{ptr}*")
6868

6969
addresses.each do |address|
7070
results = session.railgun.psapi.GetDeviceDriverBaseNameA(address, 48, 48)

0 commit comments

Comments
 (0)