Files
metasploit-gs/api/Msf/FrameworkEventSubscriber.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

1689 lines
60 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Msf::FrameworkEventSubscriber
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Msf::FrameworkEventSubscriber";
relpath = '../';
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../_index.html">Index (F)</a> &raquo;
<span class='title'><span class='object_link'><a href="../Msf.html" title="Msf (module)">Msf</a></span></span>
&raquo;
<span class="title">FrameworkEventSubscriber</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Msf::FrameworkEventSubscriber
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Msf::FrameworkEventSubscriber</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Includes:</dt>
<dd><span class='object_link'><a href="Framework/Offspring.html" title="Msf::Framework::Offspring (module)">Msf::Framework::Offspring</a></span>, <span class='object_link'><a href="GeneralEventSubscriber.html" title="Msf::GeneralEventSubscriber (module)">GeneralEventSubscriber</a></span>, <span class='object_link'><a href="SessionEvent.html" title="Msf::SessionEvent (module)">SessionEvent</a></span>, <span class='object_link'><a href="UiEventSubscriber.html" title="Msf::UiEventSubscriber (module)">UiEventSubscriber</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/framework.rb</dd>
</dl>
</div>
<h2>Instance Attribute Summary</h2>
<h3 class="inherited">Attributes included from <span class='object_link'><a href="Framework/Offspring.html" title="Msf::Framework::Offspring (module)">Msf::Framework::Offspring</a></span></h3>
<p class="inherited"><span class='object_link'><a href="Framework/Offspring.html#framework-instance_method" title="Msf::Framework::Offspring#framework (method)">#framework</a></span></p>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(framework) &#x21d2; FrameworkEventSubscriber </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>A new instance of FrameworkEventSubscriber.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#module_event-instance_method" title="#module_event (instance method)">#<strong>module_event</strong>(name, instance, opts = {}) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generic handler for module events.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_module_complete-instance_method" title="#on_module_complete (instance method)">#<strong>on_module_complete</strong>(instance) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::GeneralEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_module_error-instance_method" title="#on_module_error (instance method)">#<strong>on_module_error</strong>(instance, exception = nil) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::GeneralEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_module_run-instance_method" title="#on_module_run (instance method)">#<strong>on_module_run</strong>(instance) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::GeneralEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_close-instance_method" title="#on_session_close (instance method)">#<strong>on_session_close</strong>(session, reason = &#39;&#39;) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_command-instance_method" title="#on_session_command (instance method)">#<strong>on_session_command</strong>(session, command) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_download-instance_method" title="#on_session_download (instance method)">#<strong>on_session_download</strong>(session, rpath, lpath) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_module_run-instance_method" title="#on_session_module_run (instance method)">#<strong>on_session_module_run</strong>(session, mod) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_open-instance_method" title="#on_session_open (instance method)">#<strong>on_session_open</strong>(session) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_output-instance_method" title="#on_session_output (instance method)">#<strong>on_session_output</strong>(session, output) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_route-instance_method" title="#on_session_route (instance method)">#<strong>on_session_route</strong>(session, route) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_route_remove-instance_method" title="#on_session_route_remove (instance method)">#<strong>on_session_route_remove</strong>(session, route) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_script_run-instance_method" title="#on_session_script_run (instance method)">#<strong>on_session_script_run</strong>(session, script) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_session_upload-instance_method" title="#on_session_upload (instance method)">#<strong>on_session_upload</strong>(session, lpath, rpath) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::SessionEvent implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_ui_command-instance_method" title="#on_ui_command (instance method)">#<strong>on_ui_command</strong>(command) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::UiEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_ui_start-instance_method" title="#on_ui_start (instance method)">#<strong>on_ui_start</strong>(rev) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::UiEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_ui_stop-instance_method" title="#on_ui_stop (instance method)">#<strong>on_ui_stop</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>:category: ::Msf::UiEventSubscriber implementors.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#report_event-instance_method" title="#report_event (instance method)">#<strong>report_event</strong>(data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_event-instance_method" title="#session_event (instance method)">#<strong>session_event</strong>(name, session, opts = {}) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generic handler for session events.</p>
</div></span>
</li>
</ul>
<h3 class="inherited">Methods included from <span class='object_link'><a href="SessionEvent.html" title="Msf::SessionEvent (module)">SessionEvent</a></span></h3>
<p class="inherited"><span class='object_link'><a href="SessionEvent.html#on_session_filedelete-instance_method" title="Msf::SessionEvent#on_session_filedelete (method)">#on_session_filedelete</a></span>, <span class='object_link'><a href="SessionEvent.html#on_session_interact-instance_method" title="Msf::SessionEvent#on_session_interact (method)">#on_session_interact</a></span></p>
<h3 class="inherited">Methods included from <span class='object_link'><a href="GeneralEventSubscriber.html" title="Msf::GeneralEventSubscriber (module)">GeneralEventSubscriber</a></span></h3>
<p class="inherited"><span class='object_link'><a href="GeneralEventSubscriber.html#on_module_created-instance_method" title="Msf::GeneralEventSubscriber#on_module_created (method)">#on_module_created</a></span>, <span class='object_link'><a href="GeneralEventSubscriber.html#on_module_load-instance_method" title="Msf::GeneralEventSubscriber#on_module_load (method)">#on_module_load</a></span></p>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong>(framework) &#x21d2; <tt><span class='object_link'><a href="" title="Msf::FrameworkEventSubscriber (class)">FrameworkEventSubscriber</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a new instance of FrameworkEventSubscriber.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
322
323
324</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 322</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span> <span class='op'>=</span> <span class='id identifier rubyid_framework'>framework</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="module_event-instance_method">
#<strong>module_event</strong>(name, instance, opts = {}) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generic handler for module events</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 337</span>
<span class='kw'>def</span> <span class='id identifier rubyid_module_event'>module_event</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_instance'>instance</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span>
<span class='id identifier rubyid_event'>event</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='symbol'>:workspace</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span>
<span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_owner'>owner</span><span class='comma'>,</span>
<span class='symbol'>:info</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
<span class='symbol'>:module_name</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_fullname'>fullname</span><span class='comma'>,</span>
<span class='symbol'>:module_uuid</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_uuid'>uuid</span>
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_module_complete-instance_method">
#<strong>on_module_complete</strong>(instance) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::GeneralEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
362
363
364</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 362</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_module_complete'>on_module_complete</span><span class='lparen'>(</span><span class='id identifier rubyid_instance'>instance</span><span class='rparen'>)</span>
<span class='id identifier rubyid_module_event'>module_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module_complete</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_instance'>instance</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_module_error-instance_method">
#<strong>on_module_error</strong>(instance, exception = nil) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::GeneralEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
368
369
370</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 368</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_module_error'>on_module_error</span><span class='lparen'>(</span><span class='id identifier rubyid_instance'>instance</span><span class='comma'>,</span> <span class='id identifier rubyid_exception'>exception</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_module_event'>module_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module_error</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_instance'>instance</span><span class='comma'>,</span> <span class='symbol'>:exception</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_exception'>exception</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_module_run-instance_method">
#<strong>on_module_run</strong>(instance) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::GeneralEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
355
356
357
358</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 355</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_module_run'>on_module_run</span><span class='lparen'>(</span><span class='id identifier rubyid_instance'>instance</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:datastore</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_module_event'>module_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module_run</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_instance'>instance</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_close-instance_method">
#<strong>on_session_close</strong>(session, reason = &#39;&#39;) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
477
478
479
480
481
482
483
484
485</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 477</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_close'>on_session_close</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_reason'>reason</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_close</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_db_record'>db_record</span>
<span class='comment'># Don&#39;t bother saving here, the session&#39;s cleanup method will take
</span> <span class='comment'># care of that later.
</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_db_record'>db_record</span><span class='period'>.</span><span class='id identifier rubyid_close_reason'>close_reason</span> <span class='op'>=</span> <span class='id identifier rubyid_reason'>reason</span>
<span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_db_record'>db_record</span><span class='period'>.</span><span class='id identifier rubyid_closed_at'>closed_at</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_command-instance_method">
#<strong>on_session_command</strong>(session, command) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
493
494
495
496
497
498
499
500</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 493</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_command'>on_session_command</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_command</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='symbol'>:command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>command</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_command'>command</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_download-instance_method">
#<strong>on_session_download</strong>(session, rpath, lpath) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
465
466
467
468
469
470
471
472
473</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 465</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_download'>on_session_download</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='comma'>,</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='rparen'>)</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_download</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='comma'>,</span> <span class='symbol'>:remote_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>download</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='comma'>,</span>
<span class='symbol'>:remote_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_rpath'>rpath</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_module_run-instance_method">
#<strong>on_session_module_run</strong>(session, mod) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
549
550
551
552
553
554
555</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 549</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_module_run'>on_session_module_run</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_mod'>mod</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module_run</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_fullname'>fullname</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_open-instance_method">
#<strong>on_session_open</strong>(session) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
446
447
448
449
450</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 446</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_open'>on_session_open</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:datastore</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_exploit_datastore'>exploit_datastore</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span><span class='comma'>,</span> <span class='symbol'>:critical</span> <span class='op'>=&gt;</span> <span class='kw'>true</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_open</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session'>report_session</span><span class='lparen'>(</span><span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_output-instance_method">
#<strong>on_session_output</strong>(session, output) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 504</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_output'>on_session_output</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_output'>output</span><span class='rparen'>)</span>
<span class='comment'># Break up the output into chunks that will fit into the database.
</span> <span class='id identifier rubyid_buff'>buff</span> <span class='op'>=</span> <span class='id identifier rubyid_output'>output</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
<span class='id identifier rubyid_chunks'>chunks</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_buff'>buff</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;</span> <span class='int'>1024</span>
<span class='kw'>while</span> <span class='id identifier rubyid_buff'>buff</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;</span> <span class='int'>0</span>
<span class='id identifier rubyid_chunks'>chunks</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_buff'>buff</span><span class='period'>.</span><span class='id identifier rubyid_slice!'>slice!</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span><span class='int'>1024</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_chunks'>chunks</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_buff'>buff</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_chunks'>chunks</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_chunk'>chunk</span><span class='op'>|</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_output</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='symbol'>:output</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_chunk'>chunk</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>output</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:output</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_chunk'>chunk</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_route-instance_method">
#<strong>on_session_route</strong>(session, route) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
527
528
529</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 527</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_route'>on_session_route</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_route'>route</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_route'>report_session_route</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>session:</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='label'>route:</span> <span class='id identifier rubyid_route'>route</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_route_remove-instance_method">
#<strong>on_session_route_remove</strong>(session, route) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
533
534
535</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 533</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_route_remove'>on_session_route_remove</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_route'>route</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_route_remove'>report_session_route_remove</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>session:</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='label'>route:</span> <span class='id identifier rubyid_route'>route</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_script_run-instance_method">
#<strong>on_session_script_run</strong>(session, script) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
539
540
541
542
543
544
545</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 539</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_script_run'>on_session_script_run</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_script'>script</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>script_run</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_script'>script</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_session_upload-instance_method">
#<strong>on_session_upload</strong>(session, lpath, rpath) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::SessionEvent implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
454
455
456
457
458
459
460
461
462</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 454</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_session_upload'>on_session_upload</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='comma'>,</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='rparen'>)</span>
<span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>session_upload</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='comma'>,</span> <span class='symbol'>:remote_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_session_event'>report_session_event</span><span class='lparen'>(</span><span class='lbrace'>{</span>
<span class='symbol'>:etype</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>upload</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span>
<span class='symbol'>:local_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_lpath'>lpath</span><span class='comma'>,</span>
<span class='symbol'>:remote_path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_rpath'>rpath</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_ui_command-instance_method">
#<strong>on_ui_command</strong>(command) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::UiEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
375
376
377
378
379</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 375</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_ui_command'>on_ui_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span> <span class='kw'>and</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span><span class='rparen'>)</span>
<span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ui_command</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:info</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='symbol'>:command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_command'>command</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_ui_start-instance_method">
#<strong>on_ui_start</strong>(rev) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::UiEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
391
392
393
394
395
396
397
398
399</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 391</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_ui_start'>on_ui_start</span><span class='lparen'>(</span><span class='id identifier rubyid_rev'>rev</span><span class='rparen'>)</span>
<span class='comment'>#
</span> <span class='comment'># The database is not active at startup time unless msfconsole was
</span> <span class='comment'># started with a database.yml, so this event won&#39;t always be saved to
</span> <span class='comment'># the db. Not great, but best we can do.
</span> <span class='comment'>#
</span> <span class='id identifier rubyid_info'>info</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:revision</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_rev'>rev</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ui_start</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:info</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_info'>info</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_ui_stop-instance_method">
#<strong>on_ui_stop</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>:category: ::Msf::UiEventSubscriber implementors</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
383
384
385
386
387</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 383</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_ui_stop'>on_ui_stop</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span> <span class='kw'>and</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span><span class='rparen'>)</span>
<span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ui_stop</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="report_event-instance_method">
#<strong>report_event</strong>(data) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
326
327
328
329
330</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 326</span>
<span class='kw'>def</span> <span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_event-instance_method">
#<strong>session_event</strong>(name, session, opts = {}) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generic handler for session events</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/framework.rb', line 407</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_event'>session_event</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_session_host'>session_host</span>
<span class='kw'>if</span> <span class='kw'>not</span> <span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span> <span class='kw'>and</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;</span> <span class='int'>0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_elog'><span class='object_link'><a href="../top-level-namespace.html#elog-instance_method" title="#elog (method)">elog</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Session with no session_host/target_host/tunnel_peer. Session Info: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>return</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span>
<span class='id identifier rubyid_ws'>ws</span> <span class='op'>=</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_each_key'>each_key</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_attr'>attr</span><span class='op'>|</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_attr'>attr</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_force_encoding'>force_encoding</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>UTF-8</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_attr'>attr</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_event'>event</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='symbol'>:workspace</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ws'>ws</span><span class='comma'>,</span>
<span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span><span class='comma'>,</span>
<span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span>
<span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_address'>address</span><span class='comma'>,</span>
<span class='symbol'>:info</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
<span class='symbol'>:session_id</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_sid'>sid</span><span class='comma'>,</span>
<span class='symbol'>:session_info</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='comma'>,</span>
<span class='symbol'>:session_uuid</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_uuid'>uuid</span><span class='comma'>,</span>
<span class='symbol'>:session_type</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
<span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span><span class='comma'>,</span>
<span class='symbol'>:target_host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_address'>address</span><span class='comma'>,</span>
<span class='symbol'>:via_exploit</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_via_exploit'>via_exploit</span><span class='comma'>,</span>
<span class='symbol'>:via_payload</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_via_payload'>via_payload</span><span class='comma'>,</span>
<span class='symbol'>:tunnel_peer</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span><span class='comma'>,</span>
<span class='symbol'>:exploit_uuid</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_exploit_uuid'>exploit_uuid</span>
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:03:18 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>