Skip to content

Instantly share code, notes, and snippets.

@learnerLj
Created May 29, 2022 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save learnerLj/79f80b10a3388b1728593b9a03acda3e to your computer and use it in GitHub Desktop.
Save learnerLj/79f80b10a3388b1728593b9a03acda3e to your computer and use it in GitHub Desktop.
字节码分析中静态类型堆栈跟踪举例
#### TRACE ####
PUSH1 pc=00000000 gas=10000000000 cost=3
PUSH1 pc=00000002 gas=9999999997 cost=3
Stack:
00000000 0x80
MSTORE pc=00000004 gas=9999999994 cost=12
Stack:
00000000 0x40
00000001 0x80
CALLVALUE pc=00000005 gas=9999999982 cost=2
DUP1 pc=00000006 gas=9999999980 cost=3
Stack:
00000000 0x0
ISZERO pc=00000007 gas=9999999977 cost=3
Stack:
00000000 0x0
00000001 0x0
PUSH1 pc=00000008 gas=9999999974 cost=3
Stack:
00000000 0x1
00000001 0x0
JUMPI pc=00000010 gas=9999999971 cost=10
Stack:
00000000 0xf
00000001 0x1
00000002 0x0
JUMPDEST pc=00000015 gas=9999999961 cost=1
Stack:
00000000 0x0
POP pc=00000016 gas=9999999960 cost=2
Stack:
00000000 0x0
PUSH2 pc=00000017 gas=9999999958 cost=3
PUSH1 pc=00000020 gas=9999999955 cost=3
Stack:
00000000 0x90a
DUP2 pc=00000022 gas=9999999952 cost=3
Stack:
00000000 0x0
00000001 0x90a
SWAP1 pc=00000023 gas=9999999949 cost=3
Stack:
00000000 0x90a
00000001 0x0
00000002 0x90a
SSTORE pc=00000024 gas=9999999946 cost=22100
Stack:
00000000 0x0
00000001 0x90a
00000002 0x90a
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
POP pc=00000025 gas=9999977846 cost=2
Stack:
00000000 0x90a
PUSH1 pc=00000026 gas=9999977844 cost=3
PUSH1 pc=00000028 gas=9999977841 cost=3
Stack:
00000000 0x7
PUSH1 pc=00000030 gas=9999977838 cost=3
Stack:
00000000 0x1
00000001 0x7
PUSH2 pc=00000032 gas=9999977835 cost=3
Stack:
00000000 0x0
00000001 0x1
00000002 0x7
EXP pc=00000035 gas=9999977832 cost=10
Stack:
00000000 0x100
00000001 0x0
00000002 0x1
00000003 0x7
DUP2 pc=00000036 gas=9999977822 cost=3
Stack:
00000000 0x1
00000001 0x1
00000002 0x7
SLOAD pc=00000037 gas=9999977819 cost=2100
Stack:
00000000 0x1
00000001 0x1
00000002 0x1
00000003 0x7
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 0000000000000000000000000000000000000000000000000000000000000000
DUP2 pc=00000038 gas=9999975719 cost=3
Stack:
00000000 0x0
00000001 0x1
00000002 0x1
00000003 0x7
PUSH16 pc=00000039 gas=9999975716 cost=3
Stack:
00000000 0x1
00000001 0x0
00000002 0x1
00000003 0x1
00000004 0x7
MUL pc=00000056 gas=9999975713 cost=5
Stack:
00000000 0xffffffffffffffffffffffffffffffff
00000001 0x1
00000002 0x0
00000003 0x1
00000004 0x1
00000005 0x7
NOT pc=00000057 gas=9999975708 cost=3
Stack:
00000000 0xffffffffffffffffffffffffffffffff
00000001 0x0
00000002 0x1
00000003 0x1
00000004 0x7
AND pc=00000058 gas=9999975705 cost=3
Stack:
00000000 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000
00000001 0x0
00000002 0x1
00000003 0x1
00000004 0x7
SWAP1 pc=00000059 gas=9999975702 cost=3
Stack:
00000000 0x0
00000001 0x1
00000002 0x1
00000003 0x7
DUP4 pc=00000060 gas=9999975699 cost=3
Stack:
00000000 0x1
00000001 0x0
00000002 0x1
00000003 0x7
PUSH16 pc=00000061 gas=9999975696 cost=3
Stack:
00000000 0x7
00000001 0x1
00000002 0x0
00000003 0x1
00000004 0x7
AND pc=00000078 gas=9999975693 cost=3
Stack:
00000000 0xffffffffffffffffffffffffffffffff
00000001 0x7
00000002 0x1
00000003 0x0
00000004 0x1
00000005 0x7
MUL pc=00000079 gas=9999975690 cost=5
Stack:
00000000 0x7
00000001 0x1
00000002 0x0
00000003 0x1
00000004 0x7
OR pc=00000080 gas=9999975685 cost=3
Stack:
00000000 0x7
00000001 0x0
00000002 0x1
00000003 0x7
SWAP1 pc=00000081 gas=9999975682 cost=3
Stack:
00000000 0x7
00000001 0x1
00000002 0x7
SSTORE pc=00000082 gas=9999975679 cost=20000
Stack:
00000000 0x1
00000001 0x7
00000002 0x7
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 0000000000000000000000000000000000000000000000000000000000000007
POP pc=00000083 gas=9999955679 cost=2
Stack:
00000000 0x7
PUSH32 pc=00000084 gas=9999955677 cost=3
PUSH1 pc=00000117 gas=9999955674 cost=3
Stack:
00000000 0x3130313100000000000000000000000000000000000000000000000000000000
PUSH1 pc=00000119 gas=9999955671 cost=3
Stack:
00000000 0x1
00000001 0x3130313100000000000000000000000000000000000000000000000000000000
PUSH2 pc=00000121 gas=9999955668 cost=3
Stack:
00000000 0x10
00000001 0x1
00000002 0x3130313100000000000000000000000000000000000000000000000000000000
EXP pc=00000124 gas=9999955665 cost=60
Stack:
00000000 0x100
00000001 0x10
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
DUP2 pc=00000125 gas=9999955605 cost=3
Stack:
00000000 0x100000000000000000000000000000000
00000001 0x1
00000002 0x3130313100000000000000000000000000000000000000000000000000000000
SLOAD pc=00000126 gas=9999955602 cost=100
Stack:
00000000 0x1
00000001 0x100000000000000000000000000000000
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 0000000000000000000000000000000000000000000000000000000000000007
DUP2 pc=00000127 gas=9999955502 cost=3
Stack:
00000000 0x7
00000001 0x100000000000000000000000000000000
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
PUSH8 pc=00000128 gas=9999955499 cost=3
Stack:
00000000 0x100000000000000000000000000000000
00000001 0x7
00000002 0x100000000000000000000000000000000
00000003 0x1
00000004 0x3130313100000000000000000000000000000000000000000000000000000000
MUL pc=00000137 gas=9999955496 cost=5
Stack:
00000000 0xffffffffffffffff
00000001 0x100000000000000000000000000000000
00000002 0x7
00000003 0x100000000000000000000000000000000
00000004 0x1
00000005 0x3130313100000000000000000000000000000000000000000000000000000000
NOT pc=00000138 gas=9999955491 cost=3
Stack:
00000000 0xffffffffffffffff00000000000000000000000000000000
00000001 0x7
00000002 0x100000000000000000000000000000000
00000003 0x1
00000004 0x3130313100000000000000000000000000000000000000000000000000000000
AND pc=00000139 gas=9999955488 cost=3
Stack:
00000000 0xffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff
00000001 0x7
00000002 0x100000000000000000000000000000000
00000003 0x1
00000004 0x3130313100000000000000000000000000000000000000000000000000000000
SWAP1 pc=00000140 gas=9999955485 cost=3
Stack:
00000000 0x7
00000001 0x100000000000000000000000000000000
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
DUP4 pc=00000141 gas=9999955482 cost=3
Stack:
00000000 0x100000000000000000000000000000000
00000001 0x7
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
PUSH1 pc=00000142 gas=9999955479 cost=3
Stack:
00000000 0x3130313100000000000000000000000000000000000000000000000000000000
00000001 0x100000000000000000000000000000000
00000002 0x7
00000003 0x1
00000004 0x3130313100000000000000000000000000000000000000000000000000000000
SHR pc=00000144 gas=9999955476 cost=3
Stack:
00000000 0xc0
00000001 0x3130313100000000000000000000000000000000000000000000000000000000
00000002 0x100000000000000000000000000000000
00000003 0x7
00000004 0x1
00000005 0x3130313100000000000000000000000000000000000000000000000000000000
MUL pc=00000145 gas=9999955473 cost=5
Stack:
00000000 0x3130313100000000
00000001 0x100000000000000000000000000000000
00000002 0x7
00000003 0x1
00000004 0x3130313100000000000000000000000000000000000000000000000000000000
OR pc=00000146 gas=9999955468 cost=3
Stack:
00000000 0x313031310000000000000000000000000000000000000000
00000001 0x7
00000002 0x1
00000003 0x3130313100000000000000000000000000000000000000000000000000000000
SWAP1 pc=00000147 gas=9999955465 cost=3
Stack:
00000000 0x313031310000000000000000000000000000000000000007
00000001 0x1
00000002 0x3130313100000000000000000000000000000000000000000000000000000000
SSTORE pc=00000148 gas=9999955462 cost=100
Stack:
00000000 0x1
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x3130313100000000000000000000000000000000000000000000000000000000
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 0000000000000000313031310000000000000000000000000000000000000007
POP pc=00000149 gas=9999955362 cost=2
Stack:
00000000 0x3130313100000000000000000000000000000000000000000000000000000000
PUSH1 pc=00000150 gas=9999955360 cost=3
PUSH1 pc=00000152 gas=9999955357 cost=3
Stack:
00000000 0xf
PUSH1 pc=00000154 gas=9999955354 cost=3
Stack:
00000000 0x1
00000001 0xf
PUSH2 pc=00000156 gas=9999955351 cost=3
Stack:
00000000 0x18
00000001 0x1
00000002 0xf
EXP pc=00000159 gas=9999955348 cost=60
Stack:
00000000 0x100
00000001 0x18
00000002 0x1
00000003 0xf
DUP2 pc=00000160 gas=9999955288 cost=3
Stack:
00000000 0x1000000000000000000000000000000000000000000000000
00000001 0x1
00000002 0xf
SLOAD pc=00000161 gas=9999955285 cost=100
Stack:
00000000 0x1
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x1
00000003 0xf
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 0000000000000000313031310000000000000000000000000000000000000007
DUP2 pc=00000162 gas=9999955185 cost=3
Stack:
00000000 0x313031310000000000000000000000000000000000000007
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x1
00000003 0xf
PUSH8 pc=00000163 gas=9999955182 cost=3
Stack:
00000000 0x1000000000000000000000000000000000000000000000000
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x1000000000000000000000000000000000000000000000000
00000003 0x1
00000004 0xf
MUL pc=00000172 gas=9999955179 cost=5
Stack:
00000000 0xffffffffffffffff
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x313031310000000000000000000000000000000000000007
00000003 0x1000000000000000000000000000000000000000000000000
00000004 0x1
00000005 0xf
NOT pc=00000173 gas=9999955174 cost=3
Stack:
00000000 0xffffffffffffffff000000000000000000000000000000000000000000000000
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x1000000000000000000000000000000000000000000000000
00000003 0x1
00000004 0xf
AND pc=00000174 gas=9999955171 cost=3
Stack:
00000000 0xffffffffffffffffffffffffffffffffffffffffffffffff
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x1000000000000000000000000000000000000000000000000
00000003 0x1
00000004 0xf
SWAP1 pc=00000175 gas=9999955168 cost=3
Stack:
00000000 0x313031310000000000000000000000000000000000000007
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x1
00000003 0xf
DUP4 pc=00000176 gas=9999955165 cost=3
Stack:
00000000 0x1000000000000000000000000000000000000000000000000
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x1
00000003 0xf
PUSH1 pc=00000177 gas=9999955162 cost=3
Stack:
00000000 0xf
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x313031310000000000000000000000000000000000000007
00000003 0x1
00000004 0xf
SIGNEXTEND pc=00000179 gas=9999955159 cost=5
Stack:
00000000 0x7
00000001 0xf
00000002 0x1000000000000000000000000000000000000000000000000
00000003 0x313031310000000000000000000000000000000000000007
00000004 0x1
00000005 0xf
PUSH8 pc=00000180 gas=9999955154 cost=3
Stack:
00000000 0xf
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x313031310000000000000000000000000000000000000007
00000003 0x1
00000004 0xf
AND pc=00000189 gas=9999955151 cost=3
Stack:
00000000 0xffffffffffffffff
00000001 0xf
00000002 0x1000000000000000000000000000000000000000000000000
00000003 0x313031310000000000000000000000000000000000000007
00000004 0x1
00000005 0xf
MUL pc=00000190 gas=9999955148 cost=5
Stack:
00000000 0xf
00000001 0x1000000000000000000000000000000000000000000000000
00000002 0x313031310000000000000000000000000000000000000007
00000003 0x1
00000004 0xf
OR pc=00000191 gas=9999955143 cost=3
Stack:
00000000 0xf000000000000000000000000000000000000000000000000
00000001 0x313031310000000000000000000000000000000000000007
00000002 0x1
00000003 0xf
SWAP1 pc=00000192 gas=9999955140 cost=3
Stack:
00000000 0xf313031310000000000000000000000000000000000000007
00000001 0x1
00000002 0xf
SSTORE pc=00000193 gas=9999955137 cost=100
Stack:
00000000 0x1
00000001 0xf313031310000000000000000000000000000000000000007
00000002 0xf
Storage:
0000000000000000000000000000000000000000000000000000000000000000: 000000000000000000000000000000000000000000000000000000000000090a
0000000000000000000000000000000000000000000000000000000000000001: 000000000000000f313031310000000000000000000000000000000000000007
POP pc=00000194 gas=9999955037 cost=2
Stack:
00000000 0xf
PUSH1 pc=00000195 gas=9999955035 cost=3
DUP1 pc=00000197 gas=9999955032 cost=3
Stack:
00000000 0x3f
PUSH2 pc=00000198 gas=9999955029 cost=3
Stack:
00000000 0x3f
00000001 0x3f
PUSH1 pc=00000201 gas=9999955026 cost=3
Stack:
00000000 0xd0
00000001 0x3f
00000002 0x3f
CODECOPY pc=00000203 gas=9999955023 cost=9
Stack:
00000000 0x0
00000001 0xd0
00000002 0x3f
00000003 0x3f
PUSH1 pc=00000204 gas=9999955014 cost=3
Stack:
00000000 0x3f
RETURN pc=00000206 gas=9999955011 cost=0
Stack:
00000000 0x0
00000001 0x3f
#### LOGS ####
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment