{"id":116,"date":"2009-10-02T06:31:15","date_gmt":"2009-10-02T08:31:15","guid":{"rendered":"http:\/\/www.ragestorm.net\/blogs\/?p=116"},"modified":"2009-12-29T18:34:29","modified_gmt":"2009-12-29T20:34:29","slug":"distorm3-call-for-features","status":"publish","type":"post","link":"https:\/\/www.ragestorm.net\/blogs\/?p=116","title":{"rendered":"diStorm3 &#8211; Call for Features"},"content":{"rendered":"<p>[<strong>Update <\/strong>&#8211; <a href=\"http:\/\/www.ragestorm.net\/blogs\/?p=199\">diStorm3 News<\/a>]<\/p>\n<p>I have been working more and more on diStorm3 recently. The core code is already written, and it works so great. I am still not going to talk about the structure itself that diStorm uses to format the instructions. There are two API&#8217;s now, the old one, which takes a stream and formats it to text and a newer one, which takes a stream and formats it into structures. This one is much faster. Unlike diStorm64, where the text-formatting was coupled in the decoding code, it&#8217;s totally separated. For example, if you want to support AT&#038;T syntax, you can do it in a couple of hours or less, really. I don&#8217;t like AT&#038;T syntax, hence I am not going to implement it. I bet still many people don&#8217;t know how to read it without confusing&#8230;<\/p>\n<p>Hereby, I am asking you guys to come up with ideas for diStorm3. So far I got some new ideas from people, which I am going to implement. Such as:<br \/>\n1) You will be able to tell the decoder to stop on any flow control instruction.<br \/>\n2) Instructions are going to be categorized, such as, flow-control, data-control, string instructions, io, etc. (To be honest, I am still not totally sure about this one).<br \/>\n3) Helper macros to extract data references. Since diStorm3 outputs structures, it&#8217;s really easy to know if there&#8217;s a data reference and its address. Therefore some macros will aid to do this work.<br \/>\n4) Code reference, &#8211; continues to next instruction, continues to a target according to a condition, or jump-always and call-always.<\/p>\n<p>I am looking to hear more suggestions from you guys. Please be sure you are talking about disassembler features, and not other layers which use the disassembler.<\/p>\n<p>Just wanted to let you know that diStorm3 is going to be dual licensed with GPL and commercial. diStorm64 is deprecated and I am not going to touch it anymore, though it&#8217;s still licensed as BSD, of course.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Update &#8211; diStorm3 News] I have been working more and more on diStorm3 recently. The core code is already written, and it works so great. I am still not going to talk about the structure itself that diStorm uses to format the instructions. There are two API&#8217;s now, the old one, which takes a stream [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":""},"categories":[21,5,12,3],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbWKd-1S","_links":{"self":[{"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/posts\/116"}],"collection":[{"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=116"}],"version-history":[{"count":6,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/posts\/116\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=\/wp\/v2\/posts\/116\/revisions\/202"}],"wp:attachment":[{"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ragestorm.net\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}