mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-06 21:39:38 +00:00
17 lines
39 KiB
JavaScript
17 lines
39 KiB
JavaScript
enyo.kind({name:"About",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"r2wui"},{kind:"Image",src:"icon.png"},{tag:"h3",style:"color:#707070;margin-bottom:50px",content:"the web frontend for radare2"},{tag:"h2",style:"color:#a0a0a0",content:"author: pancake 2013-2014"},{tag:"h2",style:"color:#a0a0a0",content:"version: ???",name:"vertext"},{tag:"h2",style:"color:#a0a0a0",content:"revision: ???",name:"revtext"}]}],create:function(){this.inherited(arguments),function(t){setTimeout(function(){r2.cmd("?V",function(e){var n=e.split(" ")[0],o=e.split(" ")[2];t.$.vertext.setContent("version: "+n),t.$.revtext.setContent("revision: "+o)})},1e3)}(this)}});
|
|
enyo.kind({name:"Assembler",kind:"Scroller",classes:"r2panel",style:"background-color:#c0c0c0;",components:[{tag:"form",style:"margin-top:8px;margin-left:8px",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:!0,components:[{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"opcode",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"",style:"width:60%",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"opcode"}]},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"bytes",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"",style:"width:120px",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"bytes"}]},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"offset",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"entry0",style:"width:120px",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"offset"}]}]}]},{tag:"form",style:"margin-top:8px;margin-left:8px",attributes:{action:"javascript:#"},components:[{tag:"h2",content:"Calculator"},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",name:"value",content:"0",classes:"r2ui-input",style:"width:200px;font-weight:bold"},{kind:"Input",name:"ivalue",value:"0",style:"width:300",onkeydown:"calculateValue",attributes:{autocapitalize:"off"}}]}]}],calculateValue:function(t,e){if(13===e.keyCode){var n=this.$.value,o=t.getValue();n.setContent("..."),r2.cmd("?v "+o,function(t){n.setContent(t)})}},assembleOpcode:function(t,e){if(13===e.keyCode){var n=t.getValue(),o=this.$.offset.getValue();switch(t.name){case"opcode":var a=this.$.bytes;r2.assemble(o,n,function(t){a.setValue(t)});break;case"bytes":var s=this.$.opcode;r2.disassemble(o,n,function(t){s.setValue(t)});break;case"offset":}}}});
|
|
var Config={keys:{1:"this.setIndex(0)",2:"this.setIndex(1)",3:"this.setIndex(2)"}};
|
|
enyo.kind({name:"Console",kind:"Scroller",classes:"r2panel",style:"background-color:#c0c0c0;padding-left:7px",components:[{tag:"form",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:!0,classes:"fittable-sample-shadow",components:[{kind:"onyx.InputDecorator",style:"margin-top:8px;background-color:#404040;width: 90%;display:inline-block",components:[{kind:"Input",style:"width:100%;color:white",value:"",onkeydown:"runCommand",attributes:{autocapitalize:"off"},name:"input"}]},{tag:"pre",classes:"r2ui-terminal",style:"width:90%;",fit:!0,allowHtml:!0,name:"output"}]}]}],runCommand:function(t,n){if(13===n.keyCode){var o=this.$.input.getValue();this.$.input.setValue(""),function(t){r2.cmd(o,function(n){t.setContent(n)})}(this.$.output)}}});
|
|
enyo.kind({name:"Debugger",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"TODO: Debugger"}]}]});
|
|
enyo.kind({name:"Disassembler",kind:"Scroller",tag:"div",classes:"ec_gui_background",style:"margin:0px;position: relative;",data:null,components:[{tag:"div",allowHtml:!0,name:"minimap",style:"width:200px; height:200px; position:fixed; top:0; right 0px",id:"minimap"},{tag:"div",allowHtml:!0,name:"panel",content:"<div id='main_panel' class='ui-layout-center ec_gui_background'><div id='center_panel'></div></div><div class='ui-layout-south' style='display: none;background-color:rgb(20,20,20);'><pre id='cmd_output' class='ui-layout-content'></pre><div><input id='command' type='text' value=''/></div></div>",style:"margin-right:5px;width:100%;height:100%"},{kind:enyo.Signals,onkeypress:"handleKeyPress"},{name:"menuPopup",kind:"onyx.Popup",floating:!0,onHide:"hideContextMenu",onShow:"showContextMenu",style:"padding: 0px;",style:"padding: 10px",components:[{name:"menu",kind:"onyx.MenuDecorator",onSelect:"itemSelected",components:[{content:"Show menu"},{kind:"onyx.Menu",name:"contextMenu",components:[{content:"rename",value:"rename"},{content:"comment",value:"comment"},{content:"switch view",value:"do_switchview"},{content:"random colors",value:"do_randomcolors"}]}]}]}],handlers:{ontap:"handleTap",onhold:"handleHold",ondblclick:"handleDoubleClick",onTransitionFinish:"handleTransitionFinish"},handleTransitionFinish:function(){"graph"==r2ui._dis.display&&r2ui._dis.minimap&&update_minimap()},itemSelected:function(e,s){if(s.originator.content){var i=s.originator.content;"rename"==i?this.do_rename(this.selected,s):"comment"==i?this.do_comment(this.selected_offset):"random colors"==i?do_randomcolors():"switch view"==i&&this.switch_view()}this.$.menuPopup.hide()},handleHold:function(e,s){if(this.handleTap(e,s),"string"==typeof s.target.className&&(s.target.className.indexOf(" addr ")>-1||s.target.className.indexOf(" faddr ")>-1)){var i=get_address_from_class(s.target);this.selected=s.target,this.selected_offset=i,rehighlight_iaddress(i),this.showContextMenu(s.pageY,s.pageX)}},showContextMenu:function(e,s){parseFloat(e)!=parseInt(e)||isNaN(e)||parseFloat(s)!=parseInt(s)||isNaN(s)||(this.$.menuPopup.addStyles("top:"+e+"px; left:"+s+"px;padding:0px;"),this.$.menuPopup.show(),this.$.menuPopup.children[0].children[0].hide(),this.$.menuPopup.children[0].children[1].show(),this.$.menuPopup.render())},hideContextMenu:function(){},handleDoubleClick:function(e,s){s.target.className.indexOf(" addr ")>-1&&-1===s.target.className.indexOf("insaddr")&&(this.handleTap(e,s),this.goToAddress())},handleKeyPress:function(e,s){var i=s.keyCode||s.charCode||s.which||0,t=String.fromCharCode(i);if(!s.ctrlKey&&!s.metaKey&&"INPUT"!==$(s.target).prop("tagName")&&"TEXTAREA"!==$(s.target).prop("tagName")){if("?"===t&&r2ui.mp.show_popup()," "===t&&this.switch_view(),"h"===t){var n=r2ui.history_prev();void 0!==n&&null!==n&&r2ui.seek(n,!1)}if("l"===t){var n=r2ui.history_next();void 0!==n&&null!==n&&r2ui.seek(n,!1)}if("m"===t&&"graph"==r2ui._dis.display&&toggle_minimap(),"j"===t){var a=!1;if($(this.selected).hasClass("insaddr")){var r;if("flat"==this.display&&(r=$(this.selected).closest(".instructionbox").next().find(".insaddr")[0],$("#gbox .instructionbox").index($(this.selected).closest(".instructionbox")[0])>$("#gbox .instructionbox").length-10&&(a=!0)),"graph"==this.display){var r=$(this.selected).closest(".instruction").next().find(".insaddr")[0];void 0!==r&&null!==r||(r=$(this.selected).closest(".basicblock").next().find(".insaddr")[0])}var d=get_address_from_class(r);a?r2ui.seek(d,!1):(r2ui.history_push(d),this.selected=r,this.selected_offset=d),rehighlight_iaddress(d),scroll_to_address(d)}}if("k"===t){var a=!1;if($(this.selected).hasClass("insaddr")){var l;if("flat"==this.display&&(l=$(this.selected).closest(".instructionbox").prev().find(".insaddr")[0],$("#gbox .instructionbox").index($(this.selected).closest(".instructionbox")[0])<10&&(a=!0)),"graph"==this.display){var l=$(this.selected).closest(".instruction").prev().find(".insaddr")[0];void 0!==l&&null!==l||(l=$(this.selected).closest(".basicblock").prev().find(".insaddr").last()[0])}var d=get_address_from_class(l);a?r2ui.seek(d,!1):(r2ui.history_push(d),this.selected=l,this.selected_offset=d),rehighlight_iaddress(d),scroll_to_address(d)}}if("c"===t){var o=prompt("Function name?");null!==o&&r2.cmd("af "+o,function(){r2.update_flags(),r2ui.seek("$$",!1)})}if("d"===t&&r2.cmd("af-",function(){r2.update_flags(),r2ui.seek("$$",!1)}),"g"===t){var c=prompt("Go to");null!==c&&r2ui.opendis(c)}if(";"===t&&this.do_comment(this.selected_offset),"n"===t&&this.do_rename(this.selected,s),"R"===t&&do_randomcolors(),27===i)if(null!==this.renaming)this.renaming.innerHTML=this.renameOldValue,this.renaming=null;else{var n=r2ui.history_prev();void 0!==n&&null!==n&&r2ui.seek(n,!1)}13===i&&this.goToAddress()}},handleTap:function(e,s){if("string"==typeof s.target.className)if(s.target.className.indexOf(" addr ")>-1){var i=get_address_from_class(s.target);if(rehighlight_iaddress(i),this.selected=s.target,this.selected_offset=i,$(s.target).hasClass("insaddr")){r2ui.history_push(i);var t,n,a=!1,i=get_address_from_class(s.target);if("flat"==r2ui._dis.display&&(t=$(r2ui._dis.selected).closest(".instructionbox").next().find(".insaddr")[0],$("#gbox .instructionbox").index($(r2ui._dis.selected).closest(".instructionbox")[0])>$("#gbox .instructionbox").length-10&&(a=!0,i=get_address_from_class(t)),n=$(r2ui._dis.selected).closest(".instructionbox").prev().find(".insaddr")[0],$("#gbox .instructionbox").index($(r2ui._dis.selected).closest(".instructionbox")[0])<10&&(a=!0,i=get_address_from_class(n))),"graph"==r2ui._dis.display){var t=$(r2ui._dis.selected).closest(".instruction").next().find(".insaddr")[0];void 0!==t&&null!==t||(t=$(r2ui._dis.selected).closest(".basicblock").next().find(".insaddr")[0]);var n=$(r2ui._dis.selected).closest(".instruction").prev().find(".insaddr")[0];void 0!==n&&null!==n||(n=$(r2ui._dis.selected).closest(".basicblock").prev().find(".insaddr").last()[0])}a&&(r2ui.seek(i,!1),rehighlight_iaddress(i),scroll_to_address(i),document.getElementById("canvas").focus())}}else if($(s.target).hasClass("fvar")||$(s.target).hasClass("farg")){var r=null,i=get_address_from_class(s.target,"faddr");r2ui._dis.selected=s.target,r2ui._dis.selected_offset=i;var d=s.target.className.split(" ");for(var l in d){var o=d[l];0===o.indexOf("id_")&&(r=o.substring(3))}null!==r&&rehighlight_iaddress(r,"id")}},goToAddress:function(){if(null===this.renaming&&null!==this.selected&&this.selected.className.indexOf(" addr ")-1){var e=get_address_from_class(this.selected);if(this.selected.className.indexOf("ec_dataoffset")>-1)return void r2ui.openpage(e,2);void 0!==e&&null!==e&&(e=address_canonicalize(e),"flat"===this.display?r2ui.seek(e,!0):r2.cmdj("pdfj",function(s){if(null!==s&&void 0!==s){var i=s.ops,t=!1;for(var n in i)i[n].offset===parseInt(e,16)&&(t=!0);t?r2ui.seek_in_graph(e,!0):r2ui.seek(e,!0)}}))}},handleInputTextChange:function(){if(null!==this.renaming&&this.rbox.value.length>0){if($(this.selected).hasClass("insaddr")){var e=get_offset_flag(r2ui._dis.selected_offset),s="offsets";r2.cmdj("afij @ "+r2ui._dis.selected_offset,function(e){null!==e&&void 0!==e&&"0x"+e[0].offset.toString(16)===r2ui._dis.selected_offset&&(s="functions")}),rename(r2ui._dis.selected_offset,e,this.rbox.value,s)}else if($(this.selected).hasClass("faddr"))$(this.selected).hasClass("fvar")?r2.cmd("afvn "+r2ui._dis.renameOldValue+" "+r2ui._dis.rbox.value+" @ "+r2ui._dis.selected_offset,function(){}):$(this.selected).hasClass("farg")&&r2.cmd("afan "+r2ui._dis.renameOldValue+" "+r2ui._dis.rbox.value+" @ "+r2ui._dis.selected_offset,function(){});else{var e=r2ui._dis.renameOldValue;0===e.indexOf("0x")&&(e=""),rename(r2ui._dis.selected_offset,e,r2ui._dis.rbox.value,"*")}var i;"flat"==this.display&&(i=$(this.selected).closest(".instructionbox").find(".insaddr")[0]),"graph"==this.display&&(i=$(this.selected).closest(".instruction").find(".insaddr")[0]),this.renaming=null;var t=get_address_from_class(i);r2ui.seek(t,!1),scroll_to_address(t)}},min:0,max:0,block:512,base:"entry0",display:"flat",selected:null,renaming:null,renameOldValue:"",rbox:null,minimap:!0,console_history:[],console_history_idx:0,instructions:[],scrolling:!1,do_comment:function(e){var s=prompt("Comment");null!==s&&(r2.cmd("CC- @ "+e+";CC "+s+" @ "+e),r2ui.seek(e,!1),scroll_to_address(e))},do_rename:function(e){if(null===this.renaming&&null!==this.selected&&this.selected.className.indexOf(" addr ")>-1){var s=get_address_from_class(this.selected);if(this.renaming=this.selected,this.renameOldValue=this.selected.innerHTML,this.rbox=document.createElement("input"),this.rbox.setAttribute("type","text"),this.rbox.setAttribute("id","rename"),this.rbox.setAttribute("style","border-width: 0;padding: 0;"),this.rbox.setAttribute("onChange","handleInputTextChange()"),this.selected.className.indexOf("insaddr")>-1){var i=get_offset_flag(s);this.rbox.setAttribute("value",i),this.rbox.setSelectionRange(i.length,i.length)}else this.rbox.setAttribute("value",this.renameOldValue),this.rbox.setSelectionRange(this.renameOldValue.length,this.renameOldValue.length);this.renaming.innerHTML="",this.renaming.appendChild(this.rbox),setTimeout("r2ui._dis.rbox.focus();",200)}else if(null===this.renaming&&null!==e&&$(e).hasClass("faddr")){var s=get_address_from_class(e,"faddr");this.selected=e,this.selected_offset=s,this.renaming=e,this.renameOldValue=e.innerText,this.rbox=document.createElement("input"),this.rbox.setAttribute("type","text"),this.rbox.setAttribute("id","rename"),this.rbox.setAttribute("style","border-width: 0;padding: 0;"),this.rbox.setAttribute("onChange","handleInputTextChange()"),this.rbox.setAttribute("value",this.renameOldValue),this.rbox.setSelectionRange(this.renameOldValue.length,this.renameOldValue.length),this.renaming.innerHTML="",this.renaming.appendChild(r2ui._dis.rbox),setTimeout("r2ui._dis.rbox.focus();",200)}},switch_view:function(){"flat"===this.display?this.display_graph():this.display_flat();var e=r2ui.history_last();void 0!==e&&null!==e&&r2ui.seek(e,!1)},display_graph:function(){this.display="graph",$("#main_panel").removeClass("ec_gui_background"),$("#main_panel").addClass("ec_gui_alt_background")},display_flat:function(){this.display="flat",$("#main_panel.ui-layout-pane").removeClass("ec_gui_alt_background"),$("#main_panel.ui-layout-pane").addClass("ec_gui_background")},seek:function(e,s){var i=!1;"graph"===this.display&&(this.$.minimap.show(),$("#center_panel").html(""),r2.cmd("agj "+e,function(e){$("#center_panel").html("<div id='center_panel' style='width:100%;height:100%;overflow: auto;'><div id='canvas' class='canvas enyo-selectable ec_gui_background'></div></div>"),render_graph(e)===!1&&(i=!0)})),i&&this.display_flat(),"flat"===this.display&&($("#main_panel").scroll(on_scroll),this.$.minimap.hide(),this.min=this.max=0,r2.get_disasm_before_after(e,-100,100,function(e){$("#center_panel").html("<div id='canvas' class='canvas enyo-selectable ec_gui_background'></div>"),r2ui._dis.instructions=e,render_instructions(r2ui._dis.instructions)})),this.selected=get_element_by_address(e),this.selected_offset=e,rehighlight_iaddress(e),void 0!==s&&s!==!0||scroll_to_address(e)},create:function(){this.inherited(arguments),this.base="entry0",r2ui._dis=this,r2.update_flags(),r2.analAll(),r2.load_mmap(),r2ui.load_colors()},resizeHandler:function(){this.inherited(arguments),"graph"==r2ui._dis.display&&r2ui._dis.minimap&&update_minimap()},rendered:function(){this.inherited(arguments),myLayout=$("#radareApp_mp_panels_pageDisassembler_panel").layout({south__size:200}),this.display_flat(),r2ui.seek(this.base,!0);var e=this.console_history,s=this.console_history_idx;$("#command").keypress(function(i){var t=i.keyCode||i.charCode||i.which||0;if(13===t){var n=i.target.value.trim(),a=""==n;e[e.length]=n,s+=1,""!=n&&(r2.cmd(inColor(n),function(e){var s=$("#cmd_output").text();$("#cmd_output").html(s+"\n> "+n+"\n"+e),$("#cmd_output").scrollTo($("#cmd_output")[0].scrollHeight)}),0===n.indexOf("s ")&&r2ui.history_push(r2ui._dis.selected_offset)),i.target.value="",a&&(r2.load_settings(),r2ui.load_colors(),r2ui.seek("$$",!1),scroll_to_element(r2ui._dis.selected))}}),$("#command").keydown(function(i){var t=i.keyCode||i.charCode||i.which||0;40===t&&(s++,s>e.length-1&&(s=e.length),i.target.value=void 0===e[s]?"":e[s]),38===t&&(s--,0>s&&(s=0),i.target.value=void 0===e[s]?"":e[s])})}});
|
|
enyo.kind({name:"Graph",kind:"Scroller",style:"background-color:#c0c0c0",components:[{tag:"h2",content:"Open graph",style:"margin-left:10px;"},{kind:"Group",classes:"enyo-border-box group",defaultKind:"onyx.Button",components:[{content:"Basic blocks",classes:"onyx-dark menu-button",ontap:"openGraphBB"},{content:"Callgraph",classes:"onyx-dark menu-button",ontap:"openGraphCG"}]}],openGraphBB:function(){window.open("/graph/","_self")},openGraphCG:function(){window.open("/d3/","_self")}});
|
|
function docss(t){return"<font color=black>"+t+"</font>"}enyo.kind({name:"Hexdump",kind:"Scroller",tag:"div",style:"margin:0px;background-color:#c0c0c0;color:black",data:null,components:[{tag:"div",allowHtml:!0,classes:"colorbar",name:"colorbar"},{tag:"div",content:"^",classes:"moreless",ontap:"less"},{tag:"pre",allowHtml:!0,name:"text",content:"..",style:"margin-left:5px;color:black"},{tag:"div",content:"v",classes:"moreless",ontap:"more"}],min:0,max:0,block:1024,base:"entry0",less:function(){var t=this.$.text;this.min+=this.block,r2.get_hexdump(this.base+"-"+this.min,this.block,function(e){e=css(r2.filter_asm(e,"px"));var o=r2ui._hex.getScrollBounds().height;t.setContent("<div class='enyo-selectable'>"+e+t.getContent()+"</div>");var s=r2ui._hex.getScrollBounds().height;r2ui._hex.scrollTo(0,s-o)})},more:function(){var t=this.$.text;this.max+=this.block,r2.get_hexdump(this.base+"+"+this.max,this.block,function(e){e=docss(r2.filter_asm(e,"px")),t.setContent("<div class='enyo-selectable'>"+t.getContent()+e+"</div>")})},seek:function(t){var e=this.$.text;this.base=t,this.min=this.max=0,r2.get_hexdump(t,this.block,function(t){t=docss(r2.filter_asm(t,"px")),e.setContent("<div class='enyo-selectable'>"+t+"</div>")}),this.colorbar_create()},create:function(){this.inherited(arguments);this.$.text;this.seek("entry0"),r2ui._hex=this,this.colorbar_create()},setupItem:function(t,e){return this.$.msg.setContent(this.data[e.index]),!0},colorbar_create:function(){var t=this;r2.cmd("p-j",function(e){try{var o=JSON.parse(e)}catch(s){return void alert(s)}for(var r="<table class='colorbar'><tr valign=top style='height:20px;border-spacing:0'>",i={flags:"#c0c0c0",comments:"yellow",functions:"#5050f0",strings:"orange"},n="",l=10,a=30,c=0;c<o.blocks.length;c++){var h=o.blocks[c],d="<div style='overflow:hidden;background-color:#404040;width:"+l+"px;'> </div>";if(h.offset){var d="<table height="+a+" style='color:black;border-spacing:0px'>",b=0;for(var g in i)h[g]&&b++;if(b++,1==b)break;var m=a/b;for(var g in i){i[g];h[g]&&(d+="<tr><td style='width:"+l+"px;background-color:"+i[g]+"'><div style='width:"+l+"px;overflow:hidden;height:"+m+"px'> </div></td></tr>")}d+="</table>",n="0x"+h.offset.toString(16)}else n="0x"+(o.from+o.blocksize*c).toString(16);r+="<td onclick='r2ui.seek("+n+",true)' title='"+n+"' style='height:"+a+"px' width=15px>"+d+"</td>"}r+="</tr></table>",t.$.colorbar.setContent(r)})}});
|
|
enyo.kind({name:"LeftPanel",classes:"onyx-toolbar",kind:"Scroller",style:"width: 200px;height:100%;margin:0px;",accelerated:!0,horizontal:"hidden",create:function(){this.inherited(arguments),this.$.strategy.setTranslateOptimized=!0},components:[{tag:"center",components:[{tag:"img",ontap:"openRoot",src:"rlogo-tr.png",style:"margin:0px;margin-bottom:20px;cursor:pointer"},{kind:"Group",onActivate:"buttonActivated",classes:"enyo-border-box group",defaultKind:"onyx.Button",highlander:!0,components:[{content:"Disassembler",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Disassembler",active:!0},{content:"Assembler",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Assembler"},{content:"Hexdump",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Hexdump"},{content:"Graph",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Graph"},{content:"Search",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Search"},{content:"Console",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Console"},{content:"Debugger",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Debugger"},{content:"Script",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Script"},{content:"Settings",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Settings"},{content:"Logs",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Logs"},{content:"About",classes:"onyx-dark menu-button",ontap:"openPanel",name:"About"}]}]}],openRoot:function(){window.location=".."},openPanel2:function(){this.ra.setIndex(2)},openPanel:function(n){enyo.Panels.isScreenNarrow()&&this.ra.setIndex(1),n.name==this.oname&&this.ra.setIndex(1),this.oname=n.name,r2ui.selected_panel=this.oname,"Logs"===this.oname&&r2ui._log.connect(),this.openCallback&&this.openCallback(n.name)},oname:null,ra:null,oldSender:null,rowTap:function(n,e){this.oldSender&&this.oldSender.setStyle("width:100%"),n.setStyle("background-color: #202020;width:100%"),this.oldSender=n,this.openCallback&&this.openCallback(e.index)},openCallback:void 0,data:[],iter:1,refresh:function(){this.iter++}});
|
|
enyo.kind({name:"Logs",kind:"Scroller",style:"background-color:#c0c0c0;padding-left:8px",components:[{tag:"form",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:!0,classes:"fittable-sample-shadow",components:[{kind:"onyx.InputDecorator",style:"margin-top:8px;background-color:#404040;width: 90%;display:inline-block",components:[{kind:"Input",style:"width:100%;color:white",value:"",onkeydown:"sendMessage",attributes:{autocapitalize:"off"},name:"input"}]},{tag:"pre",classes:"r2ui-terminal",style:"width:90%;",fit:!0,allowHtml:!0,name:"output"}]}]}],logger:null,create:function(){this.inherited(arguments),r2ui._log=this},connect:function(){var t=this.$.output;this.logger=r2.getTextLogger().on("message",function(e){t.setContent(t.getContent()+e.text+"\n")}),this.logger.autorefresh(3)},sendMessage:function(t,e){if(13===e.keyCode){var n=this.$.input.getValue();this.$.input.setValue(""),this.logger.send(n)}}});
|
|
enyo.kind({name:"RadareApp",kind:"Panels",classes:"panels enyo-unselectable",realtimeFit:!0,fit:!0,arrangerKind:"CollapsingArranger",components:[{name:"lp",kind:"LeftPanel"},{name:"mp",kind:"MainPanel"},{name:"rp",kind:"RightPanel"},{kind:enyo.Signals,onkeypress:"handleKeyPress"}],handlers:{onTransitionFinish:"handleTransitionFinish"},handleTransitionFinish:function(){"graph"==r2ui._dis.display&&r2ui._dis.minimap&&update_minimap()},setPanel0:function(){this.$.RadareApp.setIndex(1)},create:function(){r2.load_settings(),this.inherited(arguments);var e=[{name:"Disassembler",active:!0},{name:"Assembler"},{name:"Hexdump"},{name:"Graph"},{name:"Search"},{name:"Console"},{name:"Debugger"},{name:"Script"},{name:"Settings",separator:!0},{name:"Logs"},{name:"About"}];this.$.lp.data=e,this.$.mp.data=e,r2ui.ra=this.$.mp.ra=this.$.lp.ra=this.$.rp.ra=this;var n=this.$.mp;r2ui.mp=n,this.$.lp.openCallback=function(e){n.openPage(e)},this.$.lp.refresh()},handleKeyPress:function(inSender,inEvent){for(var key in Config.keys)if("C-"==key.substring(0,2)){if(inEvent.ctrlKey){var k=key.substring(2).charCodeAt(0);if(inEvent.charCode==k){var cmd=Config.keys[key];eval(cmd+";")}}}else{var k=key.charCodeAt(0);if(inEvent.charCode==k){var cmd=Config.keys[key];eval(cmd+";")}}}}),window.onload=function(){(new RadareApp).renderInto(document.body)};
|
|
enyo.kind({name:"MainPanel",classes:"onyx",kind:"FittableRows",classes:"enyo-fit",style:"margin:0px;padding:0px;border:0px",data:null,buttonClicked:function(){alert("let's play!")},cancelClicked:function(){alert("nothing to see here! move along.")},inputKey:function(e,t){if(13===t.keyCode){var n=this.$.input.getValue();r2ui.opendis(n)}},goRename:function(){var e=prompt("New name?","");e&&r2.cmd("afr "+e,function(){r2ui.seek("$$",!1)})},goComment:function(){var e=prompt("Comment?","");e&&r2.cmd("CC "+e,function(){r2ui.seek("$$",!1)})},goFlag:function(){var e=prompt("Flag name?","");e&&r2.cmd("f "+e,function(){r2.update_flags(),r2ui.seek("$$",!1)})},goUnflag:function(){r2.cmd("f-$$",function(){r2.update_flags(),r2ui.seek("$$",!1)})},goAnalyze:function(){r2.cmd("af",function(){r2.update_flags(),r2ui.seek("$$",!1)})},goCopy:function(){var e=prompt("How many bytes?","");e&&e>0&&r2.cmd("y "+e,function(){r2ui.seek("$$",!1)})},goPaste:function(){r2.cmd("yy",function(){r2ui.seek("$$",!1)})},wrString:function(){var e=prompt("Text","");e&&r2.cmd("w "+e,function(){r2ui.seek("$$",!1)})},wrOpcode:function(){var e=prompt("Opcode","");e&&r2.cmd("wa "+e,function(){r2ui.seek("$$",!1)})},wrFile:function(){var e=prompt("Filename","");e&&r2.cmd("wf "+e,function(){r2ui.seek("$$",!1)})},wrHex:function(){var e=prompt("Hexpair","");e&&r2.cmd("wx "+e,function(){r2ui.seek("$$",!1)})},coCode:function(){var e=prompt("How many bytes?","");e&&r2.cmd("y "+e,function(){r2ui.seek("$$",!1)})},coString:function(){r2.cmd("Cz",function(){r2ui.seek("$$",!1)})},coData:function(){var e=prompt("How many bytes?","");e&&r2.cmd("Cd "+e,function(){r2ui.seek("$$",!1)})},setTitle:function(e){e?(this.$.title.setContent(e),this.$.title.setStyle("visibility:visible;top:8px"),this.$.extra.setStyle("visibility:hidden;")):(this.$.title.setStyle("visibility:hidden"),this.$.extra.setStyle("visibility:visible;"))},components:[{kind:"onyx.Toolbar",name:"toolbar",components:[{kind:"onyx.Button",content:"[",ontap:"openSidebar",classes:"top"},{kind:"onyx.Button",content:"]",ontap:"openSidebar2",classes:"top"},{name:"title",tag:"h2",content:"Assembler",classes:"topbox",style:"visibility:hidden;"},{name:"extra",tag:"div",classes:"topbox",components:[{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"actionsButton",content:"Actions"},{kind:"onyx.Picker",name:"actionsPicker",components:[{content:"Analyze",ontap:"goAnalyze"},{content:"Rename",ontap:"goRename"},{content:"Comment",ontap:"goComment"},{content:"Flag",ontap:"goFlag"},{content:"Unflag",ontap:"goUnflag"},{content:"Copy",ontap:"goCopy"},{content:"Paste",ontap:"goPaste"}]}]},{kind:"onyx.Button",content:"<",ontap:"prevSeek",classes:"top",style:"top:10px"},{kind:"onyx.Button",content:">",ontap:"nextSeek",classes:"top",style:"top:10px"},{kind:"onyx.InputDecorator",style:"width: 200px;top:10px",classes:"top",components:[{kind:"onyx.Input",name:"input",value:"entry0",onchange:"gotoSeek",onkeydown:"inputKey"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",content:"Convert"},{kind:"onyx.Picker",components:[{content:"Data",ontap:"coData"},{content:"Code",ontap:"coCode"},{content:"String",ontap:"coString"}]}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",content:"Write"},{kind:"onyx.Picker",components:[{content:"File",ontap:"wrFile"},{content:"Hexpair",ontap:"wrHex"},{content:"String",ontap:"wrString"},{content:"Opcode",ontap:"wrOpcode"}]}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"saveButton",content:"Save",ontap:"save_project"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"switchButton",content:"Switch View",ontap:"switch_view"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"helpButton",content:"?",ontap:"show_popup"},{name:"basicPopup",kind:"onyx.Popup",floating:!0,centered:!0,style:"padding: 10px",components:[{name:"popupContent",allowHtml:!0,content:".."}]}]}]}]},{kind:"Panels",name:"panels",fit:!0,realtimeFit:!0,components:[]}],show_popup:function(){this.$.basicPopup.show()},switch_view:function(){r2ui._dis.switch_view()},save_project:function(){var e=prompt("Project Name:",r2.project_name);r2.cmd(":Ps "+e,function(){}),r2.project_name=e},create:function(){this.inherited(arguments);var e=readCookie("r2_view_mode");if(e||(e="old"),"old"===e)this.$.panels.createComponents([{kind:"DisassemblerOld",name:"pageDisassembler"},{kind:"Assembler",name:"pageAssembler"},{kind:"Hexdump",name:"pageHexdump"},{kind:"Graph",name:"pageGraph"},{kind:"Search",name:"pageSearch"},{kind:"Console",name:"pageConsole"},{kind:"Debugger",name:"pageDebugger"},{kind:"Logs",name:"pageLogs"},{kind:"Script",name:"pageScript"},{kind:"Settings",name:"pageSettings"},{kind:"About",name:"pageAbout"}]),this.$.helpButton.hide(),this.$.switchButton.hide();else{this.$.panels.createComponents([{kind:"Disassembler",name:"pageDisassembler"},{kind:"Assembler",name:"pageAssembler"},{kind:"Hexdump",name:"pageHexdump"},{kind:"Graph",name:"pageGraph"},{kind:"Search",name:"pageSearch"},{kind:"Console",name:"pageConsole"},{kind:"Debugger",name:"pageDebugger"},{kind:"Logs",name:"pageLogs"},{kind:"Script",name:"pageScript"},{kind:"Settings",name:"pageSettings"},{kind:"About",name:"pageAbout"}]);var t="<table class='help'><tr><td>h,l</td><td>Move back and forth in history</td></tr><tr><td>j,k</td><td>Move to next or previous instruction</td></tr><tr><td>g</td><td>Go to address</td></tr><tr><td>n</td><td>Rename</td></tr><tr><td>c</td><td>Define function at current address</td></tr><tr><td>d</td><td>Remove function metadata for current address</td></tr><tr><td>enter</td><td>When address is selected, go to address</td></tr><tr><td>;</td><td>Add comment</td></tr><tr><td>m</td>Toggle minimap</td></tr><tr><td>?</td><td>Display this help</td></tr></table>";this.$.popupContent.setContent(t)}this.render(),r2ui.panels=this.$.panels,this.$.panels.setIndex(0)},ra:null,openSidebar:function(){this.ra.setIndex(this.ra.index?0:1)},openSidebar2:function(){this.ra.setIndex(2)},rendered:function(){this.inherited(arguments)},openPage:function(idx){var str,sp=this.$.panels,r=-1;switch(idx){case"Disassembler":r=0;break;case"Assembler":r=1;break;case"Hexdump":r=2;break;case"Graph":r=3;break;case"Search":r=4;break;case"Console":r=5;break;case"Debugger":r=6;break;case"Logs":r=7;break;case"Script":r=8;break;case"Settings":r=9;break;case"About":r=10}if(-1==r)return void sp.setIndex(idx);switch(eval("var x = this.$.page"+idx),r){case 0:case 2:this.setTitle();break;default:this.setTitle(idx)}sp.setIndex(r)},seekStack:[],nextSeek:function(){var e=r2ui.history_next();e&&r2ui.seek(e,!1)},prevSeek:function(){var e=r2ui.history_prev();e&&r2ui.seek(e,!1)},gotoSeek:function(){var e=this.$.input.getValue();"!"==e[0]?r2.cmd(e.slice(1),function(e){alert(e)}):r2ui.seek(e)}});
|
|
function makelist(t){for(var e="List of "+t.length+"\n\n",n=0;n<t.length;n++)e+="<a style='color:yellow' href='javascript:r2ui.opendis("+t[n].offset+")'>0x"+t[n].offset.toString(16)+"</a> "+enyo.dom.escape(t[n].name)+"\n";return e}enyo.kind({name:"RightPanel",style:"background-color:#404040;",classes:"onyx-toolbar",kind:"FittableRows",ra:null,components:[{kind:"FittableColumns",style:"margin-bottom:5px",components:[{kind:"onyx.Button",content:"[",ontap:"closeSidebar",style:"padding:8px;margin-right:8px"},{onup:"toggleScroll",style:"position:absolute;left:40px;top:0px;",kind:"onyx.MenuDecorator",onSelect:"itemSelected",components:[{content:"List elements"},{kind:"onyx.Menu",showOnTop:!0,maxHeight:290,name:"menu",style:"height:300px",components:[{content:"flags",value:"2"},{content:"flagspaces",value:"2"},{classes:"onyx-menu-divider"},{content:"strings",value:"1"},{content:"symbols",value:"1"},{content:"imports",value:"1"},{content:"relocs",value:"1"},{content:"functions",value:"1"},{content:"comments",value:"1"},{classes:"onyx-menu-divider"},{content:"registers",value:"1"},{content:"stack",value:"2"},{content:"backtrace",value:"3"}]}]}]},{kind:"Scroller",animated:!1,fit:!0,horizontal:!1,name:"scroll",components:[{tag:"pre",style:"font-size:14px",allowHtml:!0,name:"output",content:".."}]}],toggleScroll:function(){var t=this.$.menu.getShowing();this.$.scroll.setShowing(t)},rowTap:function(){},create:function(){this.inherited(arguments)},data:[],setupItem:function(t,e){var n=this.data[e.index];if(!n)return!1;var o=n.name+" "+n.offset;return console.log(o),this.$.msg.setContent(o),!0},refresh:function(){},itemSelected:function(t,e){var n=this,o=e.originator.content,s=this.$.menu.getShowing();switch(r2ui.rp=n,this.$.scroll.setShowing(!s),this.$.menu.setShowing(!1),this.$.scroll.scrollToTop(),o){case"comments":r2.cmd("CC*",function(t){t=t.replace(/0x([a-zA-Z0-9]*)/g,"<a style='color:yellow' href='javascript:r2ui.seek(\"0x$1\")'>0x$1</a>"),n.$.output.setContent(t)});break;case"functions":r2.cmd("afl",function(t){t=t.replace(/0x([a-zA-Z0-9]*)/g,"<a style='color:yellow' href='javascript:r2ui.seek(\"0x$1\")'>0x$1</a>"),n.$.output.setContent(t)});break;case"flagspaces":this.updateFlagspace();break;case"strings":r2.cmd("izj",function(t){var e=JSON.parse(t),o="";for(var s in e){var a=(+e[s].offset).toString(16);o+='<a style="color:yellow" href="javascript:r2ui.opendis(0x'+a+')">0x'+a+"</a> "+enyo.dom.escape(e[s].string)+"<br />"}n.$.output.setContent(o)});break;case"sections":r2.bin_sections(function(t){n.$.output.setContent(makelist(t))});break;case"symbols":r2.bin_symbols(function(t){n.$.output.setContent(makelist(t))});break;case"relocs":r2.bin_relocs(function(t){n.$.output.setContent(makelist(t))});break;case"imports":r2.bin_imports(function(t){n.$.output.setContent(makelist(t))});break;case"flags":r2.get_flags(function(t){n.data=t,n.$.output.setContent(makelist(t)),n.refresh()})}},closeSidebar:function(){this.ra.setIndex(1)},selectFlagspace:function(t){r2.cmd("fs "+t,function(){r2ui.rp.updateFlagspace()})},updateFlagspace:function(){var t=r2ui.rp;r2.cmd("fsj",function(e){var n=JSON.parse(e),o="";for(var s in n){var a=n[s].name,r=n[s].selected;o+='<a style="color:yellow" href="javascript:r2ui.rp.selectFlagspace(\''+a+"')\">"+a+"</a> "+(r?" (selected)":"")+"<br />"}t.$.output.setContent(o)})}});
|
|
enyo.kind({name:"Script",kind:"Scroller",style:"background-color:#c0c0c0",clear:function(){with(this.$.input)setContent(value=""),render()},demo:function(){with(this.$.input)setContent(value=['r2.disassemble (0, "9090", function(text) {'," show (text)"," show ()",' r2.assemble (0, "mov eax, 33", function (text) {'," show (text);"," });"," show (r2)","});"].join("\n")),render()},run:function(){function show(t){if(t)if("object"==typeof t){out+="{";for(var n in t){var e=t[n];out+=n+": "+e+"\n , "}out+="}"}else out+=t+"\n";else out+="\n"}var code=this.$.input.value,out="";try{eval(code),this.$.output.setContent(out)}catch(e){alert(e)}},components:[{tag:"p",style:"margin-left:10px",components:[{kind:"onyx.Button",content:"Run",classes:"sourcebutton",ontap:"run"},{kind:"onyx.Button",content:"Clear",classes:"sourcebutton",ontap:"clear"},{kind:"onyx.Button",content:"Demo",classes:"sourcebutton",ontap:"demo"}]},{kind:"onyx.TextArea",name:"input",classes:"sourcecode"},{tag:"pre",name:"output",style:"margin-left:12px"}]});
|
|
enyo.kind({name:"Search",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"TODO: Search"}]}]});
|
|
enyo.kind({name:"Settings",classes:"panels-sample-sliding-content r2panel",kind:"Scroller",tag:"div",data:null,style:"background-color:#c0c0c0; color:black !important;padding:0px;margin:0px;border:0px;overflow:hidden",components:[{kind:"FittableRows",fit:!1,components:[{tag:"h2",content:"General"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Two panels",classes:"rowline"},{kind:"onyx.ToggleButton",name:"twopanels"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Edit keybindings",classes:"rowline"},{kind:"onyx.Button",content:"+"}]}]},{kind:"FittableRows",fit:!1,components:[{tag:"h2",content:"Target"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Arch",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",name:"arch",components:[{content:"arc"},{content:"arm"},{content:"avr"},{content:"ppc"},{content:"bf"},{content:"dalvik"},{content:"dcpu16"},{content:"i8080"},{content:"java"},{content:"m68k"},{content:"mips"},{content:"msil"},{content:"rar"},{content:"sh"},{content:"sparc"},{content:"x86",active:!0},{content:"z80"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Bits",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",name:"bits",components:[{content:"8"},{content:"16"},{content:"32",active:!0},{content:"64"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Endian",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",components:[{content:"little",active:!0},{content:"big"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"OS",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",components:[{content:"linux",active:!0},{content:"darwin"},{content:"w32"},{content:"dos"}]}]}]},{tag:"h2",content:"Disassembly"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show new view",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"use_new_view"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show bytes",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_bytes"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show offsets",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_offset"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show flags",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_flags"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show xrefs",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_xrefs"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show comments on right",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_cmtright"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show lines",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_lines"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Pseudo",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_pseudo"}]}]},{tag:"h2",content:"Save changes?"},{tag:"div",style:"margin-left:50px",components:[{ontap:"reset",kind:"onyx.Button",style:"position:relative;left:0px",content:"Reset"},{ontap:"save",kind:"onyx.Button",style:"position:relative;left:50px",content:"Save",classes:"onyx-affirmative"}]},{tag:"div",style:"height:64px"}],load:function(){var t=this;t.$.twopanels.setActive(-1!=document.referrer.indexOf("/two")),t.$.toggle_bytes.setActive(r2.settings["asm.bytes"]),t.$.toggle_pseudo.setActive(r2.settings["asm.pseudo"]),t.$.toggle_flags.setActive(r2.settings["asm.flags"]),t.$.toggle_xrefs.setActive(r2.settings["asm.xrefs"]),t.$.toggle_cmtright.setActive(r2.settings["asm.cmt.right"]),t.$.toggle_offset.setActive(r2.settings["asm.offset"]),t.$.toggle_lines.setActive(r2.settings["asm.lines"]);var n=readCookie("r2_view_mode");n||(n="old"),t.$.use_new_view.setActive("new"==n)},create:function(){this.inherited(arguments),this.load()},save:function(){var t=this.$.use_new_view.active,n=this.$.toggle_offset.active,e=this.$.arch.selected.content,o=this.$.bits.selected.content,s=this.$.toggle_bytes.active,a=this.$.toggle_pseudo.active,i=this.$.toggle_flags.active,c=this.$.toggle_lines.active,r=this.$.toggle_xrefs.active,l=this.$.toggle_cmtright.active,g=this.$.twopanels.active;r2.cmds(["e asm.offset="+n,"e asm.arch="+e,"e asm.bits="+o,"e asm.lines="+c,"e asm.bytes="+s,"e asm.flags="+i,"e asm.xrefs="+r,"e asm.cmt.right="+l,"e asm.pseudo="+a]),r2.settings={use_new_view:t,"asm.arch":e,"asm.bits":o,"asm.bytes":s,"asm.flags":i,"asm.xrefs":r,"asm.cmt.right":l,"asm.lines":c,"asm.pseudo":a},t?createCookie("r2_view_mode","new",7):createCookie("r2_view_mode","old",7),g?window.parent.location="/enyo/two":window.parent.location="/enyo/",r2ui.seek("$$",!1)},reset:function(){this.load()}});
|