<div dir="ltr">Hey Carl, <div><br></div><div>I copied this into our bug tracker (<a href="https://code.google.com/p/volatility/issues/detail?id=431">https://code.google.com/p/volatility/issues/detail?id=431</a>). Don&#39;t expect an immediate fix, but just wanted you to know it will get addressed...</div>
<div><br></div><div style>MHL</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 19, 2013 at 10:07 AM, Michael Hale Ligh <span dir="ltr">&lt;<a href="mailto:michael.hale@gmail.com" target="_blank">michael.hale@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"><div dir="ltr">Hey Carl, <div><br></div><div>Another way to try would be:</div><div><br></div><div><div>profile.merge_overlay({</div>
<div>   &#39;XXX&#39; : [ None, [&#39;array&#39;, 4, [&#39;Flags&#39;, dict(target = &#39;unsigned long&#39;, bitmap = { &#39;A&#39;: 0, &#39;B&#39;: 1, &#39;C&#39;: 2 })]]],</div>
<div>})</div><div><br></div><div>In that case, Struct.XXX[0] should be the first element in the array which is a Flags type. However, I ran into similar errors as you did, and I&#39;m not entirely sure my approach would produce the structure you need even if it did work. This shows the error that I see:</div>

<div><br></div><div><div>&gt;&gt;&gt; flags = obj.Object(&quot;Array&quot;, targetType = &quot;Flags&quot;, offset = address, vm = addrspace, count = 2)</div><div>Traceback (most recent call last):</div><div>  File &quot;&lt;console&gt;&quot;, line 1, in &lt;module&gt;</div>

<div>  File &quot;/Users/mike/Desktop/volatility/volatility/obj.py&quot;, line 173, in Object</div><div>    result = vm.profile.types[theType](offset = offset, vm = vm, name = name, **kwargs)</div><div>  File &quot;/Users/mike/Desktop/volatility/volatility/obj.py&quot;, line 582, in __init__</div>

<div>    if self.current.size() == 0:</div><div>  File &quot;/Users/mike/Desktop/volatility/volatility/obj.py&quot;, line 435, in size</div><div>    return struct.calcsize(self.format_string)</div><div>TypeError: Struct() argument 1 must be string, not Array</div>

<div><br></div><div>So just posting this here for documentation. Any other devs know why this doesn&#39;t work or how to get around it? </div><span class="HOEnZb"><font color="#888888"><div><br></div><div>MHL</div></font></span></div>
</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Apr 17, 2013 at 5:54 PM, Carl Pulley <span dir="ltr">&lt;<a href="mailto:c.pulley@acme-labs.org.uk" target="_blank">c.pulley@acme-labs.org.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi all,<br>
  I&#39;m currently attempting to code up a bitmap (within an overlay) that consists of an array of 4 ulongs.<br>
<br>
With (say) a single ulong, the following works great:<br>
<br>
  profile.merge_overlay({<br>
    &#39;XXX&#39;: [ None, [&#39;Flags&#39;, {&#39;target&#39;: &#39;unsigned long&#39;, &#39;bitmap&#39;: { &#39;A&#39;: 0, &#39;B&#39;: 1, &#39;C&#39;: 2 }}]]<br>
  })<br>
<br>
However, the obvious generalisation to 4 ulongs:<br>
<br>
  profile.merge_overlay({<br>
    &#39;XXX&#39;: [ None, [&#39;Flags&#39;, {&#39;target&#39;: [&#39;array&#39;, 4, [&#39;unsigned long&#39;]], &#39;bitmap&#39;: { &#39;A&#39;: 0, &#39;B&#39;: 1, &#39;C&#39;: 2 }}]]<br>
  })<br>
<br>
fails. Looking at the source, the profile.merge_overlay calls:<br>
<br>
  obj.Object([&#39;array&#39;, 4, [&#39;unsigned long&#39;]], offset=0, ..)<br>
<br>
and this function in turn raises an exception (i.e. TypeError: unhashable type: &#39;list&#39;) when it calls:<br>
<br>
  vm.profile.has_type([&#39;array&#39;, 4, [&#39;unsigned long&#39;]])<br>
<br>
Attempts at using obj.Array instead also flounder.<br>
<br>
Does anyone have any hints or tips as to how best to deal with bitmaps that are arrays of bytes, ulongs or similar? Is it a case of having to extend the obj.Flags class so that such things can be handled?<br>
<br>
Many thanks,<br>
<br>
  Carl._______________________________________________<br>
Vol-users mailing list<br>
<a href="mailto:Vol-users@volatilityfoundation.org" target="_blank">Vol-users@volatilityfoundation.org</a><br>
<a href="http://lists.volatilityfoundation.org/mailman/listinfo/vol-users" target="_blank">http://lists.volatilityfoundation.org/mailman/listinfo/vol-users</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>