<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 21, 2013 at 10:40 PM, Nguyen Anh Quynh <span dir="ltr">&lt;<a href="mailto:aquynh@gmail.com" target="_blank">aquynh@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"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Thu, Nov 21, 2013 at 9:32 PM, Albert López <span dir="ltr">&lt;<a href="mailto:newbiesworld@hotmail.com" target="_blank">newbiesworld@hotmail.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div><div dir="ltr"><font face="Calibri"><br></font>Mmmm, I haven&#39;t played a lot with Radare, but I think that it already has all (or almost all) your &quot;unique features&quot; ;)<div><br></div><div><a href="http://radare.org/y/" target="_blank">http://radare.org/</a></div>


<div><br></div><div>Moreover, they have a great documentation:</div><div><a href="http://radare.org/y/?p=documentation" target="_blank">http://radare.org/y/?p=documentation</a><br><br><div>Just in case you don&#39;t know the tool :)</div>


<div><font face="Courier New" size="1"><br></font></div></div></div></div></blockquote><div><br></div></div><div>cool, your observation is really interesting! yes, i am well aware of Radare, which is an excellent tool in my opinion. however, with all due respect, there are some differences that i want to elaborate here:<br>


<br></div><div>- first of all, Radare is not really a &quot;lightweight&quot; disasm framework. in fact it is more like a tool set that includes a lot of small libs and tools inside. you can do, but i think it is not very trivial to use Radare as disasm framework, which is not its main task.<br>


<br></div><div>- on supporting hardware architectures (X86 + ARM 
+ ARM-64 + Mips): Radare relies on a bunch of disasm engines, but most of them are really outdated, with no support for newer instructions &amp; CPU extensions. that is true on all above archs, with no exception i guess. on the other hand, we believe Capstone has better support for these archs. (of course Radare works for a lot other archs, but that is not what we focus on so far)<br>


<br></div><div>- on decomposition functionality, as said above, Radare doesn&#39;t seem to do that itself, but relies on other frameworks (correct me if i am wrong here). and even Radare can do that, i doubt that it supports all above archs.<br>


<br></div><div>- on instruction semantics, i am not sure if Radare give us the list of implicit registers read/written for disasm instructions, or if it can do that for all above archs. somebody can enlighten me here, if i am wrong.<br>


<br></div><div>- on API, i am quite confident that Capstone API is as simple/clean/lightweight/intuitive as anything else, or even more. this is the key when we designed the API. lets see if this is true when the framework is released - soon after testing phase.<br>


<br></div><div>- on bindings: i am not sure if Radare has a list of bindings like Capstone, which includes Python, Ruby, Ocaml, Java, C# &amp; Go. and these bindings are all manually written to be lightweight and efficient, as we dont like bloated SWIG.<br>

</div></div></div></div></blockquote><div><br></div><div>well, just found from the doc that Radare has a lot more bindings. thanks to SWIG, i guess?<br><br></div><div>still i am not sure if the bindings can be used for disasm purpose, however. soon enough, somebody will come here to enlighten me, i guess :-)<br>

<br>cheers,<br>Q<br><br><br></div></div></div></div>