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

500 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Msf::Exploit::RIFF
&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::Exploit::RIFF";
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 (R)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Exploit.html" title="Msf::Exploit (class)">Exploit</a></span></span>
&raquo;
<span class="title">RIFF</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>Module: Msf::Exploit::RIFF
</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/exploit/riff.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>This module provides some functions for dealing with MCI RIFF data</p>
</div>
</div>
<div class="tags">
</div>
<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="#random_riff_chunk-instance_method" title="#random_riff_chunk (instance method)">#<strong>random_riff_chunk</strong>(len = rand(128) + 1) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generates a random RIFF chunk, up to 136 bytes.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#random_riff_chunks-instance_method" title="#random_riff_chunks (instance method)">#<strong>random_riff_chunks</strong>(count = rand(16) + 17) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generates a random number of random RIFF chunks, up to 4352 bytes.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#random_riff_tag-instance_method" title="#random_riff_tag (instance method)">#<strong>random_riff_tag</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generates a random RIFF tag, making sure that its not one of the tags processed by LoadAniIcon or LoadCursorIconFromFileMap.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#riff_chunk-instance_method" title="#riff_chunk (instance method)">#<strong>riff_chunk</strong>(tag, data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Builds a RIFF chunk with a specified tag and data.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#riff_list_chunk-instance_method" title="#riff_list_chunk (instance method)">#<strong>riff_list_chunk</strong>(tag, type, data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Builds a RIFF list chunk (one containing other chunks).</p>
</div></span>
</li>
</ul>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="random_riff_chunk-instance_method">
#<strong>random_riff_chunk</strong>(len = rand(128) + 1) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generates a random RIFF chunk, up to 136 bytes</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
51
52
53</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/riff.rb', line 51</span>
<span class='kw'>def</span> <span class='id identifier rubyid_random_riff_chunk'>random_riff_chunk</span><span class='lparen'>(</span><span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='int'>128</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='int'>1</span><span class='rparen'>)</span>
<span class='id identifier rubyid_riff_chunk'>riff_chunk</span><span class='lparen'>(</span><span class='id identifier rubyid_random_riff_tag'>random_riff_tag</span><span class='comma'>,</span> <span class='id identifier rubyid_rand_text'>rand_text</span><span class='lparen'>(</span><span class='id identifier rubyid_len'>len</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="random_riff_chunks-instance_method">
#<strong>random_riff_chunks</strong>(count = rand(16) + 17) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generates a random number of random RIFF chunks, up to 4352 bytes</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
38
39
40
41
42
43
44
45
46</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/riff.rb', line 38</span>
<span class='kw'>def</span> <span class='id identifier rubyid_random_riff_chunks'>random_riff_chunks</span><span class='lparen'>(</span><span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='int'>16</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='int'>17</span><span class='rparen'>)</span>
<span class='id identifier rubyid_chunks'>chunks</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_count'>count</span><span class='rparen'>)</span> <span class='kw'>do</span>
<span class='id identifier rubyid_chunks'>chunks</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_random_riff_chunk'>random_riff_chunk</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='id identifier rubyid_chunks'>chunks</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="random_riff_tag-instance_method">
#<strong>random_riff_tag</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generates a random RIFF tag, making sure that its not one of the tags processed by LoadAniIcon or LoadCursorIconFromFileMap</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
60
61
62
63
64
65
66
67
68
69</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/riff.rb', line 60</span>
<span class='kw'>def</span> <span class='id identifier rubyid_random_riff_tag'>random_riff_tag</span>
<span class='id identifier rubyid_valid'>valid</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>RIFF</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ACON</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>anih</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LIST</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>fram</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>icon</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>rate</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='id identifier rubyid_tag'>tag</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>begin</span>
<span class='id identifier rubyid_tag'>tag</span> <span class='op'>=</span> <span class='id identifier rubyid_rand_text_alpha'>rand_text_alpha</span><span class='lparen'>(</span><span class='int'>4</span><span class='rparen'>)</span>
<span class='kw'>end</span> <span class='kw'>while</span> <span class='id identifier rubyid_valid'>valid</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_tag'>tag</span>
<span class='kw'>return</span> <span class='id identifier rubyid_tag'>tag</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="riff_chunk-instance_method">
#<strong>riff_chunk</strong>(tag, data) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Builds a RIFF chunk with a specified tag and data</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
16
17
18
19
20
21
22</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/riff.rb', line 16</span>
<span class='kw'>def</span> <span class='id identifier rubyid_riff_chunk'>riff_chunk</span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
<span class='id identifier rubyid_padding'>padding</span> <span class='op'>=</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>%</span> <span class='int'>2</span> <span class='comment'># RIFF chunks must be 2 byte aligned
</span>
<span class='kw'>return</span> <span class='id identifier rubyid_tag'>tag</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>V</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='id identifier rubyid_data'>data</span> <span class='op'>+</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\x00</span><span class='tstring_end'>&quot;</span></span> <span class='op'>*</span> <span class='id identifier rubyid_padding'>padding</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="riff_list_chunk-instance_method">
#<strong>riff_list_chunk</strong>(tag, type, data) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Builds a RIFF list chunk (one containing other chunks)</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
27
28
29
30
31
32
33</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/riff.rb', line 27</span>
<span class='kw'>def</span> <span class='id identifier rubyid_riff_list_chunk'>riff_list_chunk</span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>+</span> <span class='int'>4</span>
<span class='id identifier rubyid_padding'>padding</span> <span class='op'>=</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>%</span> <span class='int'>2</span>
<span class='kw'>return</span> <span class='id identifier rubyid_tag'>tag</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>V</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>+</span> <span class='id identifier rubyid_data'>data</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:01:05 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>