<div dir="ltr"><div>Yes, DBI and emulation can be very convenient but ultimately a hardware-based method using JTAG has to be considered.if other methods are not viable.</div><div>Interesting link, I&#39;ll have a look.</div><div><br></div><div>Gilles</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-18 15:42 GMT+00:00 Brendan Dolan-Gavitt <span dir="ltr">&lt;<a href="mailto:brendandg@gatech.edu" target="_blank">brendandg@gatech.edu</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes; PANDA does not use DBI, but rather emulates the whole system<br>
using QEMU and instruments the code that implements memory accesses in<br>
QEMU. You can find that in softmmu_template.h.<br>
<br>
In theory one could also trace memory accesses in real hardware; some<br>
folks recently did that on an embedded platform:<br>
<br>
<a href="https://www.acsac.org/2015/openconf/modules/request.php?module=oc_program&amp;action=summary.php&amp;id=119" target="_blank" rel="noreferrer">https://www.acsac.org/2015/openconf/modules/request.php?module=oc_program&amp;action=summary.php&amp;id=119</a><br>
<br>
-Brendan<br>
<div><div class="h5"><br>
On Fri, Dec 18, 2015 at 6:43 AM, gilles B &lt;<a href="mailto:gillusg75@gmail.com">gillusg75@gmail.com</a>&gt; wrote:<br>
&gt; I forgot the references:<br>
&gt; [1]<br>
&gt; <a href="https://software.intel.com/en-us/articles/pin-a-binary-instrumentation-tool-papers" target="_blank" rel="noreferrer">https://software.intel.com/en-us/articles/pin-a-binary-instrumentation-tool-papers</a><br>
&gt; [2] <a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-606.pdf" target="_blank" rel="noreferrer">https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-606.pdf</a><br>
&gt;<br>
&gt; 2015-12-18 11:42 GMT+00:00 gilles B &lt;<a href="mailto:gillusg75@gmail.com">gillusg75@gmail.com</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt; Hello guys,<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m actually trying to understand if the plugin memdump associated with<br>
&gt;&gt; the plugin tapindex implements some kind of instrumentation.<br>
&gt;&gt; This is the case of the PIN tool [1] by example which implements what you<br>
&gt;&gt; call DBI (Dynamic Binary Instrumentation [2]).<br>
&gt;&gt; With PANDA, from a theoretical point of view, it seems that thanks to<br>
&gt;&gt; QEMU, you can just record all the memory activity (memory reads and writes)<br>
&gt;&gt; through emulation without using DBI, is it the case with the plugin memdump?<br>
&gt;&gt; As some programs implement some countermeasures against DBI, then only<br>
&gt;&gt; emulaton frameworks would allow to capture memory traces conveniently. Of<br>
&gt;&gt; course if the program implements some coutnermeasures against emulation in<br>
&gt;&gt; addition of DBI, then it gets difficult.<br>
&gt;&gt; I&#39;m actually studying the code step by step to figure out, but if you can<br>
&gt;&gt; guide me, I would be happy.<br>
&gt;&gt;<br>
&gt;&gt; BR,<br>
&gt;&gt;<br>
&gt;&gt; Gilles<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; panda-users mailing list<br>
&gt; <a href="mailto:panda-users@mit.edu">panda-users@mit.edu</a><br>
&gt; <a href="http://mailman.mit.edu/mailman/listinfo/panda-users" target="_blank" rel="noreferrer">http://mailman.mit.edu/mailman/listinfo/panda-users</a><br>
&gt;<br>
</blockquote></div><br></div>