Add preserved_identifiers support
parent
2fe40a0e04
commit
4bd2be5dfa
|
@ -8,7 +8,8 @@ module Msf
|
|||
def initialize(info={})
|
||||
super
|
||||
register_advanced_options([
|
||||
OptInt.new('JsObfuscate', [false, "Number of times to obfuscate JavaScript", 0])
|
||||
OptInt.new('JsObfuscate', [false, "Number of times to obfuscate JavaScript", 0]),
|
||||
OptString.new('Identifiers', [false, "Identifiers to preserve for JsObfu"])
|
||||
], Exploit::JSObfu)
|
||||
end
|
||||
|
||||
|
@ -18,14 +19,20 @@ module Msf
|
|||
# @param js [String] JavaScript code
|
||||
# @param opts [Hash] obfuscation options
|
||||
# * :iterations [FixNum] Number of times to obfuscate
|
||||
# * :preserved_identifiers [Array] An array of identifiers to preserve during obfuscation
|
||||
# @return [::Rex::Exploitation::JSObfu]
|
||||
#
|
||||
def js_obfuscate(js, opts={})
|
||||
iterations = (opts[:iterations] || datastore['JsObfuscate']).to_i
|
||||
identifiers = (opts[:preserved_identifiers] || datastore['Identifiers'] || '').split(',')
|
||||
obfu = ::Rex::Exploitation::JSObfu.new(js)
|
||||
obfu.obfuscate(:iterations=>iterations)
|
||||
obfu_opts = {}
|
||||
obfu_opts.merge!(iterations: iterations)
|
||||
obfu_opts.merge!(preserved_identifiers: identifiers)
|
||||
|
||||
obfu.obfuscate(obfu_opts)
|
||||
obfu
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -32,6 +32,10 @@ module Jsobfu
|
|||
options[:output] = v
|
||||
end
|
||||
|
||||
opt.on('-p', '--preserved-identifiers id1,id2', 'The identifiers to preserve') do |v|
|
||||
options[:preserved_identifiers] = v.split(',')
|
||||
end
|
||||
|
||||
opt.on_tail('-h', '--help', 'Show this message') do
|
||||
$stdout.puts opt
|
||||
exit
|
||||
|
@ -67,7 +71,10 @@ module Jsobfu
|
|||
def run
|
||||
original_js = read_js(@opts[:input])
|
||||
js = ::Rex::Exploitation::JSObfu.new(original_js)
|
||||
js.obfuscate(:iterations=>@opts[:iteration].to_i)
|
||||
obfu_opts = {}
|
||||
obfu_opts.merge!(iterations: @opts[:iteration].to_i)
|
||||
obfu_opts.merge!(preserved_identifiers: @opts[:preserved_identifiers] || [])
|
||||
js.obfuscate(obfu_opts)
|
||||
js = js.to_s
|
||||
|
||||
output_stream = $stdout
|
||||
|
|
Loading…
Reference in New Issue