conkas icon indicating copy to clipboard operation
conkas copied to clipboard

IndexError: pop from empty list

Open gsalzer opened this issue 3 years ago • 0 comments

$ cat demo.hex 
6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630562b9f7146100eb578063115e58491461011857806311ee26cf1461020e578063464cd1c6146102ac57806353427fe91461032a578063726a3c6c1461039e578063853828b6146103c95780639619367d146103e05780639c4d780b1461040b578063b2db919b146104f5578063bcf8ca4114610520578063d87aa6431461054b578063e30bc79a14610575578063e8eb2284146105c0578063ea78160b14610601578063eb576fa914610638575b600080fd5b3480156100f757600080fd5b506101166004803603810190808035906020019092919050505061080c565b005b61020c600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506108d2565b005b34801561021a57600080fd5b50610239600480360381019080803590602001909291905050506109a4565b6040518086815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015610294578082015181840152602081019050610279565b50505050905001965050505050505060405180910390f35b3480156102b857600080fd5b506102e16004803603810190808035906020019092919080359060200190929190505050610ab6565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561033657600080fd5b5061035560048036038101908080359060200190929190505050610ceb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156103aa57600080fd5b506103b3610d84565b6040518082815260200191505060405180910390f35b3480156103d557600080fd5b506103de610d8a565b005b3480156103ec57600080fd5b506103f5610e66565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b5061045660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6c565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561049d578082015181840152602081019050610482565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104df5780820151818401526020810190506104c4565b5050505090500194505050505060405180910390f35b34801561050157600080fd5b5061050a611114565b6040518082815260200191505060405180910390f35b34801561052c57600080fd5b5061053561111a565b6040518082815260200191505060405180910390f35b6105736004803603810190808035906020019092919080359060200190929190505050611127565b005b6105be600480360381019080803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291905050506113cf565b005b3480156105cc57600080fd5b506105eb600480360381019080803590602001909291905050506117b7565b6040518082815260200191505060405180910390f35b34801561060d57600080fd5b5061063660048036038101908080359060200190929190803590602001909291905050506117d4565b005b34801561064457600080fd5b5061064d611de2565b6040518080602001806020018060200180602001806020018060200187810387528d818151815260200191508051906020019060200280838360005b838110156106a4578082015181840152602081019050610689565b5050505090500187810386528c818151815260200191508051906020019060200280838360005b838110156106e65780820151818401526020810190506106cb565b5050505090500187810385528b818151815260200191508051906020019060200280838360005b8381101561072857808201518184015260208101905061070d565b5050505090500187810384528a818151815260200191508051906020019060200280838360005b8381101561076a57808201518184015260208101905061074f565b50505050905001878103835289818151815260200191508051906020019060200280838360005b838110156107ac578082015181840152602081019050610791565b50505050905001878103825288818151815260200191508051906020019060200280838360005b838110156107ee5780820151818401526020810190506107d3565b505050509050019c5050505050505050505050505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108ce573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092f57600080fd5b600090505b855181101561099c5761098f868281518110151561094e57fe5b90602001906020020151868381518110151561096657fe5b90602001906020020151868481518110151561097e57fe5b9060200190602002015186866113cf565b8080600101915050610934565b505050505050565b600080600080606060008060606000806000600560008d815260200190815260200160002060000154141515156109da57600080fd5b600560008c815260200190815260200160002094508460050154935083604051908082528060200260200182016040528015610a255781602001602082028038833980820191505090505b509250600091505b83821015610a7e57610a3f8b836120f7565b905060096000828152602001908152602001600020548383815181101515610a6357fe5b90602001906020020181815250508180600101925050610a2d565b8a610a888c612109565b6003811115610a9357fe5b866002015487600401548699509950995099509950505050505091939590929450565b6000806000806000806000600560008a81526020019081526020016000206000015414151515610ae557600080fd5b600560008981526020019081526020016000206005015487101515610b0957600080fd5b6000935060009250610b1b88886120f7565b9150600090505b600a600083815260200190815260200160002080549050811015610cda5782600b60008481526020019081526020016000206000600a600086815260200190815260200160002084815481101515610b7657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610ccd57600a600083815260200190815260200160002081815481101515610c0257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600b60008381526020019081526020016000206000600a600085815260200190815260200160002083815481101515610c6457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492505b8080600101915050610b22565b838395509550505050509250929050565b600080600080600080600080600560008a81526020019081526020016000206000015414151515610d1b57600080fd5b6000945060009350600092505b6005600089815260200190815260200160002060050154831015610d7457610d508884610ab6565b809250819350505083811115610d67578194508093505b8280600101935050610d28565b8484965096505050505050915091565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610e63573d6000803e3d6000fd5b50565b60025481565b606080600080600080606080600080600560008d81526020019081526020016000206000015414151515610e9f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151515610edb57600080fd5b600560008c8152602001908152602001600020965060009550600094505b8660050154851015610f8157610f0f8b866120f7565b93506000600b600086815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610f745785806001019650505b8480600101955050610ef9565b85604051908082528060200260200182016040528015610fb05781602001602082028038833980820191505090505b50925085604051908082528060200260200182016040528015610fe25781602001602082028038833980820191505090505b50915060009050600094505b8660050154851015611100576110048b866120f7565b93506000600b600086815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156110f35784838281518110151561106f57fe5b9060200190602002018181525050600b600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482828151811015156110dc57fe5b906020019060200201818152505080806001019150505b8480600101955050610fee565b828298509850505050505050509250929050565b60015481565b6000600480549050905090565b600080600254341015151561113b57600080fd5b600060056000868152602001908152602001600020600001541415151561116157600080fd5b6001600381111561116e57fe5b6005600086815260200190815260200160002060030160019054906101000a900460ff16600381111561119d57fe5b1415156111a957600080fd5b6005600085815260200190815260200160002091508160020154421015156111d057600080fd5b6111da84846120f7565b90506000600b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112ad57600a60008281526020019081526020016000203390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b34600b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550346009600083815260200190815260200160002060008282540192505081905550346008600086815260200190815260200160002060008282540192505081905550837f12995386173390662279e0a9cdfe4bb82618f51426dcaaeae62d088a9ced5bd633348642604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a250505050565b60006113d96121fd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143657600080fd5b6000881415151561144657600080fd5b6000600560008a81526020019081526020016000206000015414151561146b57600080fd5b6002841015151561147b57600080fd5b600154341015151561148c57600080fd5b6114a16001543461218e90919063ffffffff16565b92503373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156114e9573d6000803e3d6000fd5b506101006040519081016040528089815260200188815260200187815260200186600281111561151557fe5b81526020016001600381111561152757fe5b81526020013373ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001858152509150338260a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060016004899080600181540180825580915050906001820390600052602060002001600090919290919091505503905081600560008a815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083600281111561163257fe5b021790555060808201518160030160016101000a81548160ff0219169083600381111561165b57fe5b021790555060a08201518160030160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816004015560e08201518160050155905050336006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167f4cd45c96623d78c3cf650a5797744c0968a0ab2d4c36707bb89228572ba95fc9896040518082815260200191505060405180910390a25050505050505050565b600060086000838152602001908152602001600020549050919050565b6000806000806000606060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561184157600080fd5b6000600560008f8152602001908152602001600020600001541415151561186757600080fd5b6001600381111561187457fe5b600560008f815260200190815260200160002060030160019054906101000a900460ff1660038111156118a357fe5b1415156118af57600080fd5b600560008e8152602001908152602001600020600501548c1015156118d357600080fd5b6003600560008f815260200190815260200160002060030160016101000a81548160ff0219169083600381111561190657fe5b02179055508b600560008f815260200190815260200160002060040181905550600860008e8152602001908152602001600020549a5061196460646119566003548e6121a790919063ffffffff16565b6121e290919063ffffffff16565b995061197b6152083a6121a790919063ffffffff16565b98506000975061198b8d8d6120f7565b9650600a6000888152602001908152602001600020805490506040519080825280602002602001820160405280156119d25781602001602082028038833980820191505090505b509550600094505b600a600088815260200190815260200160002080549050851015611ca457600a600088815260200190815260200160002085815481101515611a1857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350611a588a8c61218e90919063ffffffff16565b9250611ae26009600089815260200190815260200160002054611ad4600b60008b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866121a790919063ffffffff16565b6121e290919063ffffffff16565b915088821115611bf357611aff898361218e90919063ffffffff16565b9050808686815181101515611b1057fe5b906020019060200201818152505080880197508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b69573d6000803e3d6000fd5b508c7feef2e5777ea4550ca431e3df84d5178d959b8fa09e42c18624753014a1afa02285848c8542604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a2611c97565b60008686815181101515611c0357fe5b90602001906020020181815250508c7feef2e5777ea4550ca431e3df84d5178d959b8fa09e42c18624753014a1afa02285848c600042604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a25b84806001019550506119da565b8c7f97c35723c934844683507b99278e3c29261b014c757efca7debf40db8069538c8d8d8d8c600a60008e81526020019081526020016000208c426040518088815260200187815260200186815260200185815260200180602001806020018481526020018381038352868181548152602001915080548015611d7c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d32575b5050838103825285818151815260200191508051906020019060200280838360005b83811015611db9578082015181840152602081019050611d9e565b50505050905001995050505050505050505060405180910390a250505050505050505050505050565b6060806060806060806000606080606080606080600080600480549050985088604051908082528060200260200182016040528015611e305781602001602082028038833980820191505090505b50975088604051908082528060200260200182016040528015611e625781602001602082028038833980820191505090505b50965088604051908082528060200260200182016040528015611e945781602001602082028038833980820191505090505b50955088604051908082528060200260200182016040528015611ec65781602001602082028038833980820191505090505b50945088604051908082528060200260200182016040528015611ef85781602001602082028038833980820191505090505b50935088604051908082528060200260200182016040528015611f2a5781602001602082028038833980820191505090505b509250600091505b888210156120d457600482815481101515611f4957fe5b90600052602060002001548883815181101515611f6257fe5b9060200190602002018181525050600560008984815181101515611f8257fe5b9060200190602002015181526020019081526020016000209050611fbc8883815181101515611fad57fe5b90602001906020020151612109565b6003811115611fc757fe5b8783815181101515611fd557fe5b906020019060200201818152505080600201548683815181101515611ff657fe5b90602001906020020181815250508060040154858381518110151561201757fe5b90602001906020020181815250506009600061204b8a8581518110151561203a57fe5b9060200190602002015160006120f7565b815260200190815260200160002054848381518110151561206857fe5b90602001906020020181815250506009600061209c8a8581518110151561208b57fe5b9060200190602002015160016120f7565b81526020019081526020016000205483838151811015156120b957fe5b90602001906020020181815250508180600101925050611f32565b8787878787879e509e509e509e509e509e50505050505050505050909192939495565b600081620f4240840201905092915050565b6000806005600084815260200190815260200160002090508060030160019054906101000a900460ff16600381111561213e57fe5b60038081111561214a57fe5b14156121595760039150612188565b806001015442101561216e5760009150612188565b80600201544210156121835760019150612188565b600291505b50919050565b600082821115151561219c57fe5b818303905092915050565b60008060008414156121bc57600091506121db565b82840290508284828115156121cd57fe5b041415156121d757fe5b8091505b5092915050565b60008082848115156121f057fe5b0490508091505092915050565b610100604051908101604052806000815260200160008152602001600081526020016000600281111561222c57fe5b81526020016000600381111561223e57fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815250905600a165627a7a72305820e509de12a99f138010d7486e4994052b81af6412c1fcd3b61f5b580770cb0f8c0029
$ python conkas.py demo.hex 
Analysing demo.hex...
pop from empty list
Traceback (most recent call last):
  File "conkas.py", line 105, in main
    ssa = Recover(bytecode, edges=[], optimize=True)
  File "/data-hdd/ethereum/tools/conkas/rattle/recover.py", line 768, in __init__
    self.internal = InternalRecover(filedata, edges, optimize, split_functions)
  File "/data-hdd/ethereum/tools/conkas/rattle/recover.py", line 32, in __init__
    self.recover(dispatch)
  File "/data-hdd/ethereum/tools/conkas/rattle/recover.py", line 107, in recover
    self.recover_loop(function)
  File "/data-hdd/ethereum/tools/conkas/rattle/recover.py", line 150, in recover_loop
    insn.append_argument(block.stack_pop())
  File "/data-hdd/ethereum/tools/conkas/rattle/ssa.py", line 474, in stack_pop
    return self.stack.pop()
IndexError: pop from empty list

gsalzer avatar Dec 08 '21 22:12 gsalzer