mirror of https://github.com/ConsenSys/mythril
parent
9af7018235
commit
524c10a8c8
@ -0,0 +1,25 @@ |
||||
from abc import ABC, abstractmethod |
||||
|
||||
|
||||
class BasicSearchStrategy(ABC): |
||||
__slots__ = "work_list", "max_depth" |
||||
|
||||
def __init__(self, work_list, max_depth): |
||||
self.work_list = work_list |
||||
self.max_depth = max_depth |
||||
|
||||
def __iter__(self): |
||||
return self |
||||
|
||||
@abstractmethod |
||||
def get_strategic_global_state(self): |
||||
raise NotImplementedError("Must be implemented by a subclass") |
||||
|
||||
def __next__(self): |
||||
try: |
||||
global_state = self.get_strategic_global_state() |
||||
if global_state.mstate.depth >= self.max_depth: |
||||
return self.__next__() |
||||
return global_state |
||||
except IndexError: |
||||
raise StopIteration |
Before Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,61 @@ |
||||
from mythril.disassembler.disassembly import * |
||||
|
||||
instruction_list = [ |
||||
{"opcode": "PUSH4", "argument": "0x10203040"}, |
||||
{"opcode": "EQ"}, |
||||
{"opcode": "PUSH4", "argument": "0x40302010"}, |
||||
{"opcode": "JUMPI"}, |
||||
] |
||||
|
||||
|
||||
def test_get_function_info(mocker): |
||||
# Arrange |
||||
global instruction_list |
||||
|
||||
signature_database_mock = SignatureDb() |
||||
mocker.patch.object(signature_database_mock, "get") |
||||
signature_database_mock.get.return_value = ["function_name"] |
||||
|
||||
# Act |
||||
function_hash, entry_point, function_name = get_function_info( |
||||
0, instruction_list, signature_database_mock |
||||
) |
||||
|
||||
# Assert |
||||
assert function_hash == "0x10203040" |
||||
assert entry_point == 0x40302010 |
||||
assert function_name == "function_name" |
||||
|
||||
|
||||
def test_get_function_info_multiple_names(mocker): |
||||
# Arrange |
||||
global instruction_list |
||||
|
||||
signature_database_mock = SignatureDb() |
||||
mocker.patch.object(signature_database_mock, "get") |
||||
signature_database_mock.get.return_value = ["function_name", "another_name"] |
||||
|
||||
# Act |
||||
function_hash, entry_point, function_name = get_function_info( |
||||
0, instruction_list, signature_database_mock |
||||
) |
||||
|
||||
# Assert |
||||
assert function_name == "**ambiguous** function_name" |
||||
|
||||
|
||||
def test_get_function_info_no_names(mocker): |
||||
# Arrange |
||||
global instruction_list |
||||
|
||||
signature_database_mock = SignatureDb() |
||||
mocker.patch.object(signature_database_mock, "get") |
||||
signature_database_mock.get.return_value = [] |
||||
|
||||
# Act |
||||
function_hash, entry_point, function_name = get_function_info( |
||||
0, instruction_list, signature_database_mock |
||||
) |
||||
|
||||
# Assert |
||||
assert function_name == "_function_0x10203040" |
@ -0,0 +1,102 @@ |
||||
import pytest |
||||
from mythril.laser.ethereum.state import Calldata |
||||
from z3 import Solver, simplify |
||||
from z3.z3types import Z3Exception |
||||
|
||||
|
||||
uninitialized_test_data = [ |
||||
([]), # Empty concrete calldata |
||||
([1, 4, 5, 3, 4, 72, 230, 53]), # Concrete calldata |
||||
] |
||||
|
||||
|
||||
@pytest.mark.parametrize("starting_calldata", uninitialized_test_data) |
||||
def test_concrete_calldata_uninitialized_index(starting_calldata): |
||||
# Arrange |
||||
calldata = Calldata(0, starting_calldata) |
||||
solver = Solver() |
||||
|
||||
# Act |
||||
value = calldata[100] |
||||
value2 = calldata.get_word_at(200) |
||||
|
||||
solver.add(calldata.constraints) |
||||
solver.check() |
||||
model = solver.model() |
||||
|
||||
value = model.eval(value) |
||||
value2 = model.eval(value2) |
||||
|
||||
# Assert |
||||
assert value == 0 |
||||
assert value2 == 0 |
||||
|
||||
|
||||
def test_concrete_calldata_calldatasize(): |
||||
# Arrange |
||||
calldata = Calldata(0, [1, 4, 7, 3, 7, 2, 9]) |
||||
solver = Solver() |
||||
|
||||
# Act |
||||
solver.add(calldata.constraints) |
||||
solver.check() |
||||
model = solver.model() |
||||
|
||||
result = model.eval(calldata.calldatasize) |
||||
|
||||
# Assert |
||||
assert result == 7 |
||||
|
||||
|
||||
def test_symbolic_calldata_constrain_index(): |
||||
# Arrange |
||||
calldata = Calldata(0) |
||||
solver = Solver() |
||||
|
||||
# Act |
||||
constraint = calldata[100] == 50 |
||||
|
||||
value = calldata[100] |
||||
|
||||
solver.add(calldata.constraints + [constraint]) |
||||
solver.check() |
||||
model = solver.model() |
||||
|
||||
value = model.eval(value) |
||||
calldatasize = model.eval(calldata.calldatasize) |
||||
|
||||
# Assert |
||||
assert value == 50 |
||||
assert simplify(calldatasize >= 100) |
||||
|
||||
|
||||
def test_concrete_calldata_constrain_index(): |
||||
# Arrange |
||||
calldata = Calldata(0, [1, 4, 7, 3, 7, 2, 9]) |
||||
solver = Solver() |
||||
|
||||
# Act |
||||
constraint = calldata[2] == 3 |
||||
|
||||
solver.add(calldata.constraints + [constraint]) |
||||
result = solver.check() |
||||
|
||||
# Assert |
||||
assert str(result) == "unsat" |
||||
|
||||
|
||||
def test_concrete_calldata_constrain_index(): |
||||
# Arrange |
||||
calldata = Calldata(0) |
||||
solver = Solver() |
||||
|
||||
# Act |
||||
constraints = [] |
||||
constraints.append(calldata[51] == 1) |
||||
constraints.append(calldata.calldatasize == 50) |
||||
|
||||
solver.add(calldata.constraints + constraints) |
||||
result = solver.check() |
||||
|
||||
# Assert |
||||
assert str(result) == "unsat" |
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
||||
{"error": null, "issues": [{"address": 661, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0x5a6814ec", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 666, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0x5a6814ec", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function `_function_0x2776b163`. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xd24b08cc", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A possible transaction order dependence vulnerability exists in function _function_0xd24b08cc. The value or direction of the call statement is determined from a tainted storage location", "function": "_function_0xd24b08cc", "swc_id": "114", "title": "Transaction order dependence", "type": "Warning"}, {"address": 784, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xd24b08cc", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 858, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 869, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "State change after external call", "type": "Warning"}, {"address": 871, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe11f493e", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 912, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xe1d10f79", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 918, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe1d10f79", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}], "success": true} |
||||
{"error": null, "issues": [{"address": 661, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0x5a6814ec", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 666, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0x5a6814ec", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function `_function_0x2776b163`. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xd24b08cc", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "Possible transaction order dependence vulnerability: The value or direction of the call statement is determined from a tainted storage location", "function": "_function_0xd24b08cc", "swc_id": "114", "title": "Transaction order dependence", "type": "Warning"}, {"address": 784, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xd24b08cc", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 858, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 869, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "State change after external call", "type": "Warning"}, {"address": 871, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe11f493e", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 912, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xe1d10f79", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 918, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe1d10f79", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}], "success": true} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
||||
{"error": null, "issues": [{"address": 722, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.", "function": "withdrawfunds()", "swc_id": "105", "title": "Ether send", "type": "Warning"}, {"address": 883, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A possible integer overflow exists in the function `invest()`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.", "function": "invest()", "swc_id": "101", "title": "Integer Overflow", "type": "Warning"}], "success": true} |
||||
{"error": null, "issues": [{"address": 722, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract.", "function": "withdrawfunds()", "swc_id": "105", "title": "Ether send", "type": "Warning"}, {"address": 883, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The arithmetic operation can result in integer overflow.\n", "function": "invest()", "swc_id": "101", "title": "Integer Overflow", "type": "Warning"}], "success": true} |
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
||||
{"error": null, "issues": [{"address": 446, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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_0x546455b5", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 484, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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_0x92dd38ea", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 506, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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_0xa08299f1", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 531, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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_0xb34c3610", "swc_id": "110", "title": "Exception state", "type": "Informational"}], "success": true} |
||||
{"error": null, "issues": [{"address": 446, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0x546455b5", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 484, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0x92dd38ea", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 506, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0xa08299f1", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 531, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0xb34c3610", "swc_id": "110", "title": "Exception state", "type": "Informational"}], "success": true} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
||||
{"error": null, "issues": [{"address": 142, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "In the function `_function_0x8a4068dd` a non-zero amount of Ether is sent to msg.sender.\nIt seems that this function can be called without restrictions.", "function": "_function_0x8a4068dd", "swc_id": "105", "title": "Ether send", "type": "Warning"}], "success": true} |
||||
{"error": null, "issues": [{"address": 142, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract.", "function": "_function_0x8a4068dd", "swc_id": "105", "title": "Ether send", "type": "Warning"}], "success": true} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,400 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0083 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x2776b163 |
||||
60 EQ |
||||
61 PUSH2 0x0088 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x379bf63c |
||||
71 EQ |
||||
72 PUSH2 0x00c1 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x5a6814ec |
||||
82 EQ |
||||
83 PUSH2 0x0116 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0xb5d02c8a |
||||
93 EQ |
||||
94 PUSH2 0x012b |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xd24b08cc |
||||
104 EQ |
||||
105 PUSH2 0x0180 |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe11f493e |
||||
115 EQ |
||||
116 PUSH2 0x0195 |
||||
119 JUMPI |
||||
120 DUP1 |
||||
121 PUSH4 0xe1d10f79 |
||||
126 EQ |
||||
127 PUSH2 0x01aa |
||||
130 JUMPI |
||||
131 JUMPDEST |
||||
132 PUSH1 0x00 |
||||
134 DUP1 |
||||
135 REVERT |
||||
136 JUMPDEST |
||||
137 CALLVALUE |
||||
138 ISZERO |
||||
139 PUSH2 0x0093 |
||||
142 JUMPI |
||||
143 PUSH1 0x00 |
||||
145 DUP1 |
||||
146 REVERT |
||||
147 JUMPDEST |
||||
148 PUSH2 0x00bf |
||||
151 PUSH1 0x04 |
||||
153 DUP1 |
||||
154 DUP1 |
||||
155 CALLDATALOAD |
||||
156 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
177 AND |
||||
178 SWAP1 |
||||
179 PUSH1 0x20 |
||||
181 ADD |
||||
182 SWAP1 |
||||
183 SWAP2 |
||||
184 SWAP1 |
||||
185 POP |
||||
186 POP |
||||
187 PUSH2 0x01e3 |
||||
190 JUMP |
||||
191 JUMPDEST |
||||
192 STOP |
||||
193 JUMPDEST |
||||
194 CALLVALUE |
||||
195 ISZERO |
||||
196 PUSH2 0x00cc |
||||
199 JUMPI |
||||
200 PUSH1 0x00 |
||||
202 DUP1 |
||||
203 REVERT |
||||
204 JUMPDEST |
||||
205 PUSH2 0x00d4 |
||||
208 PUSH2 0x0227 |
||||
211 JUMP |
||||
212 JUMPDEST |
||||
213 PUSH1 0x40 |
||||
215 MLOAD |
||||
216 DUP1 |
||||
217 DUP3 |
||||
218 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
239 AND |
||||
240 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
261 AND |
||||
262 DUP2 |
||||
263 MSTORE |
||||
264 PUSH1 0x20 |
||||
266 ADD |
||||
267 SWAP2 |
||||
268 POP |
||||
269 POP |
||||
270 PUSH1 0x40 |
||||
272 MLOAD |
||||
273 DUP1 |
||||
274 SWAP2 |
||||
275 SUB |
||||
276 SWAP1 |
||||
277 RETURN |
||||
278 JUMPDEST |
||||
279 CALLVALUE |
||||
280 ISZERO |
||||
281 PUSH2 0x0121 |
||||
284 JUMPI |
||||
285 PUSH1 0x00 |
||||
287 DUP1 |
||||
288 REVERT |
||||
289 JUMPDEST |
||||
290 PUSH2 0x0129 |
||||
293 PUSH2 0x024c |
||||
296 JUMP |
||||
297 JUMPDEST |
||||
298 STOP |
||||
299 JUMPDEST |
||||
300 CALLVALUE |
||||
301 ISZERO |
||||
302 PUSH2 0x0136 |
||||
305 JUMPI |
||||
306 PUSH1 0x00 |
||||
308 DUP1 |
||||
309 REVERT |
||||
310 JUMPDEST |
||||
311 PUSH2 0x013e |
||||
314 PUSH2 0x029b |
||||
317 JUMP |
||||
318 JUMPDEST |
||||
319 PUSH1 0x40 |
||||
321 MLOAD |
||||
322 DUP1 |
||||
323 DUP3 |
||||
324 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
345 AND |
||||
346 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
367 AND |
||||
368 DUP2 |
||||
369 MSTORE |
||||
370 PUSH1 0x20 |
||||
372 ADD |
||||
373 SWAP2 |
||||
374 POP |
||||
375 POP |
||||
376 PUSH1 0x40 |
||||
378 MLOAD |
||||
379 DUP1 |
||||
380 SWAP2 |
||||
381 SUB |
||||
382 SWAP1 |
||||
383 RETURN |
||||
384 JUMPDEST |
||||
385 CALLVALUE |
||||
386 ISZERO |
||||
387 PUSH2 0x018b |
||||
390 JUMPI |
||||
391 PUSH1 0x00 |
||||
393 DUP1 |
||||
394 REVERT |
||||
395 JUMPDEST |
||||
396 PUSH2 0x0193 |
||||
399 PUSH2 0x02c1 |
||||
402 JUMP |
||||
403 JUMPDEST |
||||
404 STOP |
||||
405 JUMPDEST |
||||
406 CALLVALUE |
||||
407 ISZERO |
||||
408 PUSH2 0x01a0 |
||||
411 JUMPI |
||||
412 PUSH1 0x00 |
||||
414 DUP1 |
||||
415 REVERT |
||||
416 JUMPDEST |
||||
417 PUSH2 0x01a8 |
||||
420 PUSH2 0x0311 |
||||
423 JUMP |
||||
424 JUMPDEST |
||||
425 STOP |
||||
426 JUMPDEST |
||||
427 CALLVALUE |
||||
428 ISZERO |
||||
429 PUSH2 0x01b5 |
||||
432 JUMPI |
||||
433 PUSH1 0x00 |
||||
435 DUP1 |
||||
436 REVERT |
||||
437 JUMPDEST |
||||
438 PUSH2 0x01e1 |
||||
441 PUSH1 0x04 |
||||
443 DUP1 |
||||
444 DUP1 |
||||
445 CALLDATALOAD |
||||
446 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
467 AND |
||||
468 SWAP1 |
||||
469 PUSH1 0x20 |
||||
471 ADD |
||||
472 SWAP1 |
||||
473 SWAP2 |
||||
474 SWAP1 |
||||
475 POP |
||||
476 POP |
||||
477 PUSH2 0x0368 |
||||
480 JUMP |
||||
481 JUMPDEST |
||||
482 STOP |
||||
483 JUMPDEST |
||||
484 DUP1 |
||||
485 PUSH1 0x01 |
||||
487 PUSH1 0x00 |
||||
489 PUSH2 0x0100 |
||||
492 EXP |
||||
493 DUP2 |
||||
494 SLOAD |
||||
495 DUP2 |
||||
496 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
517 MUL |
||||
518 NOT |
||||
519 AND |
||||
520 SWAP1 |
||||
521 DUP4 |
||||
522 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
543 AND |
||||
544 MUL |
||||
545 OR |
||||
546 SWAP1 |
||||
547 SSTORE |
||||
548 POP |
||||
549 POP |
||||
550 JUMP |
||||
551 JUMPDEST |
||||
552 PUSH1 0x00 |
||||
554 DUP1 |
||||
555 SWAP1 |
||||
556 SLOAD |
||||
557 SWAP1 |
||||
558 PUSH2 0x0100 |
||||
561 EXP |
||||
562 SWAP1 |
||||
563 DIV |
||||
564 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
585 AND |
||||
586 DUP2 |
||||
587 JUMP |
||||
588 JUMPDEST |
||||
589 PUSH1 0x00 |
||||
591 DUP1 |
||||
592 SWAP1 |
||||
593 SLOAD |
||||
594 SWAP1 |
||||
595 PUSH2 0x0100 |
||||
598 EXP |
||||
599 SWAP1 |
||||
600 DIV |
||||
601 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
622 AND |
||||
623 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
644 AND |
||||
645 PUSH1 0x40 |
||||
647 MLOAD |
||||
648 PUSH1 0x00 |
||||
650 PUSH1 0x40 |
||||
652 MLOAD |
||||
653 DUP1 |
||||
654 DUP4 |
||||
655 SUB |
||||
656 DUP2 |
||||
657 PUSH1 0x00 |
||||
659 DUP7 |
||||
660 GAS |
||||
661 CALL |
||||
662 SWAP2 |
||||
663 POP |
||||
664 POP |
||||
665 POP |
||||
666 JUMP |
||||
667 JUMPDEST |
||||
668 PUSH1 0x01 |
||||
670 PUSH1 0x00 |
||||
672 SWAP1 |
||||
673 SLOAD |
||||
674 SWAP1 |
||||
675 PUSH2 0x0100 |
||||
678 EXP |
||||
679 SWAP1 |
||||
680 DIV |
||||
681 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
702 AND |
||||
703 DUP2 |
||||
704 JUMP |
||||
705 JUMPDEST |
||||
706 PUSH1 0x01 |
||||
708 PUSH1 0x00 |
||||
710 SWAP1 |
||||
711 SLOAD |
||||
712 SWAP1 |
||||
713 PUSH2 0x0100 |
||||
716 EXP |
||||
717 SWAP1 |
||||
718 DIV |
||||
719 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
740 AND |
||||
741 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
762 AND |
||||
763 PUSH1 0x40 |
||||
765 MLOAD |
||||
766 PUSH1 0x00 |
||||
768 PUSH1 0x40 |
||||
770 MLOAD |
||||
771 DUP1 |
||||
772 DUP4 |
||||
773 SUB |
||||
774 DUP2 |
||||
775 PUSH1 0x00 |
||||
777 DUP7 |
||||
778 GAS |
||||
779 CALL |
||||
780 SWAP2 |
||||
781 POP |
||||
782 POP |
||||
783 POP |
||||
784 JUMP |
||||
785 JUMPDEST |
||||
786 PUSH1 0x00 |
||||
788 DUP1 |
||||
789 SWAP1 |
||||
790 SLOAD |
||||
791 SWAP1 |
||||
792 PUSH2 0x0100 |
||||
795 EXP |
||||
796 SWAP1 |
||||
797 DIV |
||||
798 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
819 AND |
||||
820 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
841 AND |
||||
842 PUSH1 0x40 |
||||
844 MLOAD |
||||
845 PUSH1 0x00 |
||||
847 PUSH1 0x40 |
||||
849 MLOAD |
||||
850 DUP1 |
||||
851 DUP4 |
||||
852 SUB |
||||
853 DUP2 |
||||
854 PUSH1 0x00 |
||||
856 DUP7 |
||||
857 GAS |
||||
858 CALL |
||||
859 SWAP2 |
||||
860 POP |
||||
861 POP |
||||
862 POP |
||||
863 PUSH1 0x00 |
||||
865 PUSH1 0x02 |
||||
867 DUP2 |
||||
868 SWAP1 |
||||
869 SSTORE |
||||
870 POP |
||||
871 JUMP |
||||
872 JUMPDEST |
||||
873 DUP1 |
||||
874 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
895 AND |
||||
896 PUSH1 0x40 |
||||
898 MLOAD |
||||
899 PUSH1 0x00 |
||||
901 PUSH1 0x40 |
||||
903 MLOAD |
||||
904 DUP1 |
||||
905 DUP4 |
||||
906 SUB |
||||
907 DUP2 |
||||
908 PUSH1 0x00 |
||||
910 DUP7 |
||||
911 GAS |
||||
912 CALL |
||||
913 SWAP2 |
||||
914 POP |
||||
915 POP |
||||
916 POP |
||||
917 POP |
||||
918 JUMP |
||||
919 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [{"address": 661, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0x5a6814ec", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 666, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0x5a6814ec", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function `_function_0x2776b163`. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xd24b08cc", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "Possible transaction order dependence vulnerability: The value or direction of the call statement is determined from a tainted storage location", "function": "_function_0xd24b08cc", "swc_id": "114", "title": "Transaction order dependence", "type": "Warning"}, {"address": 784, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xd24b08cc", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 858, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "Message call to external contract", "type": "Informational"}, {"address": 869, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.", "function": "_function_0xe11f493e", "swc_id": "107", "title": "State change after external call", "type": "Warning"}, {"address": 871, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe11f493e", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 912, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xe1d10f79", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 918, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xe1d10f79", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}], "success": true} |
@ -0,0 +1,111 @@ |
||||
# Analysis results for test-filename.sol |
||||
|
||||
## Message call to external contract |
||||
- SWC ID: 107 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x5a6814ec` |
||||
- PC address: 661 |
||||
|
||||
### Description |
||||
|
||||
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code. |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x5a6814ec` |
||||
- PC address: 666 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
|
||||
## Message call to external contract |
||||
- SWC ID: 107 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xd24b08cc` |
||||
- PC address: 779 |
||||
|
||||
### Description |
||||
|
||||
This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function `_function_0x2776b163`. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
|
||||
## Transaction order dependence |
||||
- SWC ID: 114 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xd24b08cc` |
||||
- PC address: 779 |
||||
|
||||
### Description |
||||
|
||||
Possible transaction order dependence vulnerability: The value or direction of the call statement is determined from a tainted storage location |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xd24b08cc` |
||||
- PC address: 784 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
|
||||
## Message call to external contract |
||||
- SWC ID: 107 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe11f493e` |
||||
- PC address: 858 |
||||
|
||||
### Description |
||||
|
||||
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code. |
||||
|
||||
## State change after external call |
||||
- SWC ID: 107 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe11f493e` |
||||
- PC address: 869 |
||||
|
||||
### Description |
||||
|
||||
The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities. |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe11f493e` |
||||
- PC address: 871 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
|
||||
## Message call to external contract |
||||
- SWC ID: 107 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe1d10f79` |
||||
- PC address: 912 |
||||
|
||||
### Description |
||||
|
||||
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xe1d10f79` |
||||
- PC address: 918 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
@ -0,0 +1,90 @@ |
||||
==== Message call to external contract ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x5a6814ec |
||||
PC address: 661 |
||||
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x5a6814ec |
||||
PC address: 666 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
||||
==== Message call to external contract ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xd24b08cc |
||||
PC address: 779 |
||||
This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function `_function_0x2776b163`. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
-------------------- |
||||
|
||||
==== Transaction order dependence ==== |
||||
SWC ID: 114 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xd24b08cc |
||||
PC address: 779 |
||||
Possible transaction order dependence vulnerability: The value or direction of the call statement is determined from a tainted storage location |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xd24b08cc |
||||
PC address: 784 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
||||
==== Message call to external contract ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xe11f493e |
||||
PC address: 858 |
||||
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code. |
||||
-------------------- |
||||
|
||||
==== State change after external call ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xe11f493e |
||||
PC address: 869 |
||||
The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xe11f493e |
||||
PC address: 871 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
||||
==== Message call to external contract ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xe1d10f79 |
||||
PC address: 912 |
||||
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xe1d10f79 |
||||
PC address: 918 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
@ -0,0 +1,259 @@ |
||||
0 PUSH1 0x80 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x004c |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x06661abd |
||||
60 EQ |
||||
61 PUSH2 0x0051 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x83f12fec |
||||
71 EQ |
||||
72 PUSH2 0x007c |
||||
75 JUMPI |
||||
76 JUMPDEST |
||||
77 PUSH1 0x00 |
||||
79 DUP1 |
||||
80 REVERT |
||||
81 JUMPDEST |
||||
82 CALLVALUE |
||||
83 DUP1 |
||||
84 ISZERO |
||||
85 PUSH2 0x005d |
||||
88 JUMPI |
||||
89 PUSH1 0x00 |
||||
91 DUP1 |
||||
92 REVERT |
||||
93 JUMPDEST |
||||
94 POP |
||||
95 PUSH2 0x0066 |
||||
98 PUSH2 0x0104 |
||||
101 JUMP |
||||
102 JUMPDEST |
||||
103 PUSH1 0x40 |
||||
105 MLOAD |
||||
106 DUP1 |
||||
107 DUP3 |
||||
108 DUP2 |
||||
109 MSTORE |
||||
110 PUSH1 0x20 |
||||
112 ADD |
||||
113 SWAP2 |
||||
114 POP |
||||
115 POP |
||||
116 PUSH1 0x40 |
||||
118 MLOAD |
||||
119 DUP1 |
||||
120 SWAP2 |
||||
121 SUB |
||||
122 SWAP1 |
||||
123 RETURN |
||||
124 JUMPDEST |
||||
125 CALLVALUE |
||||
126 DUP1 |
||||
127 ISZERO |
||||
128 PUSH2 0x0088 |
||||
131 JUMPI |
||||
132 PUSH1 0x00 |
||||
134 DUP1 |
||||
135 REVERT |
||||
136 JUMPDEST |
||||
137 POP |
||||
138 PUSH2 0x00ea |
||||
141 PUSH1 0x04 |
||||
143 DUP1 |
||||
144 CALLDATASIZE |
||||
145 SUB |
||||
146 DUP2 |
||||
147 ADD |
||||
148 SWAP1 |
||||
149 DUP1 |
||||
150 DUP1 |
||||
151 CALLDATALOAD |
||||
152 SWAP1 |
||||
153 PUSH1 0x20 |
||||
155 ADD |
||||
156 SWAP1 |
||||
157 DUP3 |
||||
158 ADD |
||||
159 DUP1 |
||||
160 CALLDATALOAD |
||||
161 SWAP1 |
||||
162 PUSH1 0x20 |
||||
164 ADD |
||||
165 SWAP1 |
||||
166 DUP1 |
||||
167 DUP1 |
||||
168 PUSH1 0x20 |
||||
170 MUL |
||||
171 PUSH1 0x20 |
||||
173 ADD |
||||
174 PUSH1 0x40 |
||||
176 MLOAD |
||||
177 SWAP1 |
||||
178 DUP2 |
||||
179 ADD |
||||
180 PUSH1 0x40 |
||||
182 MSTORE |
||||
183 DUP1 |
||||
184 SWAP4 |
||||
185 SWAP3 |
||||
186 SWAP2 |
||||
187 SWAP1 |
||||
188 DUP2 |
||||
189 DUP2 |
||||
190 MSTORE |
||||
191 PUSH1 0x20 |
||||
193 ADD |
||||
194 DUP4 |
||||
195 DUP4 |
||||
196 PUSH1 0x20 |
||||
198 MUL |
||||
199 DUP1 |
||||
200 DUP3 |
||||
201 DUP5 |
||||
202 CALLDATACOPY |
||||
203 DUP3 |
||||
204 ADD |
||||
205 SWAP2 |
||||
206 POP |
||||
207 POP |
||||
208 POP |
||||
209 POP |
||||
210 POP |
||||
211 POP |
||||
212 SWAP2 |
||||
213 SWAP3 |
||||
214 SWAP2 |
||||
215 SWAP3 |
||||
216 SWAP1 |
||||
217 DUP1 |
||||
218 CALLDATALOAD |
||||
219 SWAP1 |
||||
220 PUSH1 0x20 |
||||
222 ADD |
||||
223 SWAP1 |
||||
224 SWAP3 |
||||
225 SWAP2 |
||||
226 SWAP1 |
||||
227 POP |
||||
228 POP |
||||
229 POP |
||||
230 PUSH2 0x010a |
||||
233 JUMP |
||||
234 JUMPDEST |
||||
235 PUSH1 0x40 |
||||
237 MLOAD |
||||
238 DUP1 |
||||
239 DUP3 |
||||
240 ISZERO |
||||
241 ISZERO |
||||
242 ISZERO |
||||
243 ISZERO |
||||
244 DUP2 |
||||
245 MSTORE |
||||
246 PUSH1 0x20 |
||||
248 ADD |
||||
249 SWAP2 |
||||
250 POP |
||||
251 POP |
||||
252 PUSH1 0x40 |
||||
254 MLOAD |
||||
255 DUP1 |
||||
256 SWAP2 |
||||
257 SUB |
||||
258 SWAP1 |
||||
259 RETURN |
||||
260 JUMPDEST |
||||
261 PUSH1 0x00 |
||||
263 SLOAD |
||||
264 DUP2 |
||||
265 JUMP |
||||
266 JUMPDEST |
||||
267 PUSH1 0x00 |
||||
269 DUP1 |
||||
270 PUSH1 0x00 |
||||
272 DUP5 |
||||
273 MLOAD |
||||
274 SWAP2 |
||||
275 POP |
||||
276 DUP4 |
||||
277 DUP3 |
||||
278 MUL |
||||
279 SWAP1 |
||||
280 POP |
||||
281 PUSH1 0x00 |
||||
283 DUP3 |
||||
284 GT |
||||
285 DUP1 |
||||
286 ISZERO |
||||
287 PUSH2 0x0129 |
||||
290 JUMPI |
||||
291 POP |
||||
292 PUSH1 0x14 |
||||
294 DUP3 |
||||
295 GT |
||||
296 ISZERO |
||||
297 JUMPDEST |
||||
298 ISZERO |
||||
299 ISZERO |
||||
300 PUSH2 0x0134 |
||||
303 JUMPI |
||||
304 PUSH1 0x00 |
||||
306 DUP1 |
||||
307 REVERT |
||||
308 JUMPDEST |
||||
309 DUP1 |
||||
310 PUSH1 0x01 |
||||
312 PUSH1 0x00 |
||||
314 CALLER |
||||
315 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
336 AND |
||||
337 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
358 AND |
||||
359 DUP2 |
||||
360 MSTORE |
||||
361 PUSH1 0x20 |
||||
363 ADD |
||||
364 SWAP1 |
||||
365 DUP2 |
||||
366 MSTORE |
||||
367 PUSH1 0x20 |
||||
369 ADD |
||||
370 PUSH1 0x00 |
||||
372 SHA3 |
||||
373 PUSH1 0x00 |
||||
375 DUP3 |
||||
376 DUP3 |
||||
377 SLOAD |
||||
378 SUB |
||||
379 SWAP3 |
||||
380 POP |
||||
381 POP |
||||
382 DUP2 |
||||
383 SWAP1 |
||||
384 SSTORE |
||||
385 POP |
||||
386 PUSH1 0x01 |
||||
388 SWAP3 |
||||
389 POP |
||||
390 POP |
||||
391 POP |
||||
392 SWAP3 |
||||
393 SWAP2 |
||||
394 POP |
||||
395 POP |
||||
396 JUMP |
||||
397 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1,420 @@ |
||||
0 PUSH1 0x80 |
||||
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 0x12065fe0 |
||||
60 EQ |
||||
61 PUSH2 0x007d |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x27e235e3 |
||||
71 EQ |
||||
72 PUSH2 0x00a8 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x56885cd8 |
||||
82 EQ |
||||
83 PUSH2 0x00ff |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0x6c343ffe |
||||
93 EQ |
||||
94 PUSH2 0x0116 |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0x8da5cb5b |
||||
104 EQ |
||||
105 PUSH2 0x012d |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe8b5e51f |
||||
115 EQ |
||||
116 PUSH2 0x0184 |
||||
119 JUMPI |
||||
120 JUMPDEST |
||||
121 PUSH1 0x00 |
||||
123 DUP1 |
||||
124 REVERT |
||||
125 JUMPDEST |
||||
126 CALLVALUE |
||||
127 DUP1 |
||||
128 ISZERO |
||||
129 PUSH2 0x0089 |
||||
132 JUMPI |
||||
133 PUSH1 0x00 |
||||
135 DUP1 |
||||
136 REVERT |
||||
137 JUMPDEST |
||||
138 POP |
||||
139 PUSH2 0x0092 |
||||
142 PUSH2 0x018e |
||||
145 JUMP |
||||
146 JUMPDEST |
||||
147 PUSH1 0x40 |
||||
149 MLOAD |
||||
150 DUP1 |
||||
151 DUP3 |
||||
152 DUP2 |
||||
153 MSTORE |
||||
154 PUSH1 0x20 |
||||
156 ADD |
||||
157 SWAP2 |
||||
158 POP |
||||
159 POP |
||||
160 PUSH1 0x40 |
||||
162 MLOAD |
||||
163 DUP1 |
||||
164 SWAP2 |
||||
165 SUB |
||||
166 SWAP1 |
||||
167 RETURN |
||||
168 JUMPDEST |
||||
169 CALLVALUE |
||||
170 DUP1 |
||||
171 ISZERO |
||||
172 PUSH2 0x00b4 |
||||
175 JUMPI |
||||
176 PUSH1 0x00 |
||||
178 DUP1 |
||||
179 REVERT |
||||
180 JUMPDEST |
||||
181 POP |
||||
182 PUSH2 0x00e9 |
||||
185 PUSH1 0x04 |
||||
187 DUP1 |
||||
188 CALLDATASIZE |
||||
189 SUB |
||||
190 DUP2 |
||||
191 ADD |
||||
192 SWAP1 |
||||
193 DUP1 |
||||
194 DUP1 |
||||
195 CALLDATALOAD |
||||
196 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
217 AND |
||||
218 SWAP1 |
||||
219 PUSH1 0x20 |
||||
221 ADD |
||||
222 SWAP1 |
||||
223 SWAP3 |
||||
224 SWAP2 |
||||
225 SWAP1 |
||||
226 POP |
||||
227 POP |
||||
228 POP |
||||
229 PUSH2 0x01d4 |
||||
232 JUMP |
||||
233 JUMPDEST |
||||
234 PUSH1 0x40 |
||||
236 MLOAD |
||||
237 DUP1 |
||||
238 DUP3 |
||||
239 DUP2 |
||||
240 MSTORE |
||||
241 PUSH1 0x20 |
||||
243 ADD |
||||
244 SWAP2 |
||||
245 POP |
||||
246 POP |
||||
247 PUSH1 0x40 |
||||
249 MLOAD |
||||
250 DUP1 |
||||
251 SWAP2 |
||||
252 SUB |
||||
253 SWAP1 |
||||
254 RETURN |
||||
255 JUMPDEST |
||||
256 CALLVALUE |
||||
257 DUP1 |
||||
258 ISZERO |
||||
259 PUSH2 0x010b |
||||
262 JUMPI |
||||
263 PUSH1 0x00 |
||||
265 DUP1 |
||||
266 REVERT |
||||
267 JUMPDEST |
||||
268 POP |
||||
269 PUSH2 0x0114 |
||||
272 PUSH2 0x01ec |
||||
275 JUMP |
||||
276 JUMPDEST |
||||
277 STOP |
||||
278 JUMPDEST |
||||
279 CALLVALUE |
||||
280 DUP1 |
||||
281 ISZERO |
||||
282 PUSH2 0x0122 |
||||
285 JUMPI |
||||
286 PUSH1 0x00 |
||||
288 DUP1 |
||||
289 REVERT |
||||
290 JUMPDEST |
||||
291 POP |
||||
292 PUSH2 0x012b |
||||
295 PUSH2 0x022f |
||||
298 JUMP |
||||
299 JUMPDEST |
||||
300 STOP |
||||
301 JUMPDEST |
||||
302 CALLVALUE |
||||
303 DUP1 |
||||
304 ISZERO |
||||
305 PUSH2 0x0139 |
||||
308 JUMPI |
||||
309 PUSH1 0x00 |
||||
311 DUP1 |
||||
312 REVERT |
||||
313 JUMPDEST |
||||
314 POP |
||||
315 PUSH2 0x0142 |
||||
318 PUSH2 0x02eb |
||||
321 JUMP |
||||
322 JUMPDEST |
||||
323 PUSH1 0x40 |
||||
325 MLOAD |
||||
326 DUP1 |
||||
327 DUP3 |
||||
328 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
349 AND |
||||
350 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
371 AND |
||||
372 DUP2 |
||||
373 MSTORE |
||||
374 PUSH1 0x20 |
||||
376 ADD |
||||
377 SWAP2 |
||||
378 POP |
||||
379 POP |
||||
380 PUSH1 0x40 |
||||
382 MLOAD |
||||
383 DUP1 |
||||
384 SWAP2 |
||||
385 SUB |
||||
386 SWAP1 |
||||
387 RETURN |
||||
388 JUMPDEST |
||||
389 PUSH2 0x018c |
||||
392 PUSH2 0x0311 |
||||
395 JUMP |
||||
396 JUMPDEST |
||||
397 STOP |
||||
398 JUMPDEST |
||||
399 PUSH1 0x00 |
||||
401 DUP1 |
||||
402 PUSH1 0x00 |
||||
404 CALLER |
||||
405 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
426 AND |
||||
427 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
448 AND |
||||
449 DUP2 |
||||
450 MSTORE |
||||
451 PUSH1 0x20 |
||||
453 ADD |
||||
454 SWAP1 |
||||
455 DUP2 |
||||
456 MSTORE |
||||
457 PUSH1 0x20 |
||||
459 ADD |
||||
460 PUSH1 0x00 |
||||
462 SHA3 |
||||
463 SLOAD |
||||
464 SWAP1 |
||||
465 POP |
||||
466 SWAP1 |
||||
467 JUMP |
||||
468 JUMPDEST |
||||
469 PUSH1 0x00 |
||||
471 PUSH1 0x20 |
||||
473 MSTORE |
||||
474 DUP1 |
||||
475 PUSH1 0x00 |
||||
477 MSTORE |
||||
478 PUSH1 0x40 |
||||
480 PUSH1 0x00 |
||||
482 SHA3 |
||||
483 PUSH1 0x00 |
||||
485 SWAP2 |
||||
486 POP |
||||
487 SWAP1 |
||||
488 POP |
||||
489 SLOAD |
||||
490 DUP2 |
||||
491 JUMP |
||||
492 JUMPDEST |
||||
493 CALLER |
||||
494 PUSH1 0x01 |
||||
496 PUSH1 0x00 |
||||
498 PUSH2 0x0100 |
||||
501 EXP |
||||
502 DUP2 |
||||
503 SLOAD |
||||
504 DUP2 |
||||
505 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
526 MUL |
||||
527 NOT |
||||
528 AND |
||||
529 SWAP1 |
||||
530 DUP4 |
||||
531 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
552 AND |
||||
553 MUL |
||||
554 OR |
||||
555 SWAP1 |
||||
556 SSTORE |
||||
557 POP |
||||
558 JUMP |
||||
559 JUMPDEST |
||||
560 PUSH1 0x01 |
||||
562 PUSH1 0x00 |
||||
564 SWAP1 |
||||
565 SLOAD |
||||
566 SWAP1 |
||||
567 PUSH2 0x0100 |
||||
570 EXP |
||||
571 SWAP1 |
||||
572 DIV |
||||
573 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
594 AND |
||||
595 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
616 AND |
||||
617 CALLER |
||||
618 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
639 AND |
||||
640 EQ |
||||
641 ISZERO |
||||
642 ISZERO |
||||
643 PUSH2 0x028b |
||||
646 JUMPI |
||||
647 PUSH1 0x00 |
||||
649 DUP1 |
||||
650 REVERT |
||||
651 JUMPDEST |
||||
652 CALLER |
||||
653 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
674 AND |
||||
675 PUSH2 0x08fc |
||||
678 ADDRESS |
||||
679 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
700 AND |
||||
701 BALANCE |
||||
702 SWAP1 |
||||
703 DUP2 |
||||
704 ISZERO |
||||
705 MUL |
||||
706 SWAP1 |
||||
707 PUSH1 0x40 |
||||
709 MLOAD |
||||
710 PUSH1 0x00 |
||||
712 PUSH1 0x40 |
||||
714 MLOAD |
||||
715 DUP1 |
||||
716 DUP4 |
||||
717 SUB |
||||
718 DUP2 |
||||
719 DUP6 |
||||
720 DUP9 |
||||
721 DUP9 |
||||
722 CALL |
||||
723 SWAP4 |
||||
724 POP |
||||
725 POP |
||||
726 POP |
||||
727 POP |
||||
728 ISZERO |
||||
729 DUP1 |
||||
730 ISZERO |
||||
731 PUSH2 0x02e8 |
||||
734 JUMPI |
||||
735 RETURNDATASIZE |
||||
736 PUSH1 0x00 |
||||
738 DUP1 |
||||
739 RETURNDATACOPY |
||||
740 RETURNDATASIZE |
||||
741 PUSH1 0x00 |
||||
743 REVERT |
||||
744 JUMPDEST |
||||
745 POP |
||||
746 JUMP |
||||
747 JUMPDEST |
||||
748 PUSH1 0x01 |
||||
750 PUSH1 0x00 |
||||
752 SWAP1 |
||||
753 SLOAD |
||||
754 SWAP1 |
||||
755 PUSH2 0x0100 |
||||
758 EXP |
||||
759 SWAP1 |
||||
760 DIV |
||||
761 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
782 AND |
||||
783 DUP2 |
||||
784 JUMP |
||||
785 JUMPDEST |
||||
786 PUSH1 0x02 |
||||
788 SLOAD |
||||
789 CALLVALUE |
||||
790 GT |
||||
791 DUP1 |
||||
792 ISZERO |
||||
793 PUSH2 0x0323 |
||||
796 JUMPI |
||||
797 POP |
||||
798 PUSH1 0x03 |
||||
800 SLOAD |
||||
801 CALLVALUE |
||||
802 LT |
||||
803 JUMPDEST |
||||
804 ISZERO |
||||
805 ISZERO |
||||
806 PUSH2 0x032e |
||||
809 JUMPI |
||||
810 PUSH1 0x00 |
||||
812 DUP1 |
||||
813 REVERT |
||||
814 JUMPDEST |
||||
815 CALLVALUE |
||||
816 PUSH1 0x00 |
||||
818 DUP1 |
||||
819 CALLER |
||||
820 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
841 AND |
||||
842 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
863 AND |
||||
864 DUP2 |
||||
865 MSTORE |
||||
866 PUSH1 0x20 |
||||
868 ADD |
||||
869 SWAP1 |
||||
870 DUP2 |
||||
871 MSTORE |
||||
872 PUSH1 0x20 |
||||
874 ADD |
||||
875 PUSH1 0x00 |
||||
877 SHA3 |
||||
878 PUSH1 0x00 |
||||
880 DUP3 |
||||
881 DUP3 |
||||
882 SLOAD |
||||
883 ADD |
||||
884 SWAP3 |
||||
885 POP |
||||
886 POP |
||||
887 DUP2 |
||||
888 SWAP1 |
||||
889 SSTORE |
||||
890 POP |
||||
891 JUMP |
||||
892 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [{"address": 722, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract.", "function": "withdrawfunds()", "swc_id": "105", "title": "Ether send", "type": "Warning"}, {"address": 883, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The arithmetic operation can result in integer overflow.\n", "function": "invest()", "swc_id": "101", "title": "Integer Overflow", "type": "Warning"}], "success": true} |
@ -0,0 +1,23 @@ |
||||
# Analysis results for test-filename.sol |
||||
|
||||
## Ether send |
||||
- SWC ID: 105 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `withdrawfunds()` |
||||
- PC address: 722 |
||||
|
||||
### Description |
||||
|
||||
It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract. |
||||
|
||||
## Integer Overflow |
||||
- SWC ID: 101 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `invest()` |
||||
- PC address: 883 |
||||
|
||||
### Description |
||||
|
||||
The arithmetic operation can result in integer overflow. |
@ -0,0 +1,19 @@ |
||||
==== Ether send ==== |
||||
SWC ID: 105 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: withdrawfunds() |
||||
PC address: 722 |
||||
It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract. |
||||
-------------------- |
||||
|
||||
==== Integer Overflow ==== |
||||
SWC ID: 101 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: invest() |
||||
PC address: 883 |
||||
The arithmetic operation can result in integer overflow. |
||||
|
||||
-------------------- |
||||
|
@ -0,0 +1,392 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x008e |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x01d4277c |
||||
60 EQ |
||||
61 PUSH2 0x0093 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x546455b5 |
||||
71 EQ |
||||
72 PUSH2 0x00b6 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x78375f14 |
||||
82 EQ |
||||
83 PUSH2 0x00d9 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0x92dd38ea |
||||
93 EQ |
||||
94 PUSH2 0x00fc |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xa08299f1 |
||||
104 EQ |
||||
105 PUSH2 0x011f |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xb34c3610 |
||||
115 EQ |
||||
116 PUSH2 0x0142 |
||||
119 JUMPI |
||||
120 DUP1 |
||||
121 PUSH4 0xb630d706 |
||||
126 EQ |
||||
127 PUSH2 0x0157 |
||||
130 JUMPI |
||||
131 DUP1 |
||||
132 PUSH4 0xf44f13d8 |
||||
137 EQ |
||||
138 PUSH2 0x017a |
||||
141 JUMPI |
||||
142 JUMPDEST |
||||
143 PUSH1 0x00 |
||||
145 DUP1 |
||||
146 REVERT |
||||
147 JUMPDEST |
||||
148 CALLVALUE |
||||
149 ISZERO |
||||
150 PUSH2 0x009e |
||||
153 JUMPI |
||||
154 PUSH1 0x00 |
||||
156 DUP1 |
||||
157 REVERT |
||||
158 JUMPDEST |
||||
159 PUSH2 0x00b4 |
||||
162 PUSH1 0x04 |
||||
164 DUP1 |
||||
165 DUP1 |
||||
166 CALLDATALOAD |
||||
167 SWAP1 |
||||
168 PUSH1 0x20 |
||||
170 ADD |
||||
171 SWAP1 |
||||
172 SWAP2 |
||||
173 SWAP1 |
||||
174 POP |
||||
175 POP |
||||
176 PUSH2 0x018f |
||||
179 JUMP |
||||
180 JUMPDEST |
||||
181 STOP |
||||
182 JUMPDEST |
||||
183 CALLVALUE |
||||
184 ISZERO |
||||
185 PUSH2 0x00c1 |
||||
188 JUMPI |
||||
189 PUSH1 0x00 |
||||
191 DUP1 |
||||
192 REVERT |
||||
193 JUMPDEST |
||||
194 PUSH2 0x00d7 |
||||
197 PUSH1 0x04 |
||||
199 DUP1 |
||||
200 DUP1 |
||||
201 CALLDATALOAD |
||||
202 SWAP1 |
||||
203 PUSH1 0x20 |
||||
205 ADD |
||||
206 SWAP1 |
||||
207 SWAP2 |
||||
208 SWAP1 |
||||
209 POP |
||||
210 POP |
||||
211 PUSH2 0x01b2 |
||||
214 JUMP |
||||
215 JUMPDEST |
||||
216 STOP |
||||
217 JUMPDEST |
||||
218 CALLVALUE |
||||
219 ISZERO |
||||
220 PUSH2 0x00e4 |
||||
223 JUMPI |
||||
224 PUSH1 0x00 |
||||
226 DUP1 |
||||
227 REVERT |
||||
228 JUMPDEST |
||||
229 PUSH2 0x00fa |
||||
232 PUSH1 0x04 |
||||
234 DUP1 |
||||
235 DUP1 |
||||
236 CALLDATALOAD |
||||
237 SWAP1 |
||||
238 PUSH1 0x20 |
||||
240 ADD |
||||
241 SWAP1 |
||||
242 SWAP2 |
||||
243 SWAP1 |
||||
244 POP |
||||
245 POP |
||||
246 PUSH2 0x01c2 |
||||
249 JUMP |
||||
250 JUMPDEST |
||||
251 STOP |
||||
252 JUMPDEST |
||||
253 CALLVALUE |
||||
254 ISZERO |
||||
255 PUSH2 0x0107 |
||||
258 JUMPI |
||||
259 PUSH1 0x00 |
||||
261 DUP1 |
||||
262 REVERT |
||||
263 JUMPDEST |
||||
264 PUSH2 0x011d |
||||
267 PUSH1 0x04 |
||||
269 DUP1 |
||||
270 DUP1 |
||||
271 CALLDATALOAD |
||||
272 SWAP1 |
||||
273 PUSH1 0x20 |
||||
275 ADD |
||||
276 SWAP1 |
||||
277 SWAP2 |
||||
278 SWAP1 |
||||
279 POP |
||||
280 POP |
||||
281 PUSH2 0x01d5 |
||||
284 JUMP |
||||
285 JUMPDEST |
||||
286 STOP |
||||
287 JUMPDEST |
||||
288 CALLVALUE |
||||
289 ISZERO |
||||
290 PUSH2 0x012a |
||||
293 JUMPI |
||||
294 PUSH1 0x00 |
||||
296 DUP1 |
||||
297 REVERT |
||||
298 JUMPDEST |
||||
299 PUSH2 0x0140 |
||||
302 PUSH1 0x04 |
||||
304 DUP1 |
||||
305 DUP1 |
||||
306 CALLDATALOAD |
||||
307 SWAP1 |
||||
308 PUSH1 0x20 |
||||
310 ADD |
||||
311 SWAP1 |
||||
312 SWAP2 |
||||
313 SWAP1 |
||||
314 POP |
||||
315 POP |
||||
316 PUSH2 0x01ed |
||||
319 JUMP |
||||
320 JUMPDEST |
||||
321 STOP |
||||
322 JUMPDEST |
||||
323 CALLVALUE |
||||
324 ISZERO |
||||
325 PUSH2 0x014d |
||||
328 JUMPI |
||||
329 PUSH1 0x00 |
||||
331 DUP1 |
||||
332 REVERT |
||||
333 JUMPDEST |
||||
334 PUSH2 0x0155 |
||||
337 PUSH2 0x0202 |
||||
340 JUMP |
||||
341 JUMPDEST |
||||
342 STOP |
||||
343 JUMPDEST |
||||
344 CALLVALUE |
||||
345 ISZERO |
||||
346 PUSH2 0x0162 |
||||
349 JUMPI |
||||
350 PUSH1 0x00 |
||||
352 DUP1 |
||||
353 REVERT |
||||
354 JUMPDEST |
||||
355 PUSH2 0x0178 |
||||
358 PUSH1 0x04 |
||||
360 DUP1 |
||||
361 DUP1 |
||||
362 CALLDATALOAD |
||||
363 SWAP1 |
||||
364 PUSH1 0x20 |
||||
366 ADD |
||||
367 SWAP1 |
||||
368 SWAP2 |
||||
369 SWAP1 |
||||
370 POP |
||||
371 POP |
||||
372 PUSH2 0x0217 |
||||
375 JUMP |
||||
376 JUMPDEST |
||||
377 STOP |
||||
378 JUMPDEST |
||||
379 CALLVALUE |
||||
380 ISZERO |
||||
381 PUSH2 0x0185 |
||||
384 JUMPI |
||||
385 PUSH1 0x00 |
||||
387 DUP1 |
||||
388 REVERT |
||||
389 JUMPDEST |
||||
390 PUSH2 0x018d |
||||
393 PUSH2 0x0235 |
||||
396 JUMP |
||||
397 JUMPDEST |
||||
398 STOP |
||||
399 JUMPDEST |
||||
400 PUSH1 0x00 |
||||
402 PUSH1 0x08 |
||||
404 DUP3 |
||||
405 LT |
||||
406 ISZERO |
||||
407 PUSH2 0x01ae |
||||
410 JUMPI |
||||
411 PUSH1 0x00 |
||||
413 DUP3 |
||||
414 PUSH1 0x08 |
||||
416 DUP2 |
||||
417 LT |
||||
418 ISZERO |
||||
419 ISZERO |
||||
420 PUSH2 0x01a9 |
||||
423 JUMPI |
||||
424 ASSERT_FAIL |
||||
425 JUMPDEST |
||||
426 ADD |
||||
427 SLOAD |
||||
428 SWAP1 |
||||
429 POP |
||||
430 JUMPDEST |
||||
431 POP |
||||
432 POP |
||||
433 JUMP |
||||
434 JUMPDEST |
||||
435 PUSH1 0x17 |
||||
437 DUP2 |
||||
438 EQ |
||||
439 ISZERO |
||||
440 ISZERO |
||||
441 ISZERO |
||||
442 PUSH2 0x01bf |
||||
445 JUMPI |
||||
446 ASSERT_FAIL |
||||
447 JUMPDEST |
||||
448 POP |
||||
449 JUMP |
||||
450 JUMPDEST |
||||
451 PUSH1 0x17 |
||||
453 DUP2 |
||||
454 EQ |
||||
455 ISZERO |
||||
456 ISZERO |
||||
457 ISZERO |
||||
458 PUSH2 0x01d2 |
||||
461 JUMPI |
||||
462 PUSH1 0x00 |
||||
464 DUP1 |
||||
465 REVERT |
||||
466 JUMPDEST |
||||
467 POP |
||||
468 JUMP |
||||
469 JUMPDEST |
||||
470 PUSH1 0x00 |
||||
472 DUP1 |
||||
473 DUP3 |
||||
474 PUSH1 0x08 |
||||
476 DUP2 |
||||
477 LT |
||||
478 ISZERO |
||||
479 ISZERO |
||||
480 PUSH2 0x01e5 |
||||
483 JUMPI |
||||
484 ASSERT_FAIL |
||||
485 JUMPDEST |
||||
486 ADD |
||||
487 SLOAD |
||||
488 SWAP1 |
||||
489 POP |
||||
490 POP |
||||
491 POP |
||||
492 JUMP |
||||
493 JUMPDEST |
||||
494 PUSH1 0x00 |
||||
496 DUP2 |
||||
497 PUSH1 0x01 |
||||
499 DUP2 |
||||
500 ISZERO |
||||
501 ISZERO |
||||
502 PUSH2 0x01fb |
||||
505 JUMPI |
||||
506 ASSERT_FAIL |
||||
507 JUMPDEST |
||||
508 DIV |
||||
509 SWAP1 |
||||
510 POP |
||||
511 POP |
||||
512 POP |
||||
513 JUMP |
||||
514 JUMPDEST |
||||
515 PUSH1 0x00 |
||||
517 PUSH1 0x01 |
||||
519 SWAP1 |
||||
520 POP |
||||
521 PUSH1 0x00 |
||||
523 DUP2 |
||||
524 EQ |
||||
525 ISZERO |
||||
526 ISZERO |
||||
527 PUSH2 0x0214 |
||||
530 JUMPI |
||||
531 ASSERT_FAIL |
||||
532 JUMPDEST |
||||
533 POP |
||||
534 JUMP |
||||
535 JUMPDEST |
||||
536 PUSH1 0x00 |
||||
538 DUP1 |
||||
539 DUP3 |
||||
540 GT |
||||
541 ISZERO |
||||
542 PUSH2 0x0231 |
||||
545 JUMPI |
||||
546 DUP2 |
||||
547 PUSH1 0x01 |
||||
549 DUP2 |
||||
550 ISZERO |
||||
551 ISZERO |
||||
552 PUSH2 0x022d |
||||
555 JUMPI |
||||
556 ASSERT_FAIL |
||||
557 JUMPDEST |
||||
558 DIV |
||||
559 SWAP1 |
||||
560 POP |
||||
561 JUMPDEST |
||||
562 POP |
||||
563 POP |
||||
564 JUMP |
||||
565 JUMPDEST |
||||
566 PUSH1 0x00 |
||||
568 PUSH1 0x01 |
||||
570 SWAP1 |
||||
571 POP |
||||
572 PUSH1 0x00 |
||||
574 DUP2 |
||||
575 GT |
||||
576 ISZERO |
||||
577 ISZERO |
||||
578 PUSH2 0x0247 |
||||
581 JUMPI |
||||
582 ASSERT_FAIL |
||||
583 JUMPDEST |
||||
584 POP |
||||
585 JUMP |
||||
586 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [{"address": 446, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0x546455b5", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 484, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0x92dd38ea", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 506, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0xa08299f1", "swc_id": "110", "title": "Exception state", "type": "Informational"}, {"address": 531, "contract": "Unknown", "debug": "<DEBUG-DATA>", "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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", "function": "_function_0xb34c3610", "swc_id": "110", "title": "Exception state", "type": "Informational"}], "success": true} |
@ -0,0 +1,45 @@ |
||||
# Analysis results for test-filename.sol |
||||
|
||||
## Exception state |
||||
- SWC ID: 110 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x546455b5` |
||||
- PC address: 446 |
||||
|
||||
### 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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
|
||||
## Exception state |
||||
- SWC ID: 110 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x92dd38ea` |
||||
- PC address: 484 |
||||
|
||||
### 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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
|
||||
## Exception state |
||||
- SWC ID: 110 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xa08299f1` |
||||
- PC address: 506 |
||||
|
||||
### 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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
|
||||
## Exception state |
||||
- SWC ID: 110 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xb34c3610` |
||||
- PC address: 531 |
||||
|
||||
### 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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
@ -0,0 +1,36 @@ |
||||
==== Exception state ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x546455b5 |
||||
PC address: 446 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x92dd38ea |
||||
PC address: 484 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xa08299f1 |
||||
PC address: 506 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xb34c3610 |
||||
PC address: 531 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
@ -0,0 +1,435 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x006d |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x141f32ff |
||||
60 EQ |
||||
61 PUSH2 0x0072 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x2e52d606 |
||||
71 EQ |
||||
72 PUSH2 0x00b4 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x67e404ce |
||||
82 EQ |
||||
83 PUSH2 0x00dd |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0x9b58bc26 |
||||
93 EQ |
||||
94 PUSH2 0x0132 |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xeea4c864 |
||||
104 EQ |
||||
105 PUSH2 0x0174 |
||||
108 JUMPI |
||||
109 JUMPDEST |
||||
110 PUSH1 0x00 |
||||
112 DUP1 |
||||
113 REVERT |
||||
114 JUMPDEST |
||||
115 CALLVALUE |
||||
116 ISZERO |
||||
117 PUSH2 0x007d |
||||
120 JUMPI |
||||
121 PUSH1 0x00 |
||||
123 DUP1 |
||||
124 REVERT |
||||
125 JUMPDEST |
||||
126 PUSH2 0x00b2 |
||||
129 PUSH1 0x04 |
||||
131 DUP1 |
||||
132 DUP1 |
||||
133 CALLDATALOAD |
||||
134 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
155 AND |
||||
156 SWAP1 |
||||
157 PUSH1 0x20 |
||||
159 ADD |
||||
160 SWAP1 |
||||
161 SWAP2 |
||||
162 SWAP1 |
||||
163 DUP1 |
||||
164 CALLDATALOAD |
||||
165 SWAP1 |
||||
166 PUSH1 0x20 |
||||
168 ADD |
||||
169 SWAP1 |
||||
170 SWAP2 |
||||
171 SWAP1 |
||||
172 POP |
||||
173 POP |
||||
174 PUSH2 0x01b6 |
||||
177 JUMP |
||||
178 JUMPDEST |
||||
179 STOP |
||||
180 JUMPDEST |
||||
181 CALLVALUE |
||||
182 ISZERO |
||||
183 PUSH2 0x00bf |
||||
186 JUMPI |
||||
187 PUSH1 0x00 |
||||
189 DUP1 |
||||
190 REVERT |
||||
191 JUMPDEST |
||||
192 PUSH2 0x00c7 |
||||
195 PUSH2 0x0273 |
||||
198 JUMP |
||||
199 JUMPDEST |
||||
200 PUSH1 0x40 |
||||
202 MLOAD |
||||
203 DUP1 |
||||
204 DUP3 |
||||
205 DUP2 |
||||
206 MSTORE |
||||
207 PUSH1 0x20 |
||||
209 ADD |
||||
210 SWAP2 |
||||
211 POP |
||||
212 POP |
||||
213 PUSH1 0x40 |
||||
215 MLOAD |
||||
216 DUP1 |
||||
217 SWAP2 |
||||
218 SUB |
||||
219 SWAP1 |
||||
220 RETURN |
||||
221 JUMPDEST |
||||
222 CALLVALUE |
||||
223 ISZERO |
||||
224 PUSH2 0x00e8 |
||||
227 JUMPI |
||||
228 PUSH1 0x00 |
||||
230 DUP1 |
||||
231 REVERT |
||||
232 JUMPDEST |
||||
233 PUSH2 0x00f0 |
||||
236 PUSH2 0x0279 |
||||
239 JUMP |
||||
240 JUMPDEST |
||||
241 PUSH1 0x40 |
||||
243 MLOAD |
||||
244 DUP1 |
||||
245 DUP3 |
||||
246 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
267 AND |
||||
268 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
289 AND |
||||
290 DUP2 |
||||
291 MSTORE |
||||
292 PUSH1 0x20 |
||||
294 ADD |
||||
295 SWAP2 |
||||
296 POP |
||||
297 POP |
||||
298 PUSH1 0x40 |
||||
300 MLOAD |
||||
301 DUP1 |
||||
302 SWAP2 |
||||
303 SUB |
||||
304 SWAP1 |
||||
305 RETURN |
||||
306 JUMPDEST |
||||
307 CALLVALUE |
||||
308 ISZERO |
||||
309 PUSH2 0x013d |
||||
312 JUMPI |
||||
313 PUSH1 0x00 |
||||
315 DUP1 |
||||
316 REVERT |
||||
317 JUMPDEST |
||||
318 PUSH2 0x0172 |
||||
321 PUSH1 0x04 |
||||
323 DUP1 |
||||
324 DUP1 |
||||
325 CALLDATALOAD |
||||
326 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
347 AND |
||||
348 SWAP1 |
||||
349 PUSH1 0x20 |
||||
351 ADD |
||||
352 SWAP1 |
||||
353 SWAP2 |
||||
354 SWAP1 |
||||
355 DUP1 |
||||
356 CALLDATALOAD |
||||
357 SWAP1 |
||||
358 PUSH1 0x20 |
||||
360 ADD |
||||
361 SWAP1 |
||||
362 SWAP2 |
||||
363 SWAP1 |
||||
364 POP |
||||
365 POP |
||||
366 PUSH2 0x029f |
||||
369 JUMP |
||||
370 JUMPDEST |
||||
371 STOP |
||||
372 JUMPDEST |
||||
373 CALLVALUE |
||||
374 ISZERO |
||||
375 PUSH2 0x017f |
||||
378 JUMPI |
||||
379 PUSH1 0x00 |
||||
381 DUP1 |
||||
382 REVERT |
||||
383 JUMPDEST |
||||
384 PUSH2 0x01b4 |
||||
387 PUSH1 0x04 |
||||
389 DUP1 |
||||
390 DUP1 |
||||
391 CALLDATALOAD |
||||
392 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
413 AND |
||||
414 SWAP1 |
||||
415 PUSH1 0x20 |
||||
417 ADD |
||||
418 SWAP1 |
||||
419 SWAP2 |
||||
420 SWAP1 |
||||
421 DUP1 |
||||
422 CALLDATALOAD |
||||
423 SWAP1 |
||||
424 PUSH1 0x20 |
||||
426 ADD |
||||
427 SWAP1 |
||||
428 SWAP2 |
||||
429 SWAP1 |
||||
430 POP |
||||
431 POP |
||||
432 PUSH2 0x035a |
||||
435 JUMP |
||||
436 JUMPDEST |
||||
437 STOP |
||||
438 JUMPDEST |
||||
439 DUP2 |
||||
440 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
461 AND |
||||
462 PUSH1 0x40 |
||||
464 MLOAD |
||||
465 DUP1 |
||||
466 DUP1 |
||||
467 PUSH32 0x7365744e2875696e743235362900000000000000000000000000000000000000 |
||||
500 DUP2 |
||||
501 MSTORE |
||||
502 POP |
||||
503 PUSH1 0x0d |
||||
505 ADD |
||||
506 SWAP1 |
||||
507 POP |
||||
508 PUSH1 0x40 |
||||
510 MLOAD |
||||
511 DUP1 |
||||
512 SWAP2 |
||||
513 SUB |
||||
514 SWAP1 |
||||
515 SHA3 |
||||
516 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
546 SWAP1 |
||||
547 DIV |
||||
548 DUP3 |
||||
549 PUSH1 0x40 |
||||
551 MLOAD |
||||
552 DUP3 |
||||
553 PUSH4 0xffffffff |
||||
558 AND |
||||
559 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
589 MUL |
||||
590 DUP2 |
||||
591 MSTORE |
||||
592 PUSH1 0x04 |
||||
594 ADD |
||||
595 DUP1 |
||||
596 DUP3 |
||||
597 DUP2 |
||||
598 MSTORE |
||||
599 PUSH1 0x20 |
||||
601 ADD |
||||
602 SWAP2 |
||||
603 POP |
||||
604 POP |
||||
605 PUSH1 0x00 |
||||
607 PUSH1 0x40 |
||||
609 MLOAD |
||||
610 DUP1 |
||||
611 DUP4 |
||||
612 SUB |
||||
613 DUP2 |
||||
614 PUSH1 0x00 |
||||
616 DUP8 |
||||
617 GAS |
||||
618 CALLCODE |
||||
619 SWAP3 |
||||
620 POP |
||||
621 POP |
||||
622 POP |
||||
623 POP |
||||
624 POP |
||||
625 POP |
||||
626 JUMP |
||||
627 JUMPDEST |
||||
628 PUSH1 0x00 |
||||
630 SLOAD |
||||
631 DUP2 |
||||
632 JUMP |
||||
633 JUMPDEST |
||||
634 PUSH1 0x01 |
||||
636 PUSH1 0x00 |
||||
638 SWAP1 |
||||
639 SLOAD |
||||
640 SWAP1 |
||||
641 PUSH2 0x0100 |
||||
644 EXP |
||||
645 SWAP1 |
||||
646 DIV |
||||
647 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
668 AND |
||||
669 DUP2 |
||||
670 JUMP |
||||
671 JUMPDEST |
||||
672 DUP2 |
||||
673 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
694 AND |
||||
695 PUSH1 0x40 |
||||
697 MLOAD |
||||
698 DUP1 |
||||
699 DUP1 |
||||
700 PUSH32 0x7365744e2875696e743235362900000000000000000000000000000000000000 |
||||
733 DUP2 |
||||
734 MSTORE |
||||
735 POP |
||||
736 PUSH1 0x0d |
||||
738 ADD |
||||
739 SWAP1 |
||||
740 POP |
||||
741 PUSH1 0x40 |
||||
743 MLOAD |
||||
744 DUP1 |
||||
745 SWAP2 |
||||
746 SUB |
||||
747 SWAP1 |
||||
748 SHA3 |
||||
749 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
779 SWAP1 |
||||
780 DIV |
||||
781 DUP3 |
||||
782 PUSH1 0x40 |
||||
784 MLOAD |
||||
785 DUP3 |
||||
786 PUSH4 0xffffffff |
||||
791 AND |
||||
792 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
822 MUL |
||||
823 DUP2 |
||||
824 MSTORE |
||||
825 PUSH1 0x04 |
||||
827 ADD |
||||
828 DUP1 |
||||
829 DUP3 |
||||
830 DUP2 |
||||
831 MSTORE |
||||
832 PUSH1 0x20 |
||||
834 ADD |
||||
835 SWAP2 |
||||
836 POP |
||||
837 POP |
||||
838 PUSH1 0x00 |
||||
840 PUSH1 0x40 |
||||
842 MLOAD |
||||
843 DUP1 |
||||
844 DUP4 |
||||
845 SUB |
||||
846 DUP2 |
||||
847 DUP7 |
||||
848 GAS |
||||
849 DELEGATECALL |
||||
850 SWAP3 |
||||
851 POP |
||||
852 POP |
||||
853 POP |
||||
854 POP |
||||
855 POP |
||||
856 POP |
||||
857 JUMP |
||||
858 JUMPDEST |
||||
859 DUP2 |
||||
860 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
881 AND |
||||
882 PUSH1 0x40 |
||||
884 MLOAD |
||||
885 DUP1 |
||||
886 DUP1 |
||||
887 PUSH32 0x7365744e2875696e743235362900000000000000000000000000000000000000 |
||||
920 DUP2 |
||||
921 MSTORE |
||||
922 POP |
||||
923 PUSH1 0x0d |
||||
925 ADD |
||||
926 SWAP1 |
||||
927 POP |
||||
928 PUSH1 0x40 |
||||
930 MLOAD |
||||
931 DUP1 |
||||
932 SWAP2 |
||||
933 SUB |
||||
934 SWAP1 |
||||
935 SHA3 |
||||
936 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
966 SWAP1 |
||||
967 DIV |
||||
968 DUP3 |
||||
969 PUSH1 0x40 |
||||
971 MLOAD |
||||
972 DUP3 |
||||
973 PUSH4 0xffffffff |
||||
978 AND |
||||
979 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
1009 MUL |
||||
1010 DUP2 |
||||
1011 MSTORE |
||||
1012 PUSH1 0x04 |
||||
1014 ADD |
||||
1015 DUP1 |
||||
1016 DUP3 |
||||
1017 DUP2 |
||||
1018 MSTORE |
||||
1019 PUSH1 0x20 |
||||
1021 ADD |
||||
1022 SWAP2 |
||||
1023 POP |
||||
1024 POP |
||||
1025 PUSH1 0x00 |
||||
1027 PUSH1 0x40 |
||||
1029 MLOAD |
||||
1030 DUP1 |
||||
1031 DUP4 |
||||
1032 SUB |
||||
1033 DUP2 |
||||
1034 PUSH1 0x00 |
||||
1036 DUP8 |
||||
1037 GAS |
||||
1038 CALL |
||||
1039 SWAP3 |
||||
1040 POP |
||||
1041 POP |
||||
1042 POP |
||||
1043 POP |
||||
1044 POP |
||||
1045 POP |
||||
1046 JUMP |
||||
1047 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [{"address": 626, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0x141f32ff", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 857, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0x9b58bc26", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}, {"address": 1038, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.", "function": "_function_0xeea4c864", "swc_id": "107", "title": "Message call to external contract", "type": "Warning"}, {"address": 1046, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", "function": "_function_0xeea4c864", "swc_id": "104", "title": "Unchecked CALL return value", "type": "Informational"}], "success": true} |
@ -0,0 +1,45 @@ |
||||
# Analysis results for test-filename.sol |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x141f32ff` |
||||
- PC address: 626 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0x9b58bc26` |
||||
- PC address: 857 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
|
||||
## Message call to external contract |
||||
- SWC ID: 107 |
||||
- Type: Warning |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xeea4c864` |
||||
- PC address: 1038 |
||||
|
||||
### Description |
||||
|
||||
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
|
||||
## Unchecked CALL return value |
||||
- SWC ID: 104 |
||||
- Type: Informational |
||||
- Contract: Unknown |
||||
- Function name: `_function_0xeea4c864` |
||||
- PC address: 1046 |
||||
|
||||
### Description |
||||
|
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
@ -0,0 +1,36 @@ |
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x141f32ff |
||||
PC address: 626 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0x9b58bc26 |
||||
PC address: 857 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
||||
==== Message call to external contract ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Contract: Unknown |
||||
Function name: _function_0xeea4c864 |
||||
PC address: 1038 |
||||
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied addresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Contract: Unknown |
||||
Function name: _function_0xeea4c864 |
||||
PC address: 1046 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
-------------------- |
||||
|
@ -0,0 +1,253 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x004c |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x27e235e3 |
||||
60 EQ |
||||
61 PUSH2 0x0051 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x412664ae |
||||
71 EQ |
||||
72 PUSH2 0x009e |
||||
75 JUMPI |
||||
76 JUMPDEST |
||||
77 PUSH1 0x00 |
||||
79 DUP1 |
||||
80 REVERT |
||||
81 JUMPDEST |
||||
82 CALLVALUE |
||||
83 ISZERO |
||||
84 PUSH2 0x005c |
||||
87 JUMPI |
||||
88 PUSH1 0x00 |
||||
90 DUP1 |
||||
91 REVERT |
||||
92 JUMPDEST |
||||
93 PUSH2 0x0088 |
||||
96 PUSH1 0x04 |
||||
98 DUP1 |
||||
99 DUP1 |
||||
100 CALLDATALOAD |
||||
101 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
122 AND |
||||
123 SWAP1 |
||||
124 PUSH1 0x20 |
||||
126 ADD |
||||
127 SWAP1 |
||||
128 SWAP2 |
||||
129 SWAP1 |
||||
130 POP |
||||
131 POP |
||||
132 PUSH2 0x00f8 |
||||
135 JUMP |
||||
136 JUMPDEST |
||||
137 PUSH1 0x40 |
||||
139 MLOAD |
||||
140 DUP1 |
||||
141 DUP3 |
||||
142 DUP2 |
||||
143 MSTORE |
||||
144 PUSH1 0x20 |
||||
146 ADD |
||||
147 SWAP2 |
||||
148 POP |
||||
149 POP |
||||
150 PUSH1 0x40 |
||||
152 MLOAD |
||||
153 DUP1 |
||||
154 SWAP2 |
||||
155 SUB |
||||
156 SWAP1 |
||||
157 RETURN |
||||
158 JUMPDEST |
||||
159 CALLVALUE |
||||
160 ISZERO |
||||
161 PUSH2 0x00a9 |
||||
164 JUMPI |
||||
165 PUSH1 0x00 |
||||
167 DUP1 |
||||
168 REVERT |
||||
169 JUMPDEST |
||||
170 PUSH2 0x00de |
||||
173 PUSH1 0x04 |
||||
175 DUP1 |
||||
176 DUP1 |
||||
177 CALLDATALOAD |
||||
178 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
199 AND |
||||
200 SWAP1 |
||||
201 PUSH1 0x20 |
||||
203 ADD |
||||
204 SWAP1 |
||||
205 SWAP2 |
||||
206 SWAP1 |
||||
207 DUP1 |
||||
208 CALLDATALOAD |
||||
209 SWAP1 |
||||
210 PUSH1 0x20 |
||||
212 ADD |
||||
213 SWAP1 |
||||
214 SWAP2 |
||||
215 SWAP1 |
||||
216 POP |
||||
217 POP |
||||
218 PUSH2 0x0110 |
||||
221 JUMP |
||||
222 JUMPDEST |
||||
223 PUSH1 0x40 |
||||
225 MLOAD |
||||
226 DUP1 |
||||
227 DUP3 |
||||
228 ISZERO |
||||
229 ISZERO |
||||
230 ISZERO |
||||
231 ISZERO |
||||
232 DUP2 |
||||
233 MSTORE |
||||
234 PUSH1 0x20 |
||||
236 ADD |
||||
237 SWAP2 |
||||
238 POP |
||||
239 POP |
||||
240 PUSH1 0x40 |
||||
242 MLOAD |
||||
243 DUP1 |
||||
244 SWAP2 |
||||
245 SUB |
||||
246 SWAP1 |
||||
247 RETURN |
||||
248 JUMPDEST |
||||
249 PUSH1 0x00 |
||||
251 PUSH1 0x20 |
||||
253 MSTORE |
||||
254 DUP1 |
||||
255 PUSH1 0x00 |
||||
257 MSTORE |
||||
258 PUSH1 0x40 |
||||
260 PUSH1 0x00 |
||||
262 SHA3 |
||||
263 PUSH1 0x00 |
||||
265 SWAP2 |
||||
266 POP |
||||
267 SWAP1 |
||||
268 POP |
||||
269 SLOAD |
||||
270 DUP2 |
||||
271 JUMP |
||||
272 JUMPDEST |
||||
273 PUSH1 0x00 |
||||
275 DUP2 |
||||
276 PUSH1 0x00 |
||||
278 DUP1 |
||||
279 CALLER |
||||
280 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
301 AND |
||||
302 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
323 AND |
||||
324 DUP2 |
||||
325 MSTORE |
||||
326 PUSH1 0x20 |
||||
328 ADD |
||||
329 SWAP1 |
||||
330 DUP2 |
||||
331 MSTORE |
||||
332 PUSH1 0x20 |
||||
334 ADD |
||||
335 PUSH1 0x00 |
||||
337 SHA3 |
||||
338 SLOAD |
||||
339 LT |
||||
340 ISZERO |
||||
341 PUSH2 0x0161 |
||||
344 JUMPI |
||||
345 PUSH1 0x00 |
||||
347 SWAP1 |
||||
348 POP |
||||
349 PUSH2 0x01fe |
||||
352 JUMP |
||||
353 JUMPDEST |
||||
354 DUP2 |
||||
355 PUSH1 0x00 |
||||
357 DUP1 |
||||
358 CALLER |
||||
359 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
380 AND |
||||
381 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
402 AND |
||||
403 DUP2 |
||||
404 MSTORE |
||||
405 PUSH1 0x20 |
||||
407 ADD |
||||
408 SWAP1 |
||||
409 DUP2 |
||||
410 MSTORE |
||||
411 PUSH1 0x20 |
||||
413 ADD |
||||
414 PUSH1 0x00 |
||||
416 SHA3 |
||||
417 PUSH1 0x00 |
||||
419 DUP3 |
||||
420 DUP3 |
||||
421 SLOAD |
||||
422 SUB |
||||
423 SWAP3 |
||||
424 POP |
||||
425 POP |
||||
426 DUP2 |
||||
427 SWAP1 |
||||
428 SSTORE |
||||
429 POP |
||||
430 DUP2 |
||||
431 PUSH1 0x00 |
||||
433 DUP1 |
||||
434 DUP6 |
||||
435 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
456 AND |
||||
457 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
478 AND |
||||
479 DUP2 |
||||
480 MSTORE |
||||
481 PUSH1 0x20 |
||||
483 ADD |
||||
484 SWAP1 |
||||
485 DUP2 |
||||
486 MSTORE |
||||
487 PUSH1 0x20 |
||||
489 ADD |
||||
490 PUSH1 0x00 |
||||
492 SHA3 |
||||
493 PUSH1 0x00 |
||||
495 DUP3 |
||||
496 DUP3 |
||||
497 SLOAD |
||||
498 ADD |
||||
499 SWAP3 |
||||
500 POP |
||||
501 POP |
||||
502 DUP2 |
||||
503 SWAP1 |
||||
504 SSTORE |
||||
505 POP |
||||
506 PUSH1 0x00 |
||||
508 SWAP1 |
||||
509 POP |
||||
510 JUMPDEST |
||||
511 SWAP3 |
||||
512 SWAP2 |
||||
513 POP |
||||
514 POP |
||||
515 JUMP |
||||
516 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [], "success": true} |
@ -0,0 +1,3 @@ |
||||
# Analysis results for None |
||||
|
||||
The analysis was completed successfully. No issues were detected. |
@ -0,0 +1 @@ |
||||
The analysis was completed successfully. No issues were detected. |
@ -0,0 +1,77 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH1 0x3f |
||||
11 JUMPI |
||||
12 PUSH1 0x00 |
||||
14 CALLDATALOAD |
||||
15 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
45 SWAP1 |
||||
46 DIV |
||||
47 PUSH4 0xffffffff |
||||
52 AND |
||||
53 DUP1 |
||||
54 PUSH4 0x8a4068dd |
||||
59 EQ |
||||
60 PUSH1 0x44 |
||||
62 JUMPI |
||||
63 JUMPDEST |
||||
64 PUSH1 0x00 |
||||
66 DUP1 |
||||
67 REVERT |
||||
68 JUMPDEST |
||||
69 CALLVALUE |
||||
70 ISZERO |
||||
71 PUSH1 0x4e |
||||
73 JUMPI |
||||
74 PUSH1 0x00 |
||||
76 DUP1 |
||||
77 REVERT |
||||
78 JUMPDEST |
||||
79 PUSH1 0x54 |
||||
81 PUSH1 0x56 |
||||
83 JUMP |
||||
84 JUMPDEST |
||||
85 STOP |
||||
86 JUMPDEST |
||||
87 CALLER |
||||
88 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
109 AND |
||||
110 PUSH2 0x08fc |
||||
113 PUSH8 0x1bc16d674ec80000 |
||||
122 SWAP1 |
||||
123 DUP2 |
||||
124 ISZERO |
||||
125 MUL |
||||
126 SWAP1 |
||||
127 PUSH1 0x40 |
||||
129 MLOAD |
||||
130 PUSH1 0x00 |
||||
132 PUSH1 0x40 |
||||
134 MLOAD |
||||
135 DUP1 |
||||
136 DUP4 |
||||
137 SUB |
||||
138 DUP2 |
||||
139 DUP6 |
||||
140 DUP9 |
||||
141 DUP9 |
||||
142 CALL |
||||
143 SWAP4 |
||||
144 POP |
||||
145 POP |
||||
146 POP |
||||
147 POP |
||||
148 ISZERO |
||||
149 ISZERO |
||||
150 PUSH1 0x9d |
||||
152 JUMPI |
||||
153 PUSH1 0x00 |
||||
155 DUP1 |
||||
156 REVERT |
||||
157 JUMPDEST |
||||
158 JUMP |
||||
159 STOP |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
||||
{"error": null, "issues": [{"address": 142, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "It seems that an attacker is able to execute an call instruction, this can mean that the attacker is able to extract funds out of the contract.", "function": "_function_0x8a4068dd", "swc_id": "105", "title": "Ether send", "type": "Warning"}], "success": true} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue