mirror of https://github.com/ConsenSys/mythril
parent
5a69a52bf2
commit
ac8110d325
@ -1 +0,0 @@ |
||||
606060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c7dbbc47146101d1578063d7c81b55146101fa578063dd11247e14610223578063dfd50f521461024c578063e3ac5d26146102b6578063e9874106146102df575b6000803491505b60326722b1c8c1227a000081151561009357fe5b0482101580156100a557506032600154105b1561016f576001600081548092919060010191905055905060408051908101604052803373ffffffffffffffffffffffffffffffffffffffff1681526020016000548152506002600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505060326722b1c8c1227a000081151561016557fe5b048203915061007f565b6032600154141561018357610182610308565b5b60008211156101cd573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156101cc57600080fd5b5b5050005b34156101dc57600080fd5b6101e461051d565b6040518082815260200191505060405180910390f35b341561020557600080fd5b61020d610523565b6040518082815260200191505060405180910390f35b341561022e57600080fd5b610236610529565b6040518082815260200191505060405180910390f35b341561025757600080fd5b61026d600480803590602001909190505061052e565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156102c157600080fd5b6102c9610572565b6040518082815260200191505060405180910390f35b34156102ea57600080fd5b6102f261057e565b6040518082815260200191505060405180910390f35b6000806000806000806002600060324173ffffffffffffffffffffffffffffffffffffffff1681151561033757fe5b06815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695506002600060323373ffffffffffffffffffffffffffffffffffffffff1681151561039257fe5b06815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450449350858585604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019350505050604051809103902092506032836001900481151561047857fe5b0691506002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600080815480929190600101919050555060006001819055508073ffffffffffffffffffffffffffffffffffffffff166108fc6722b1c8c1227a00009081150290604051600060405180830381858888f19350505050151561051557600080fd5b505050505050565b60015481565b60005481565b603281565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b6722b1c8c1227a000081565b60326722b1c8c1227a000081151561059257fe5b04815600a165627a7a7230582099861dd2fb40dc8a6a20e63397adb070d01ccb457a350e4682f9f8d1cceb29c30029 |
@ -1,72 +0,0 @@ |
||||
{ |
||||
"success": true, |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"title": "Dependence on predictable environment variable", |
||||
"description": "In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient:\n- block.coinbase\n", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1285, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 47, |
||||
"code": "winningAddress.transfer(prize)" |
||||
}, |
||||
{ |
||||
"title": "Ether send", |
||||
"description": "In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0.\nThere is a check on storage index 0. This storage slot can be written to by calling the function `fallback`.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1285, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 47, |
||||
"code": "winningAddress.transfer(prize)" |
||||
}, |
||||
{ |
||||
"title": "Exception state", |
||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
||||
"function": "fallback", |
||||
"type": "Informational", |
||||
"address": 356, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 11, |
||||
"code": "prize / totalTickets" |
||||
}, |
||||
{ |
||||
"title": "Exception state", |
||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Informational", |
||||
"address": 146, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 11, |
||||
"code": "prize / totalTickets" |
||||
}, |
||||
{ |
||||
"title": "Integer Overflow ", |
||||
"description": "A possible integer overflow exists in the function `_function_0xe9874106`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1216, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 45, |
||||
"code": "gameId++" |
||||
}, |
||||
{ |
||||
"title": "Integer Overflow ", |
||||
"description": "A possible integer overflow exists in the function `_function_0xe9874106`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 262, |
||||
"debug": "<DEBUG-DATA>", |
||||
"filename": "<TESTDATA>/inputs/weak_random.sol", |
||||
"lineno": 22, |
||||
"code": "contestants[currTicket] = Contestant(msg.sender, gameId)" |
||||
} |
||||
] |
||||
} |
@ -1,760 +0,0 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0078 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0xc7dbbc47 |
||||
60 EQ |
||||
61 PUSH2 0x01d1 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0xd7c81b55 |
||||
71 EQ |
||||
72 PUSH2 0x01fa |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0xdd11247e |
||||
82 EQ |
||||
83 PUSH2 0x0223 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0xdfd50f52 |
||||
93 EQ |
||||
94 PUSH2 0x024c |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xe3ac5d26 |
||||
104 EQ |
||||
105 PUSH2 0x02b6 |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe9874106 |
||||
115 EQ |
||||
116 PUSH2 0x02df |
||||
119 JUMPI |
||||
120 JUMPDEST |
||||
121 PUSH1 0x00 |
||||
123 DUP1 |
||||
124 CALLVALUE |
||||
125 SWAP2 |
||||
126 POP |
||||
127 JUMPDEST |
||||
128 PUSH1 0x32 |
||||
130 PUSH8 0x22b1c8c1227a0000 |
||||
139 DUP2 |
||||
140 ISZERO |
||||
141 ISZERO |
||||
142 PUSH2 0x0093 |
||||
145 JUMPI |
||||
146 ASSERT_FAIL |
||||
147 JUMPDEST |
||||
148 DIV |
||||
149 DUP3 |
||||
150 LT |
||||
151 ISZERO |
||||
152 DUP1 |
||||
153 ISZERO |
||||
154 PUSH2 0x00a5 |
||||
157 JUMPI |
||||
158 POP |
||||
159 PUSH1 0x32 |
||||
161 PUSH1 0x01 |
||||
163 SLOAD |
||||
164 LT |
||||
165 JUMPDEST |
||||
166 ISZERO |
||||
167 PUSH2 0x016f |
||||
170 JUMPI |
||||
171 PUSH1 0x01 |
||||
173 PUSH1 0x00 |
||||
175 DUP2 |
||||
176 SLOAD |
||||
177 DUP1 |
||||
178 SWAP3 |
||||
179 SWAP2 |
||||
180 SWAP1 |
||||
181 PUSH1 0x01 |
||||
183 ADD |
||||
184 SWAP2 |
||||
185 SWAP1 |
||||
186 POP |
||||
187 SSTORE |
||||
188 SWAP1 |
||||
189 POP |
||||
190 PUSH1 0x40 |
||||
192 DUP1 |
||||
193 MLOAD |
||||
194 SWAP1 |
||||
195 DUP2 |
||||
196 ADD |
||||
197 PUSH1 0x40 |
||||
199 MSTORE |
||||
200 DUP1 |
||||
201 CALLER |
||||
202 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
223 AND |
||||
224 DUP2 |
||||
225 MSTORE |
||||
226 PUSH1 0x20 |
||||
228 ADD |
||||
229 PUSH1 0x00 |
||||
231 SLOAD |
||||
232 DUP2 |
||||
233 MSTORE |
||||
234 POP |
||||
235 PUSH1 0x02 |
||||
237 PUSH1 0x00 |
||||
239 DUP4 |
||||
240 DUP2 |
||||
241 MSTORE |
||||
242 PUSH1 0x20 |
||||
244 ADD |
||||
245 SWAP1 |
||||
246 DUP2 |
||||
247 MSTORE |
||||
248 PUSH1 0x20 |
||||
250 ADD |
||||
251 PUSH1 0x00 |
||||
253 SHA3 |
||||
254 PUSH1 0x00 |
||||
256 DUP3 |
||||
257 ADD |
||||
258 MLOAD |
||||
259 DUP2 |
||||
260 PUSH1 0x00 |
||||
262 ADD |
||||
263 PUSH1 0x00 |
||||
265 PUSH2 0x0100 |
||||
268 EXP |
||||
269 DUP2 |
||||
270 SLOAD |
||||
271 DUP2 |
||||
272 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
293 MUL |
||||
294 NOT |
||||
295 AND |
||||
296 SWAP1 |
||||
297 DUP4 |
||||
298 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
319 AND |
||||
320 MUL |
||||
321 OR |
||||
322 SWAP1 |
||||
323 SSTORE |
||||
324 POP |
||||
325 PUSH1 0x20 |
||||
327 DUP3 |
||||
328 ADD |
||||
329 MLOAD |
||||
330 DUP2 |
||||
331 PUSH1 0x01 |
||||
333 ADD |
||||
334 SSTORE |
||||
335 SWAP1 |
||||
336 POP |
||||
337 POP |
||||
338 PUSH1 0x32 |
||||
340 PUSH8 0x22b1c8c1227a0000 |
||||
349 DUP2 |
||||
350 ISZERO |
||||
351 ISZERO |
||||
352 PUSH2 0x0165 |
||||
355 JUMPI |
||||
356 ASSERT_FAIL |
||||
357 JUMPDEST |
||||
358 DIV |
||||
359 DUP3 |
||||
360 SUB |
||||
361 SWAP2 |
||||
362 POP |
||||
363 PUSH2 0x007f |
||||
366 JUMP |
||||
367 JUMPDEST |
||||
368 PUSH1 0x32 |
||||
370 PUSH1 0x01 |
||||
372 SLOAD |
||||
373 EQ |
||||
374 ISZERO |
||||
375 PUSH2 0x0183 |
||||
378 JUMPI |
||||
379 PUSH2 0x0182 |
||||
382 PUSH2 0x0308 |
||||
385 JUMP |
||||
386 JUMPDEST |
||||
387 JUMPDEST |
||||
388 PUSH1 0x00 |
||||
390 DUP3 |
||||
391 GT |
||||
392 ISZERO |
||||
393 PUSH2 0x01cd |
||||
396 JUMPI |
||||
397 CALLER |
||||
398 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
419 AND |
||||
420 PUSH2 0x08fc |
||||
423 DUP4 |
||||
424 SWAP1 |
||||
425 DUP2 |
||||
426 ISZERO |
||||
427 MUL |
||||
428 SWAP1 |
||||
429 PUSH1 0x40 |
||||
431 MLOAD |
||||
432 PUSH1 0x00 |
||||
434 PUSH1 0x40 |
||||
436 MLOAD |
||||
437 DUP1 |
||||
438 DUP4 |
||||
439 SUB |
||||
440 DUP2 |
||||
441 DUP6 |
||||
442 DUP9 |
||||
443 DUP9 |
||||
444 CALL |
||||
445 SWAP4 |
||||
446 POP |
||||
447 POP |
||||
448 POP |
||||
449 POP |
||||
450 ISZERO |
||||
451 ISZERO |
||||
452 PUSH2 0x01cc |
||||
455 JUMPI |
||||
456 PUSH1 0x00 |
||||
458 DUP1 |
||||
459 REVERT |
||||
460 JUMPDEST |
||||
461 JUMPDEST |
||||
462 POP |
||||
463 POP |
||||
464 STOP |
||||
465 JUMPDEST |
||||
466 CALLVALUE |
||||
467 ISZERO |
||||
468 PUSH2 0x01dc |
||||
471 JUMPI |
||||
472 PUSH1 0x00 |
||||
474 DUP1 |
||||
475 REVERT |
||||
476 JUMPDEST |
||||
477 PUSH2 0x01e4 |
||||
480 PUSH2 0x051d |
||||
483 JUMP |
||||
484 JUMPDEST |
||||
485 PUSH1 0x40 |
||||
487 MLOAD |
||||
488 DUP1 |
||||
489 DUP3 |
||||
490 DUP2 |
||||
491 MSTORE |
||||
492 PUSH1 0x20 |
||||
494 ADD |
||||
495 SWAP2 |
||||
496 POP |
||||
497 POP |
||||
498 PUSH1 0x40 |
||||
500 MLOAD |
||||
501 DUP1 |
||||
502 SWAP2 |
||||
503 SUB |
||||
504 SWAP1 |
||||
505 RETURN |
||||
506 JUMPDEST |
||||
507 CALLVALUE |
||||
508 ISZERO |
||||
509 PUSH2 0x0205 |
||||
512 JUMPI |
||||
513 PUSH1 0x00 |
||||
515 DUP1 |
||||
516 REVERT |
||||
517 JUMPDEST |
||||
518 PUSH2 0x020d |
||||
521 PUSH2 0x0523 |
||||
524 JUMP |
||||
525 JUMPDEST |
||||
526 PUSH1 0x40 |
||||
528 MLOAD |
||||
529 DUP1 |
||||
530 DUP3 |
||||
531 DUP2 |
||||
532 MSTORE |
||||
533 PUSH1 0x20 |
||||
535 ADD |
||||
536 SWAP2 |
||||
537 POP |
||||
538 POP |
||||
539 PUSH1 0x40 |
||||
541 MLOAD |
||||
542 DUP1 |
||||
543 SWAP2 |
||||
544 SUB |
||||
545 SWAP1 |
||||
546 RETURN |
||||
547 JUMPDEST |
||||
548 CALLVALUE |
||||
549 ISZERO |
||||
550 PUSH2 0x022e |
||||
553 JUMPI |
||||
554 PUSH1 0x00 |
||||
556 DUP1 |
||||
557 REVERT |
||||
558 JUMPDEST |
||||
559 PUSH2 0x0236 |
||||
562 PUSH2 0x0529 |
||||
565 JUMP |
||||
566 JUMPDEST |
||||
567 PUSH1 0x40 |
||||
569 MLOAD |
||||
570 DUP1 |
||||
571 DUP3 |
||||
572 DUP2 |
||||
573 MSTORE |
||||
574 PUSH1 0x20 |
||||
576 ADD |
||||
577 SWAP2 |
||||
578 POP |
||||
579 POP |
||||
580 PUSH1 0x40 |
||||
582 MLOAD |
||||
583 DUP1 |
||||
584 SWAP2 |
||||
585 SUB |
||||
586 SWAP1 |
||||
587 RETURN |
||||
588 JUMPDEST |
||||
589 CALLVALUE |
||||
590 ISZERO |
||||
591 PUSH2 0x0257 |
||||
594 JUMPI |
||||
595 PUSH1 0x00 |
||||
597 DUP1 |
||||
598 REVERT |
||||
599 JUMPDEST |
||||
600 PUSH2 0x026d |
||||
603 PUSH1 0x04 |
||||
605 DUP1 |
||||
606 DUP1 |
||||
607 CALLDATALOAD |
||||
608 SWAP1 |
||||
609 PUSH1 0x20 |
||||
611 ADD |
||||
612 SWAP1 |
||||
613 SWAP2 |
||||
614 SWAP1 |
||||
615 POP |
||||
616 POP |
||||
617 PUSH2 0x052e |
||||
620 JUMP |
||||
621 JUMPDEST |
||||
622 PUSH1 0x40 |
||||
624 MLOAD |
||||
625 DUP1 |
||||
626 DUP4 |
||||
627 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
648 AND |
||||
649 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
670 AND |
||||
671 DUP2 |
||||
672 MSTORE |
||||
673 PUSH1 0x20 |
||||
675 ADD |
||||
676 DUP3 |
||||
677 DUP2 |
||||
678 MSTORE |
||||
679 PUSH1 0x20 |
||||
681 ADD |
||||
682 SWAP3 |
||||
683 POP |
||||
684 POP |
||||
685 POP |
||||
686 PUSH1 0x40 |
||||
688 MLOAD |
||||
689 DUP1 |
||||
690 SWAP2 |
||||
691 SUB |
||||
692 SWAP1 |
||||
693 RETURN |
||||
694 JUMPDEST |
||||
695 CALLVALUE |
||||
696 ISZERO |
||||
697 PUSH2 0x02c1 |
||||
700 JUMPI |
||||
701 PUSH1 0x00 |
||||
703 DUP1 |
||||
704 REVERT |
||||
705 JUMPDEST |
||||
706 PUSH2 0x02c9 |
||||
709 PUSH2 0x0572 |
||||
712 JUMP |
||||
713 JUMPDEST |
||||
714 PUSH1 0x40 |
||||
716 MLOAD |
||||
717 DUP1 |
||||
718 DUP3 |
||||
719 DUP2 |
||||
720 MSTORE |
||||
721 PUSH1 0x20 |
||||
723 ADD |
||||
724 SWAP2 |
||||
725 POP |
||||
726 POP |
||||
727 PUSH1 0x40 |
||||
729 MLOAD |
||||
730 DUP1 |
||||
731 SWAP2 |
||||
732 SUB |
||||
733 SWAP1 |
||||
734 RETURN |
||||
735 JUMPDEST |
||||
736 CALLVALUE |
||||
737 ISZERO |
||||
738 PUSH2 0x02ea |
||||
741 JUMPI |
||||
742 PUSH1 0x00 |
||||
744 DUP1 |
||||
745 REVERT |
||||
746 JUMPDEST |
||||
747 PUSH2 0x02f2 |
||||
750 PUSH2 0x057e |
||||
753 JUMP |
||||
754 JUMPDEST |
||||
755 PUSH1 0x40 |
||||
757 MLOAD |
||||
758 DUP1 |
||||
759 DUP3 |
||||
760 DUP2 |
||||
761 MSTORE |
||||
762 PUSH1 0x20 |
||||
764 ADD |
||||
765 SWAP2 |
||||
766 POP |
||||
767 POP |
||||
768 PUSH1 0x40 |
||||
770 MLOAD |
||||
771 DUP1 |
||||
772 SWAP2 |
||||
773 SUB |
||||
774 SWAP1 |
||||
775 RETURN |
||||
776 JUMPDEST |
||||
777 PUSH1 0x00 |
||||
779 DUP1 |
||||
780 PUSH1 0x00 |
||||
782 DUP1 |
||||
783 PUSH1 0x00 |
||||
785 DUP1 |
||||
786 PUSH1 0x02 |
||||
788 PUSH1 0x00 |
||||
790 PUSH1 0x32 |
||||
792 COINBASE |
||||
793 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
814 AND |
||||
815 DUP2 |
||||
816 ISZERO |
||||
817 ISZERO |
||||
818 PUSH2 0x0337 |
||||
821 JUMPI |
||||
822 ASSERT_FAIL |
||||
823 JUMPDEST |
||||
824 MOD |
||||
825 DUP2 |
||||
826 MSTORE |
||||
827 PUSH1 0x20 |
||||
829 ADD |
||||
830 SWAP1 |
||||
831 DUP2 |
||||
832 MSTORE |
||||
833 PUSH1 0x20 |
||||
835 ADD |
||||
836 PUSH1 0x00 |
||||
838 SHA3 |
||||
839 PUSH1 0x00 |
||||
841 ADD |
||||
842 PUSH1 0x00 |
||||
844 SWAP1 |
||||
845 SLOAD |
||||
846 SWAP1 |
||||
847 PUSH2 0x0100 |
||||
850 EXP |
||||
851 SWAP1 |
||||
852 DIV |
||||
853 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
874 AND |
||||
875 SWAP6 |
||||
876 POP |
||||
877 PUSH1 0x02 |
||||
879 PUSH1 0x00 |
||||
881 PUSH1 0x32 |
||||
883 CALLER |
||||
884 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
905 AND |
||||
906 DUP2 |
||||
907 ISZERO |
||||
908 ISZERO |
||||
909 PUSH2 0x0392 |
||||
912 JUMPI |
||||
913 ASSERT_FAIL |
||||
914 JUMPDEST |
||||
915 MOD |
||||
916 DUP2 |
||||
917 MSTORE |
||||
918 PUSH1 0x20 |
||||
920 ADD |
||||
921 SWAP1 |
||||
922 DUP2 |
||||
923 MSTORE |
||||
924 PUSH1 0x20 |
||||
926 ADD |
||||
927 PUSH1 0x00 |
||||
929 SHA3 |
||||
930 PUSH1 0x00 |
||||
932 ADD |
||||
933 PUSH1 0x00 |
||||
935 SWAP1 |
||||
936 SLOAD |
||||
937 SWAP1 |
||||
938 PUSH2 0x0100 |
||||
941 EXP |
||||
942 SWAP1 |
||||
943 DIV |
||||
944 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
965 AND |
||||
966 SWAP5 |
||||
967 POP |
||||
968 DIFFICULTY |
||||
969 SWAP4 |
||||
970 POP |
||||
971 DUP6 |
||||
972 DUP6 |
||||
973 DUP6 |
||||
974 PUSH1 0x40 |
||||
976 MLOAD |
||||
977 DUP1 |
||||
978 DUP5 |
||||
979 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1000 AND |
||||
1001 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1022 AND |
||||
1023 PUSH13 0x01000000000000000000000000 |
||||
1037 MUL |
||||
1038 DUP2 |
||||
1039 MSTORE |
||||
1040 PUSH1 0x14 |
||||
1042 ADD |
||||
1043 DUP4 |
||||
1044 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1065 AND |
||||
1066 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1087 AND |
||||
1088 PUSH13 0x01000000000000000000000000 |
||||
1102 MUL |
||||
1103 DUP2 |
||||
1104 MSTORE |
||||
1105 PUSH1 0x14 |
||||
1107 ADD |
||||
1108 DUP3 |
||||
1109 DUP2 |
||||
1110 MSTORE |
||||
1111 PUSH1 0x20 |
||||
1113 ADD |
||||
1114 SWAP4 |
||||
1115 POP |
||||
1116 POP |
||||
1117 POP |
||||
1118 POP |
||||
1119 PUSH1 0x40 |
||||
1121 MLOAD |
||||
1122 DUP1 |
||||
1123 SWAP2 |
||||
1124 SUB |
||||
1125 SWAP1 |
||||
1126 SHA3 |
||||
1127 SWAP3 |
||||
1128 POP |
||||
1129 PUSH1 0x32 |
||||
1131 DUP4 |
||||
1132 PUSH1 0x01 |
||||
1134 SWAP1 |
||||
1135 DIV |
||||
1136 DUP2 |
||||
1137 ISZERO |
||||
1138 ISZERO |
||||
1139 PUSH2 0x0478 |
||||
1142 JUMPI |
||||
1143 ASSERT_FAIL |
||||
1144 JUMPDEST |
||||
1145 MOD |
||||
1146 SWAP2 |
||||
1147 POP |
||||
1148 PUSH1 0x02 |
||||
1150 PUSH1 0x00 |
||||
1152 DUP4 |
||||
1153 DUP2 |
||||
1154 MSTORE |
||||
1155 PUSH1 0x20 |
||||
1157 ADD |
||||
1158 SWAP1 |
||||
1159 DUP2 |
||||
1160 MSTORE |
||||
1161 PUSH1 0x20 |
||||
1163 ADD |
||||
1164 PUSH1 0x00 |
||||
1166 SHA3 |
||||
1167 PUSH1 0x00 |
||||
1169 ADD |
||||
1170 PUSH1 0x00 |
||||
1172 SWAP1 |
||||
1173 SLOAD |
||||
1174 SWAP1 |
||||
1175 PUSH2 0x0100 |
||||
1178 EXP |
||||
1179 SWAP1 |
||||
1180 DIV |
||||
1181 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1202 AND |
||||
1203 SWAP1 |
||||
1204 POP |
||||
1205 PUSH1 0x00 |
||||
1207 DUP1 |
||||
1208 DUP2 |
||||
1209 SLOAD |
||||
1210 DUP1 |
||||
1211 SWAP3 |
||||
1212 SWAP2 |
||||
1213 SWAP1 |
||||
1214 PUSH1 0x01 |
||||
1216 ADD |
||||
1217 SWAP2 |
||||
1218 SWAP1 |
||||
1219 POP |
||||
1220 SSTORE |
||||
1221 POP |
||||
1222 PUSH1 0x00 |
||||
1224 PUSH1 0x01 |
||||
1226 DUP2 |
||||
1227 SWAP1 |
||||
1228 SSTORE |
||||
1229 POP |
||||
1230 DUP1 |
||||
1231 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1252 AND |
||||
1253 PUSH2 0x08fc |
||||
1256 PUSH8 0x22b1c8c1227a0000 |
||||
1265 SWAP1 |
||||
1266 DUP2 |
||||
1267 ISZERO |
||||
1268 MUL |
||||
1269 SWAP1 |
||||
1270 PUSH1 0x40 |
||||
1272 MLOAD |
||||
1273 PUSH1 0x00 |
||||
1275 PUSH1 0x40 |
||||
1277 MLOAD |
||||
1278 DUP1 |
||||
1279 DUP4 |
||||
1280 SUB |
||||
1281 DUP2 |
||||
1282 DUP6 |
||||
1283 DUP9 |
||||
1284 DUP9 |
||||
1285 CALL |
||||
1286 SWAP4 |
||||
1287 POP |
||||
1288 POP |
||||
1289 POP |
||||
1290 POP |
||||
1291 ISZERO |
||||
1292 ISZERO |
||||
1293 PUSH2 0x0515 |
||||
1296 JUMPI |
||||
1297 PUSH1 0x00 |
||||
1299 DUP1 |
||||
1300 REVERT |
||||
1301 JUMPDEST |
||||
1302 POP |
||||
1303 POP |
||||
1304 POP |
||||
1305 POP |
||||
1306 POP |
||||
1307 POP |
||||
1308 JUMP |
||||
1309 JUMPDEST |
||||
1310 PUSH1 0x01 |
||||
1312 SLOAD |
||||
1313 DUP2 |
||||
1314 JUMP |
||||
1315 JUMPDEST |
||||
1316 PUSH1 0x00 |
||||
1318 SLOAD |
||||
1319 DUP2 |
||||
1320 JUMP |
||||
1321 JUMPDEST |
||||
1322 PUSH1 0x32 |
||||
1324 DUP2 |
||||
1325 JUMP |
||||
1326 JUMPDEST |
||||
1327 PUSH1 0x02 |
||||
1329 PUSH1 0x20 |
||||
1331 MSTORE |
||||
1332 DUP1 |
||||
1333 PUSH1 0x00 |
||||
1335 MSTORE |
||||
1336 PUSH1 0x40 |
||||
1338 PUSH1 0x00 |
||||
1340 SHA3 |
||||
1341 PUSH1 0x00 |
||||
1343 SWAP2 |
||||
1344 POP |
||||
1345 SWAP1 |
||||
1346 POP |
||||
1347 DUP1 |
||||
1348 PUSH1 0x00 |
||||
1350 ADD |
||||
1351 PUSH1 0x00 |
||||
1353 SWAP1 |
||||
1354 SLOAD |
||||
1355 SWAP1 |
||||
1356 PUSH2 0x0100 |
||||
1359 EXP |
||||
1360 SWAP1 |
||||
1361 DIV |
||||
1362 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1383 AND |
||||
1384 SWAP1 |
||||
1385 DUP1 |
||||
1386 PUSH1 0x01 |
||||
1388 ADD |
||||
1389 SLOAD |
||||
1390 SWAP1 |
||||
1391 POP |
||||
1392 DUP3 |
||||
1393 JUMP |
||||
1394 JUMPDEST |
||||
1395 PUSH8 0x22b1c8c1227a0000 |
||||
1404 DUP2 |
||||
1405 JUMP |
||||
1406 JUMPDEST |
||||
1407 PUSH1 0x32 |
||||
1409 PUSH8 0x22b1c8c1227a0000 |
||||
1418 DUP2 |
||||
1419 ISZERO |
||||
1420 ISZERO |
||||
1421 PUSH2 0x0592 |
||||
1424 JUMPI |
||||
1425 ASSERT_FAIL |
||||
1426 JUMPDEST |
||||
1427 DIV |
||||
1428 DUP2 |
||||
1429 JUMP |
||||
1430 STOP |
File diff suppressed because one or more lines are too long
@ -1,46 +0,0 @@ |
||||
{ |
||||
"success": true, |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"title": "Dependence on predictable environment variable", |
||||
"description": "In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient:\n- block.coinbase\n", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1285, |
||||
"debug": "<DEBUG-DATA>" |
||||
}, |
||||
{ |
||||
"title": "Ether send", |
||||
"description": "In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0.\nThere is a check on storage index 0. This storage slot can be written to by calling the function `fallback`.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1285, |
||||
"debug": "<DEBUG-DATA>" |
||||
}, |
||||
{ |
||||
"title": "Exception state", |
||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
||||
"function": "fallback", |
||||
"type": "Informational", |
||||
"address": 356, |
||||
"debug": "<DEBUG-DATA>" |
||||
}, |
||||
{ |
||||
"title": "Exception state", |
||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Informational", |
||||
"address": 146, |
||||
"debug": "<DEBUG-DATA>" |
||||
}, |
||||
{ |
||||
"title": "Transaction order dependence", |
||||
"description": "A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location", |
||||
"function": "_function_0xe9874106", |
||||
"type": "Warning", |
||||
"address": 1285, |
||||
"debug": "<DEBUG-DATA>" |
||||
} |
||||
] |
||||
} |
@ -1,62 +0,0 @@ |
||||
# Analysis results for test-filename.sol |
||||
|
||||
## Dependence on predictable environment variable |
||||
|
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe9874106` |
||||
- PC address: 1285 |
||||
|
||||
### Description |
||||
|
||||
In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient: |
||||
- block.coinbase |
||||
|
||||
|
||||
## Ether send |
||||
|
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe9874106` |
||||
- PC address: 1285 |
||||
|
||||
### Description |
||||
|
||||
In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0. |
||||
There is a check on storage index 0. This storage slot can be written to by calling the function `fallback`. |
||||
|
||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
||||
|
||||
## Exception state |
||||
|
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `fallback` |
||||
- PC address: 356 |
||||
|
||||
### Description |
||||
|
||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
|
||||
## Exception state |
||||
|
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe9874106` |
||||
- PC address: 146 |
||||
|
||||
### Description |
||||
|
||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
|
||||
## Transaction order dependence |
||||
|
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe9874106` |
||||
- PC address: 1285 |
||||
|
||||
### Description |
||||
|
||||
A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location |
@ -1,46 +0,0 @@ |
||||
==== Dependence on predictable environment variable ==== |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xe9874106 |
||||
PC address: 1285 |
||||
In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient: |
||||
- block.coinbase |
||||
|
||||
-------------------- |
||||
|
||||
==== Ether send ==== |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xe9874106 |
||||
PC address: 1285 |
||||
In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0. |
||||
There is a check on storage index 0. This storage slot can be written to by calling the function `fallback`. |
||||
|
||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: fallback |
||||
PC address: 356 |
||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xe9874106 |
||||
PC address: 146 |
||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Transaction order dependence ==== |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xe9874106 |
||||
PC address: 1285 |
||||
A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location |
||||
-------------------- |
||||
|
Loading…
Reference in new issue