智能合约安全系列文章反汇编·下篇
2021-01-04 11:19:00 Author: xz.aliyun.com(查看原文) 阅读量:179 收藏

前言

上篇我们详细分析了智能合约反汇编后的代码内容,包括多个反汇编指令的含义,数据在栈中的存储方式,并通过上下文关联关系梳理代码逻辑。本篇我们将继续分析上篇遗留的反汇编代码,通过上篇学习我们已对反汇编指令在栈和内存存储的有了一定了解,该篇我们将重点来分析反汇编指令表示的代码逻辑。

反汇编内容

合约源代码

pragma solidity ^0.4.24;

contract Tee {

    uint256 private c;

    function a() public returns (uint256) { self(2); }

    function b() public { c++; }

    function self(uint n) internal returns (uint256) {

        if (n <= 1) { return 1; }

        return n * self(n - 1);
    }
}

上篇文章中,我们对下图中蓝色框中的内容进行了详细分析,本篇我们分析红色框中的内容以及之后的反汇编指令。


文章来源: http://xz.aliyun.com/t/8704
如有侵权请联系:admin#unsafe.sh