diff --git a/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb b/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb index 58ac1720ba..ce4e98d181 100644 --- a/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb +++ b/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb @@ -99,7 +99,7 @@ class DLL # ["DWORD","uType","in"], # ]) # - # Use +windows_name+ when the actual windows name is different from the + # Use +remote_name+ when the actual library name is different from the # ruby variable. You might need to do this for example when the actual # func name is myFunc@4 or when you want to create an alternative version # of an existing function. @@ -107,11 +107,11 @@ class DLL # When the new function is called it will return a list containing the # return value and all inout params. See #call_function. # - def add_function(name, return_type, params, windows_name=nil, calling_conv="stdcall") - if windows_name == nil - windows_name = name + def add_function(name, return_type, params, remote_name=nil, calling_conv="stdcall") + if remote_name == nil + remote_name = name end - @functions[name] = DLLFunction.new(return_type, params, windows_name, calling_conv) + @functions[name] = DLLFunction.new(return_type, params, remote_name, calling_conv) end private @@ -125,8 +125,6 @@ class DLL native = 'V' end -#puts "process_function_call(function.windows_name,#{PP.pp(args, "")})" - # We transmit the immediate stack and three heap-buffers: # in, inout and out. The reason behind the separation is bandwidth. # We don't want to transmit uninitialized data in or no-longer-needed data out. @@ -261,8 +259,8 @@ class DLL request.add_tlv(TLV_TYPE_RAILGUN_BUFFERBLOB_IN, in_only_buffer) request.add_tlv(TLV_TYPE_RAILGUN_BUFFERBLOB_INOUT, inout_buffer) - request.add_tlv(TLV_TYPE_RAILGUN_DLLNAME, @dll_path ) - request.add_tlv(TLV_TYPE_RAILGUN_FUNCNAME, function.windows_name) + request.add_tlv(TLV_TYPE_RAILGUN_DLLNAME, @dll_path) + request.add_tlv(TLV_TYPE_RAILGUN_FUNCNAME, function.remote_name) request.add_tlv(TLV_TYPE_RAILGUN_CALLCONV, function.calling_conv) response = client.send_request(request) @@ -368,7 +366,7 @@ class DLL #=== START of proccess_function_call snapshot === # { # :platform => '#{native == 'Q' ? 'x64/windows' : 'x86/windows'}', -# :name => '#{function.windows_name}', +# :name => '#{function.remote_name}', # :params => #{function.params}, # :return_type => '#{function.return_type}', # :dll_name => '#{@dll_path}', @@ -379,7 +377,7 @@ class DLL # TLV_TYPE_RAILGUN_BUFFERBLOB_IN => #{in_only_buffer.inspect}, # TLV_TYPE_RAILGUN_BUFFERBLOB_INOUT => #{inout_buffer.inspect}, # TLV_TYPE_RAILGUN_DLLNAME => '#{@dll_path}', -# TLV_TYPE_RAILGUN_FUNCNAME => '#{function.windows_name}', +# TLV_TYPE_RAILGUN_FUNCNAME => '#{function.remote_name}', # }, # :response_from_client => { # TLV_TYPE_RAILGUN_BACK_BUFFERBLOB_INOUT => #{rec_inout_buffers.inspect}, diff --git a/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb b/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb index 4e47d1ed13..9b5827f909 100644 --- a/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb +++ b/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb @@ -53,15 +53,15 @@ class DLLFunction @@directions = ["in", "out", "inout", "return"].freeze - attr_reader :return_type, :params, :windows_name, :calling_conv + attr_reader :return_type, :params, :remote_name, :calling_conv - def initialize(return_type, params, windows_name, calling_conv="stdcall") + def initialize(return_type, params, remote_name, calling_conv="stdcall") check_return_type(return_type) # we do error checking as early as possible so the library is easier to use check_params(params) check_calling_conv(calling_conv) @return_type = return_type @params = params - @windows_name = windows_name + @remote_name = remote_name @calling_conv = calling_conv end diff --git a/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb b/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb index a7532217db..5218a71493 100644 --- a/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb +++ b/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb @@ -75,7 +75,6 @@ class MultiCaller end raise "#{function.params.length} arguments expected. #{args.length} arguments provided." unless args.length == function.params.length - #puts "process_function_call(function.windows_name,#{PP.pp(args, "")})" # We transmit the immediate stack and three heap-buffers: # in, inout and out. The reason behind the separation is bandwidth. @@ -210,7 +209,7 @@ class MultiCaller group.add_tlv(TLV_TYPE_RAILGUN_BUFFERBLOB_IN, in_only_buffer) group.add_tlv(TLV_TYPE_RAILGUN_BUFFERBLOB_INOUT, inout_buffer) group.add_tlv(TLV_TYPE_RAILGUN_DLLNAME, dll_host.dll_path) - group.add_tlv(TLV_TYPE_RAILGUN_FUNCNAME, function.windows_name) + group.add_tlv(TLV_TYPE_RAILGUN_FUNCNAME, function.remote_name) request.tlvs << group layouts << [inout_layout, out_only_layout]