<div dir="ltr">Sure, both the BaseYaraScanner.scan() and DiscontigYaraScanner.scan() functions take starting addresses and maxlen parameters. So you can just set start to <span style="font-family:arial,sans-serif;font-size:13px">0xBFFFF000 and maxlen to 0xFFF. </span></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 17, 2013 at 9:24 AM, Edwin Smulders <span dir="ltr">&lt;<a href="mailto:edwin.smulders@gmail.com" target="_blank">edwin.smulders@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Followup question: can I use yara to match an integer(32) between a<br>
specific range? I did not find this in the documentation, but that<br>
does not always mean it is not possible.<br>
For example, I want to find a pointer of which I know it&#39;s in the<br>
0xBFFFF000-0xBFFFFFFF range. I suppose I could work around that by<br>
searching for a hex string like &quot;BF FF F? ??&quot;, but this does not feel<br>
quite the same... Plus the ranges are not known beforehand, I have to<br>
generate these rules.<br>
<div class="HOEnZb"><div class="h5"><br>
On 16 April 2013 10:22, Edwin Smulders &lt;<a href="mailto:edwin.smulders@gmail.com">edwin.smulders@gmail.com</a>&gt; wrote:<br>
&gt; On 16 April 2013 05:10, Michael Hale Ligh &lt;<a href="mailto:michael.hale@gmail.com">michael.hale@gmail.com</a>&gt; wrote:<br>
&gt;&gt; Hey Edwin,<br>
&gt;&gt;<br>
&gt;&gt; 1) It depends what type of pattern you&#39;re trying to match. If the pattern is<br>
&gt;&gt; a simple byte string like &quot;one&quot; or &quot;\x0d\x0a&quot; you can just do<br>
&gt;&gt; address_space.zread(address, size) == &quot;one&quot;. If the pattern is a regular<br>
&gt;&gt; expression you can also use the python re module (some examples in the<br>
&gt;&gt; moddump and driverirp plugins). Also you can use yara for pattern matching<br>
&gt;&gt; (there&#39;s a yarascan for windows and now a linux_yarascan plugin so look in<br>
&gt;&gt; there for examples). Also if you do happen to want to search also, you can<br>
&gt;&gt; use proc.search_process_memory([&quot;one&quot;, &quot;two&quot;]) etc.<br>
&gt;<br>
&gt; Ahh, yara is more than I thought it was. I&#39;ll have a look at the<br>
&gt; rulesystem, see if it works for my purpose.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2) There is partial documentation on the wiki, see the 2.0 developers guide<br>
&gt;&gt; <a href="https://code.google.com/p/volatility/wiki/VolatilityObjects20" target="_blank">https://code.google.com/p/volatility/wiki/VolatilityObjects20</a>. Its obviously<br>
&gt;&gt; a little dated since we&#39;re almost in 2.3 but most is still accurate. Or just<br>
&gt;&gt; check out how its done in one of the other plugins like dumpcerts<br>
&gt;&gt; (<a href="https://code.google.com/p/volatility/source/browse/trunk/volatility/plugins/dumpcerts.py" target="_blank">https://code.google.com/p/volatility/source/browse/trunk/volatility/plugins/dumpcerts.py</a>)<br>

&gt;&gt; which manually defines a vtype (the structure name, members, offsets, types)<br>
&gt;&gt; and then creates an &quot;object class&quot; (inherits from obj.CType) to give it<br>
&gt;&gt; custom methods etc.<br>
&gt;<br>
&gt; I&#39;ll have a look at the example in dumpcerts, thanks.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hope it helps,<br>
&gt;&gt; MHL<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Apr 15, 2013 at 8:37 AM, Edwin Smulders &lt;<a href="mailto:edwin.smulders@gmail.com">edwin.smulders@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hello all,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I have arrived at an implementation part of my research and I was<br>
&gt;&gt;&gt; wondering if you have any advice or documentation on some &quot;pythonisms&quot;<br>
&gt;&gt;&gt; and &quot;volatility-isms&quot; I could be using to do this implementation.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; My question is two-fold:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 1) I have acquired a small part of memory using read/zread and want to<br>
&gt;&gt;&gt; match (not search) this part of memory to a specific pattern. Do you<br>
&gt;&gt;&gt; know of any pythonisms I could be using, other than checking and<br>
&gt;&gt;&gt; matching byte by byte? Is there some type pattern I could use? I<br>
&gt;&gt;&gt; suspect I&#39;ll just have to evaluate a list of rules, but I figured I&#39;d<br>
&gt;&gt;&gt; ask anyway.<br>
&gt;&gt;&gt; 2) Some parts of memory I am interested in are originally (C) structs,<br>
&gt;&gt;&gt; I&#39;d like to map these to objects similar to the way this is done for<br>
&gt;&gt;&gt; structs like &#39;task_struct&#39; and &#39;mm_struct&#39;, is there any documentation<br>
&gt;&gt;&gt; on the way this is done?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; If it matters, this is all in process address space.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt; Edwin<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Vol-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:Vol-dev@volatilityfoundation.org">Vol-dev@volatilityfoundation.org</a><br>
&gt;&gt;&gt; <a href="http://lists.volatilityfoundation.org/mailman/listinfo/vol-dev" target="_blank">http://lists.volatilityfoundation.org/mailman/listinfo/vol-dev</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
</div></div></blockquote></div><br></div>