Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Function names are not recovered from bytecode for solidity 0.5.4 #47

Description

@wTendera

As in issue title I could not recover the function names of smart contracts written in Solidity 0.5.4
First I tried with my own complex smart contracts, but in all cases only one 'function' - 0x40 was recognised even if smart contract had multiple functions.

I went for a simpler contract

contract SimpleStore {
  function set(uint _value) public {
    value = _value;
  }

  function get() public view returns (uint) {
    return value;
  }
  uint value;
}

Bytecode:

608060405234801561001057600080fd5b5060da8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604f576000357c01000000000000000000000000000000000000000000000000000000009004806360fe47b11460545780636d4ce63c14607f575b600080fd5b607d60048036036020811015606857600080fd5b8101908080359060200190929190505050609b565b005b608560a5565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea165627a7a72305820f8a3447634c2d8fdcd7d04231ce39c3b2399b50b0f60889ca4c53d57fb0cf2b40029

And the result was the same - functions set and get were not recognised.

Screenshot 2019-03-15 at 14 58 44
Screenshot 2019-03-15 at 14 58 36

I'm operating on OSX version of binary ninja.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions