Created
May 12, 2018 03:36
-
-
Save p0n1/85595d3ce0fab4c0c3ce987b3a2e6169 to your computer and use it in GitHub Desktop.
call_ret_value.graph.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css" integrity="sha256-iq5ygGJ7021Pi7H5S+QAUXCPUfaBzfqeplbg/KlEssg=" crossorigin="anonymous" /> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js" integrity="sha256-JuQeAGbk9rG/EoRMixuy5X8syzICcvB0dj3KindZkY0=" crossorigin="anonymous"></script> | |
<style type="text/css"> | |
#mynetwork { | |
background-color: #232625; | |
} | |
body { | |
background-color: #232625; | |
color: #ffffff; | |
font-size: 10px; | |
} | |
</style> | |
<script> | |
var options = {"autoResize": true, "edges": {"font": {"align": "horizontal", "background": "none", "color": "#FFFFFF", "face": "arial", "multi": false, "strokeColor": "#ffffff", "strokeWidth": 0, "vadjust": 0}}, "height": "100%", "layout": {"hierarchical": {"blockShifting": true, "direction": "LR", "edgeMinimization": true, "enabled": true, "levelSeparation": 450, "nodeSpacing": 200, "parentCentralization": false, "sortMethod": "directed", "treeSpacing": 100}, "improvedLayout": true}, "manipulation": false, "nodes": {"borderWidth": 1, "borderWidthSelected": 2, "chosen": true, "color": "#000000", "font": {"align": "left", "color": "#FFFFFF"}, "shape": "box"}, "physics": {"enabled": false}, "width": "100%"}; | |
var nodes = [{"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "76 JUMPDEST fallback\n77 PUSH1 0x00\n79 DUP1\n80 REVERT", "id": "1", "isExpanded": false, "label": "76 JUMPDEST fallback\n77 PUSH1 0x00\n79 DUP1\n80 REVERT", "size": 150, "truncLabel": "76 JUMPDEST fallback\n77 PUSH1 0x00\n79 DUP1\n80 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "124 JUMPDEST b(uint256)\n125 STOP", "id": "7", "isExpanded": false, "label": "124 JUMPDEST b(uint256)\n125 STOP", "size": 150, "truncLabel": "124 JUMPDEST b(uint256)\n125 STOP"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "186 JUMPDEST b(uint256)\n187 DUP1\n188 PUSH1 0x00\n190 DUP2\n191 SWAP1\n192 SSTORE\n193 POP\n194 POP\n195 JUMP", "id": "6", "isExpanded": false, "label": "186 JUMPDEST b(uint256)\n187 DUP1\n188 PUSH1 0x00\n190 DUP2\n191 SWAP1\n192 SSTORE\n(click to expand +)", "size": 150, "truncLabel": "186 JUMPDEST b(uint256)\n187 DUP1\n188 PUSH1 0x00\n190 DUP2\n191 SWAP1\n192 SSTORE\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "182 PUSH1 0x00\n184 DUP1\n185 REVERT", "id": "8", "isExpanded": false, "label": "182 PUSH1 0x00\n184 DUP1\n185 REVERT", "size": 150, "truncLabel": "182 PUSH1 0x00\n184 DUP1\n185 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "171 JUMPDEST b(uint256)\n172 PUSH1 0x0a\n174 DUP2\n175 GT\n176 ISZERO\n177 ISZERO\n178 PUSH2 0x00ba\n181 JUMPI", "id": "5", "isExpanded": false, "label": "171 JUMPDEST b(uint256)\n172 PUSH1 0x0a\n174 DUP2\n175 GT\n176 ISZERO\n177 ISZERO\n(click to expand +)", "size": 150, "truncLabel": "171 JUMPDEST b(uint256)\n172 PUSH1 0x0a\n174 DUP2\n175 GT\n176 ISZERO\n177 ISZERO\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "93 JUMPDEST b(uint256)\n94 POP\n95 PUSH2 0x007c\n98 PUSH1 0x04\n100 DUP1\n101 CALLDATASIZE\n102 SUB\n103 DUP2\n104 ADD\n105 SWAP1\n106 DUP1\n107 DUP1\n108 CALLDATALOAD\n109 SWAP1\n110 PUSH1 0x20\n112 ADD\n113 SWAP1\n114 SWAP3\n115 SWAP2\n116 SWAP1\n117 POP\n118 POP\n119 POP\n120 PUSH2 0x00ab\n123 JUMP", "id": "4", "isExpanded": false, "label": "93 JUMPDEST b(uint256)\n94 POP\n95 PUSH2 0x007c\n98 PUSH1 0x04\n100 DUP1\n101 CALLDATASIZE\n(click to expand +)", "size": 150, "truncLabel": "93 JUMPDEST b(uint256)\n94 POP\n95 PUSH2 0x007c\n98 PUSH1 0x04\n100 DUP1\n101 CALLDATASIZE\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "89 PUSH1 0x00\n91 DUP1\n92 REVERT", "id": "9", "isExpanded": false, "label": "89 PUSH1 0x00\n91 DUP1\n92 REVERT", "size": 150, "truncLabel": "89 PUSH1 0x00\n91 DUP1\n92 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "81 JUMPDEST b(uint256)\n82 CALLVALUE\n83 DUP1\n84 ISZERO\n85 PUSH2 0x005d\n88 JUMPI", "id": "3", "isExpanded": false, "label": "81 JUMPDEST b(uint256)\n82 CALLVALUE\n83 DUP1\n84 ISZERO\n85 PUSH2 0x005d\n88 JUMPI", "size": 150, "truncLabel": "81 JUMPDEST b(uint256)\n82 CALLVALUE\n83 DUP1\n84 ISZERO\n85 PUSH2 0x005d\n88 JUMPI"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "432 JUMPDEST b_call_a(uint256)\n433 PUSH1 0x0a\n435 DUP2\n436 ADD\n437 PUSH1 0x00\n439 DUP2\n440 SWAP1\n441 SSTORE\n442 POP\n443 JUMPDEST b_call_a(uint256)\n444 POP\n445 POP\n446 POP\n447 JUMP", "id": "17", "isExpanded": false, "label": "432 JUMPDEST b_call_a(uint256)\n433 PUSH1 0x0a\n435 DUP2\n436 ADD\n437 PUSH1 0x00\n439 DUP2\n(click to expand +)", "size": 150, "truncLabel": "432 JUMPDEST b_call_a(uint256)\n433 PUSH1 0x0a\n435 DUP2\n436 ADD\n437 PUSH1 0x00\n439 DUP2\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "389 JUMPDEST b_call_a(uint256)\n390 DUP2\n391 ADD\n392 SWAP1\n393 DUP1\n394 DUP1\n395 MLOAD\n396 SWAP1\n397 PUSH1 0x20\n399 ADD\n400 SWAP1\n401 SWAP3\n402 SWAP2\n403 SWAP1\n404 POP\n405 POP\n406 POP\n407 SWAP1\n408 POP\n409 PUSH1 0x14\n411 DUP2\n412 GT\n413 ISZERO\n414 PUSH2 0x01b0\n417 JUMPI", "id": "16", "isExpanded": false, "label": "389 JUMPDEST b_call_a(uint256)\n390 DUP2\n391 ADD\n392 SWAP1\n393 DUP1\n394 DUP1\n(click to expand +)", "size": 150, "truncLabel": "389 JUMPDEST b_call_a(uint256)\n390 DUP2\n391 ADD\n392 SWAP1\n393 DUP1\n394 DUP1\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "367 JUMPDEST b_call_a(uint256)\n368 POP\n369 POP\n370 POP\n371 POP\n372 PUSH1 0x40\n374 MLOAD\n375 RETURNDATASIZE\n376 PUSH1 0x20\n378 DUP2\n379 LT\n380 ISZERO\n381 PUSH2 0x0185\n384 JUMPI", "id": "15", "isExpanded": false, "label": "367 JUMPDEST b_call_a(uint256)\n368 POP\n369 POP\n370 POP\n371 POP\n372 PUSH1 0x40\n(click to expand +)", "size": 150, "truncLabel": "367 JUMPDEST b_call_a(uint256)\n368 POP\n369 POP\n370 POP\n371 POP\n372 PUSH1 0x40\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "358 RETURNDATASIZE\n359 PUSH1 0x00\n361 DUP1\n362 RETURNDATACOPY\n363 RETURNDATASIZE\n364 PUSH1 0x00\n366 REVERT", "id": "18", "isExpanded": false, "label": "358 RETURNDATASIZE\n359 PUSH1 0x00\n361 DUP1\n362 RETURNDATACOPY\n363 RETURNDATASIZE\n364 PUSH1 0x00\n(click to expand +)", "size": 150, "truncLabel": "358 RETURNDATASIZE\n359 PUSH1 0x00\n361 DUP1\n362 RETURNDATACOPY\n363 RETURNDATASIZE\n364 PUSH1 0x00\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "347 JUMPDEST b_call_a(uint256)\n348 POP\n349 GAS\n350 CALL\n351 ISZERO\n352 DUP1\n353 ISZERO\n354 PUSH2 0x016f\n357 JUMPI", "id": "14", "isExpanded": false, "label": "347 JUMPDEST b_call_a(uint256)\n348 POP\n349 GAS\n350 CALL\n351 ISZERO\n352 DUP1\n(click to expand +)", "size": 150, "truncLabel": "347 JUMPDEST b_call_a(uint256)\n348 POP\n349 GAS\n350 CALL\n351 ISZERO\n352 DUP1\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "343 PUSH1 0x00\n345 DUP1\n346 REVERT", "id": "19", "isExpanded": false, "label": "343 PUSH1 0x00\n345 DUP1\n346 REVERT", "size": 150, "truncLabel": "343 PUSH1 0x00\n345 DUP1\n346 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "196 JUMPDEST b_call_a(uint256)\n197 PUSH1 0x00\n199 DUP1\n200 PUSH1 0x01\n202 PUSH1 0x00\n204 SWAP1\n205 SLOAD\n206 SWAP1\n207 PUSH2 0x0100\n210 EXP\n211 SWAP1\n212 DIV\n213 PUSH20 0xffffffffffffffffffffffffffffffffffffffff\n234 AND\n235 SWAP2\n236 POP\n237 DUP2\n238 PUSH20 0xffffffffffffffffffffffffffffffffffffffff\n259 AND\n260 PUSH4 0xf0fdf834\n265 DUP5\n266 PUSH1 0x40\n268 MLOAD\n269 DUP3\n270 PUSH4 0xffffffff\n275 AND\n276 PUSH29 0x0100000000000000000000000000000000000000000000000000000000\n306 MUL\n307 DUP2\n308 MSTORE\n309 PUSH1 0x04\n311 ADD\n312 DUP1\n313 DUP3\n314 DUP2\n315 MSTORE\n316 PUSH1 0x20\n318 ADD\n319 SWAP2\n320 POP\n321 POP\n322 PUSH1 0x20\n324 PUSH1 0x40\n326 MLOAD\n327 DUP1\n328 DUP4\n329 SUB\n330 DUP2\n331 PUSH1 0x00\n333 DUP8\n334 DUP1\n335 EXTCODESIZE\n336 ISZERO\n337 DUP1\n338 ISZERO\n339 PUSH2 0x015b\n342 JUMPI", "id": "13", "isExpanded": false, "label": "196 JUMPDEST b_call_a(uint256)\n197 PUSH1 0x00\n199 DUP1\n200 PUSH1 0x01\n202 PUSH1 0x00\n204 SWAP1\n(click to expand +)", "size": 150, "truncLabel": "196 JUMPDEST b_call_a(uint256)\n197 PUSH1 0x00\n199 DUP1\n200 PUSH1 0x01\n202 PUSH1 0x00\n204 SWAP1\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "138 JUMPDEST b_call_a(uint256)\n139 POP\n140 PUSH2 0x00a9\n143 PUSH1 0x04\n145 DUP1\n146 CALLDATASIZE\n147 SUB\n148 DUP2\n149 ADD\n150 SWAP1\n151 DUP1\n152 DUP1\n153 CALLDATALOAD\n154 SWAP1\n155 PUSH1 0x20\n157 ADD\n158 SWAP1\n159 SWAP3\n160 SWAP2\n161 SWAP1\n162 POP\n163 POP\n164 POP\n165 PUSH2 0x00c4\n168 JUMP", "id": "12", "isExpanded": false, "label": "138 JUMPDEST b_call_a(uint256)\n139 POP\n140 PUSH2 0x00a9\n143 PUSH1 0x04\n145 DUP1\n146 CALLDATASIZE\n(click to expand +)", "size": 150, "truncLabel": "138 JUMPDEST b_call_a(uint256)\n139 POP\n140 PUSH2 0x00a9\n143 PUSH1 0x04\n145 DUP1\n146 CALLDATASIZE\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "134 PUSH1 0x00\n136 DUP1\n137 REVERT", "id": "20", "isExpanded": false, "label": "134 PUSH1 0x00\n136 DUP1\n137 REVERT", "size": 150, "truncLabel": "134 PUSH1 0x00\n136 DUP1\n137 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "126 JUMPDEST b_call_a(uint256)\n127 CALLVALUE\n128 DUP1\n129 ISZERO\n130 PUSH2 0x008a\n133 JUMPI", "id": "11", "isExpanded": false, "label": "126 JUMPDEST b_call_a(uint256)\n127 CALLVALUE\n128 DUP1\n129 ISZERO\n130 PUSH2 0x008a\n133 JUMPI", "size": 150, "truncLabel": "126 JUMPDEST b_call_a(uint256)\n127 CALLVALUE\n128 DUP1\n129 ISZERO\n130 PUSH2 0x008a\n133 JUMPI"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "76 JUMPDEST b_call_a(uint256)\n77 PUSH1 0x00\n79 DUP1\n80 REVERT", "id": "21", "isExpanded": false, "label": "76 JUMPDEST b_call_a(uint256)\n77 PUSH1 0x00\n79 DUP1\n80 REVERT", "size": 150, "truncLabel": "76 JUMPDEST b_call_a(uint256)\n77 PUSH1 0x00\n79 DUP1\n80 REVERT"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "65 DUP1\n66 PUSH4 0xf8de78e3\n71 EQ\n72 PUSH2 0x007e\n75 JUMPI", "id": "10", "isExpanded": false, "label": "65 DUP1\n66 PUSH4 0xf8de78e3\n71 EQ\n72 PUSH2 0x007e\n75 JUMPI", "size": 150, "truncLabel": "65 DUP1\n66 PUSH4 0xf8de78e3\n71 EQ\n72 PUSH2 0x007e\n75 JUMPI"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "13 PUSH1 0x00\n15 CALLDATALOAD\n16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000\n46 SWAP1\n47 DIV\n48 PUSH4 0xffffffff\n53 AND\n54 DUP1\n55 PUSH4 0xcd580ff3\n60 EQ\n61 PUSH2 0x0051\n64 JUMPI", "id": "2", "isExpanded": false, "label": "13 PUSH1 0x00\n15 CALLDATALOAD\n16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000\n46 SWAP1\n47 DIV\n48 PUSH4 0xffffffff\n(click to expand +)", "size": 150, "truncLabel": "13 PUSH1 0x00\n15 CALLDATALOAD\n16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000\n46 SWAP1\n47 DIV\n48 PUSH4 0xffffffff\n(click to expand +)"}, {"color": {"background": "#2f7e5b", "border": "#26996f", "highlight": {"background": "#28a16f", "border": "#26996f"}}, "fullLabel": "0 PUSH1 0x80\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n9 PUSH2 0x004c\n12 JUMPI", "id": "0", "isExpanded": false, "label": "0 PUSH1 0x80\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)", "size": 150, "truncLabel": "0 PUSH1 0x80\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)"}]; | |
var edges = [{"arrows": "to", "from": "0", "label": "Not(ULE(4, calldatasize_B))", "smooth": {"type": "cubicBezier"}, "to": "1"}, {"arrows": "to", "from": "6", "label": "", "smooth": {"type": "cubicBezier"}, "to": "7"}, {"arrows": "to", "from": "5", "label": "Not(And(Extract(0xff, 4, calldata_B_4) == 0, ULE(Extract(3, 0, calldata_B_4), 10)))", "smooth": {"type": "cubicBezier"}, "to": "6"}, {"arrows": "to", "from": "5", "label": "And(Extract(0xff, 4, calldata_B_4) == 0, ULE(Extract(3, 0, calldata_B_4), 10))", "smooth": {"type": "cubicBezier"}, "to": "8"}, {"arrows": "to", "from": "4", "label": "", "smooth": {"type": "cubicBezier"}, "to": "5"}, {"arrows": "to", "from": "3", "label": "callvalue == 0", "smooth": {"type": "cubicBezier"}, "to": "4"}, {"arrows": "to", "from": "3", "label": "Not(callvalue == 0)", "smooth": {"type": "cubicBezier"}, "to": "9"}, {"arrows": "to", "from": "2", "label": "Extract(0xff, 0xe0, calldata_B_0) == 0xcd580ff3", "smooth": {"type": "cubicBezier"}, "to": "3"}, {"arrows": "to", "from": "16", "label": "True", "smooth": {"type": "cubicBezier"}, "to": "17"}, {"arrows": "to", "from": "15", "label": "True", "smooth": {"type": "cubicBezier"}, "to": "16"}, {"arrows": "to", "from": "14", "label": "Not(retval_350 == 0)", "smooth": {"type": "cubicBezier"}, "to": "15"}, {"arrows": "to", "from": "14", "label": "retval_350 == 0", "smooth": {"type": "cubicBezier"}, "to": "18"}, {"arrows": "to", "from": "13", "label": "Not(extcodesize == 0)", "smooth": {"type": "cubicBezier"}, "to": "14"}, {"arrows": "to", "from": "13", "label": "extcodesize == 0", "smooth": {"type": "cubicBezier"}, "to": "19"}, {"arrows": "to", "from": "12", "label": "", "smooth": {"type": "cubicBezier"}, "to": "13"}, {"arrows": "to", "from": "11", "label": "callvalue == 0", "smooth": {"type": "cubicBezier"}, "to": "12"}, {"arrows": "to", "from": "11", "label": "Not(callvalue == 0)", "smooth": {"type": "cubicBezier"}, "to": "20"}, {"arrows": "to", "from": "10", "label": "Extract(0xff, 0xe0, calldata_B_0) == 0xf8de78e3", "smooth": {"type": "cubicBezier"}, "to": "11"}, {"arrows": "to", "from": "10", "label": "Not(Extract(0xff, 0xe0, calldata_B_0) == 0xf8de78e3)", "smooth": {"type": "cubicBezier"}, "to": "21"}, {"arrows": "to", "from": "2", "label": "Not(Extract(0xff, 0xe0, calldata_B_0) == 0xcd580ff3)", "smooth": {"type": "cubicBezier"}, "to": "10"}, {"arrows": "to", "from": "0", "label": "ULE(4, calldatasize_B)", "smooth": {"type": "cubicBezier"}, "to": "2"}]; | |
</script> | |
</head> | |
<body> | |
<p>Mythril / Ethereum LASER Symbolic VM</p> | |
<p><div id="mynetwork"></div><br/></p> | |
<script type="text/javascript"> | |
var container = document.getElementById('mynetwork'); | |
var nodesSet = new vis.DataSet(nodes); | |
var edgesSet = new vis.DataSet(edges); | |
var data = {'nodes': nodesSet, 'edges': edgesSet} | |
var gph = new vis.Network(container, data, options); | |
gph.on("click", function (params) { | |
// parse node id | |
var nodeID = params['nodes']['0']; | |
if (nodeID) { | |
var clickedNode = nodesSet.get(nodeID); | |
if(clickedNode.isExpanded) { | |
clickedNode.label = clickedNode.truncLabel; | |
} | |
else { | |
clickedNode.label = clickedNode.fullLabel; | |
} | |
clickedNode.isExpanded = !clickedNode.isExpanded; | |
nodesSet.update(clickedNode); | |
} | |
}); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment