

Transactions which just transfer ETH without any call data (and therefore no method) have in Etherscan the method Transfer. We don't know what this value is yet, but we can look for transactions that the contract received with no call data. So when there is no call data we read the value of Storage. Type this function in cell B1 and then copy and paste it for the rest of column B, until the end of the code. We'll put the opcode size in column B, and the location (in hexadecimal) in column A. The next step is to get the correct code locations so we'll be able to understand jumps. You can skip the following steps by making a copy of this already prepared spreadsheet. To do that, one way is to open a Google Spreadsheet and paste the opcodes in column C. To be able to understand jumps, however, you need to know where in the code each opcode is located.

You get a view that is one opcode per line. You can get the opcodes by going to Etherscan for the contract, clicking the Contract tab and then Switch to Opcodes View. You can read about about these topics here. To be able to understand this article you should already know the basics of the EVM, and be at least somewhat familiar with EVM assembler.
#OPCODE 0XED HOW TO#
In this article you learn how to manually reverse engineer and understand a contract from the opcodes, as well as how to interpret the results of a decompiler. There are reverse compilers, but they don't always produce usable results. In this article you learn how to reverse engineer contracts by looking at a contract without source code, 0x2510c039cc3b061d79e564b38836da87e31b342f. Ideally, contracts should have their source code published and verified on Etherscan. There are no secrets on the blockchain, everything that happens is consistent, verifiable, and publicly available.
