Add unchecked assembly, add gitignore, cleanup
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
*.log
|
||||||
|
*.aux
|
||||||
|
*.blg
|
||||||
|
*.gz
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
\relax
|
|
||||||
\bibstyle{plain}
|
|
||||||
\providecommand \oddpage@label [2]{}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Weakness and consequences}{1}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Solidity storage layout}{1}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}The Weakness}{1}{}\protected@file@percent }
|
|
||||||
\citation{securify}
|
|
||||||
\citation{teether}
|
|
||||||
\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces A completely unchecked array write}}{2}{}\protected@file@percent }
|
|
||||||
\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces An incorrectly managed array length}}{2}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Vulnerable contracts in literature}{2}{}\protected@file@percent }
|
|
||||||
\citation{securify}
|
|
||||||
\citation{teether}
|
|
||||||
\citation{fuzzdrivegen}
|
|
||||||
\citation{smartian}
|
|
||||||
\citation{doughoyte}
|
|
||||||
\bibdata{exercise.bib}
|
|
||||||
\bibcite{smartian}{1}
|
|
||||||
\bibcite{doughoyte}{2}
|
|
||||||
\bibcite{teether}{3}
|
|
||||||
\bibcite{fuzzdrivegen}{4}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Code properties and automatic detection}{3}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Exploit sketch}{3}{}\protected@file@percent }
|
|
||||||
\bibcite{securify}{5}
|
|
||||||
\gdef \@abspage@last{4}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
This is BibTeX, Version 0.99d
|
|
||||||
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
|
|
||||||
The top-level auxiliary file: exercises.aux
|
|
||||||
Reallocating 'name_of_file' (item size: 1) to 6 items.
|
|
||||||
The style file: plain.bst
|
|
||||||
Reallocating 'name_of_file' (item size: 1) to 13 items.
|
|
||||||
Database file #1: exercise.bib
|
|
||||||
You've used 5 entries,
|
|
||||||
2118 wiz_defined-function locations,
|
|
||||||
528 strings with 5241 characters,
|
|
||||||
and the built_in function-call counts, 2246 in all, are:
|
|
||||||
= -- 224
|
|
||||||
> -- 114
|
|
||||||
< -- 3
|
|
||||||
+ -- 45
|
|
||||||
- -- 40
|
|
||||||
* -- 142
|
|
||||||
:= -- 346
|
|
||||||
add.period$ -- 18
|
|
||||||
call.type$ -- 5
|
|
||||||
change.case$ -- 35
|
|
||||||
chr.to.int$ -- 0
|
|
||||||
cite$ -- 5
|
|
||||||
duplicate$ -- 98
|
|
||||||
empty$ -- 166
|
|
||||||
format.name$ -- 40
|
|
||||||
if$ -- 502
|
|
||||||
int.to.chr$ -- 0
|
|
||||||
int.to.str$ -- 5
|
|
||||||
missing$ -- 4
|
|
||||||
newline$ -- 28
|
|
||||||
num.names$ -- 10
|
|
||||||
pop$ -- 49
|
|
||||||
preamble$ -- 1
|
|
||||||
purify$ -- 30
|
|
||||||
quote$ -- 0
|
|
||||||
skip$ -- 81
|
|
||||||
stack$ -- 0
|
|
||||||
substring$ -- 107
|
|
||||||
swap$ -- 41
|
|
||||||
text.length$ -- 3
|
|
||||||
text.prefix$ -- 0
|
|
||||||
top$ -- 0
|
|
||||||
type$ -- 20
|
|
||||||
warning$ -- 0
|
|
||||||
while$ -- 16
|
|
||||||
width$ -- 6
|
|
||||||
write$ -- 62
|
|
||||||
@@ -1,650 +0,0 @@
|
|||||||
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (MiKTeX 23.5) (preloaded format=pdflatex 2023.6.4) 27 OCT 2023 11:03
|
|
||||||
entering extended mode
|
|
||||||
restricted \write18 enabled.
|
|
||||||
%&-line parsing enabled.
|
|
||||||
**./exercises.tex
|
|
||||||
(exercises.tex
|
|
||||||
LaTeX2e <2022-11-01> patch level 1
|
|
||||||
L3 programming layer <2023-05-15>
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/base\article.cls
|
|
||||||
Document Class: article 2022/07/02 v1.4n Standard LaTeX document class
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/base\size10.clo
|
|
||||||
File: size10.clo 2022/07/02 v1.4n Standard LaTeX file (size option)
|
|
||||||
)
|
|
||||||
\c@part=\count185
|
|
||||||
\c@section=\count186
|
|
||||||
\c@subsection=\count187
|
|
||||||
\c@subsubsection=\count188
|
|
||||||
\c@paragraph=\count189
|
|
||||||
\c@subparagraph=\count190
|
|
||||||
\c@figure=\count191
|
|
||||||
\c@table=\count192
|
|
||||||
\abovecaptionskip=\skip48
|
|
||||||
\belowcaptionskip=\skip49
|
|
||||||
\bibindent=\dimen140
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/base\latexsym.sty
|
|
||||||
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
|
|
||||||
\symlasy=\mathgroup4
|
|
||||||
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
|
|
||||||
(Font) U/lasy/m/n --> U/lasy/b/n on input line 52.
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/amsfonts\amssymb.sty
|
|
||||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/amsfonts\amsfonts.sty
|
|
||||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
|
||||||
\@emptytoks=\toks16
|
|
||||||
\symAMSa=\mathgroup5
|
|
||||||
\symAMSb=\mathgroup6
|
|
||||||
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
|
|
||||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
|
||||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
|
||||||
)) (d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\epsfig.sty
|
|
||||||
Package: epsfig 2017/06/25 v1.7b (e)psfig emulation (SPQR)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphicx.sty
|
|
||||||
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\keyval.sty
|
|
||||||
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
|
|
||||||
\KV@toks@=\toks17
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphics.sty
|
|
||||||
Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\trig.sty
|
|
||||||
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\graphics.
|
|
||||||
cfg
|
|
||||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
|
||||||
)
|
|
||||||
Package graphics Info: Driver file: pdftex.def on input line 107.
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics-def\pdftex.de
|
|
||||||
f
|
|
||||||
File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex
|
|
||||||
))
|
|
||||||
\Gin@req@height=\dimen141
|
|
||||||
\Gin@req@width=\dimen142
|
|
||||||
)
|
|
||||||
\epsfxsize=\dimen143
|
|
||||||
\epsfysize=\dimen144
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/preprint\fullpage.sty
|
|
||||||
Package: fullpage 1999/02/23 1.1 (PWD)
|
|
||||||
\FP@margin=\skip50
|
|
||||||
) (d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/tools\enumerate.sty
|
|
||||||
Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC)
|
|
||||||
\@enLab=\toks18
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/tools\xspace.sty
|
|
||||||
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/todonotes\todonotes.st
|
|
||||||
y
|
|
||||||
Package: todonotes 2023/01/31 v1.1.6 Todonotes source and documentation.
|
|
||||||
Package: todonotes 2023/01/31
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/base\ifthen.sty
|
|
||||||
Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/xkeyval\xkeyval.sty
|
|
||||||
Package: xkeyval 2022/06/16 v2.9 package option processing (HA)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/xkeyval\xkeyval.tex
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/xkeyval\xkvutils.tex
|
|
||||||
\XKV@toks=\toks19
|
|
||||||
\XKV@tempa@toks=\toks20
|
|
||||||
)
|
|
||||||
\XKV@depth=\count193
|
|
||||||
File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
|
|
||||||
)) (d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/xcolor\xcolor.sty
|
|
||||||
Package: xcolor 2022/06/12 v2.14 LaTeX color extensions (UK)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\color.cfg
|
|
||||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
|
||||||
)
|
|
||||||
Package xcolor Info: Driver file: pdftex.def on input line 227.
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/graphics\mathcolor.ltx
|
|
||||||
)
|
|
||||||
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1353.
|
|
||||||
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1357.
|
|
||||||
Package xcolor Info: Model `RGB' extended on input line 1369.
|
|
||||||
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1371.
|
|
||||||
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1372.
|
|
||||||
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1373.
|
|
||||||
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1374.
|
|
||||||
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1375.
|
|
||||||
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1376.
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/frontendlayer\tikz
|
|
||||||
.sty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/basiclayer\pgf.sty
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/utilities\pgfrcs.s
|
|
||||||
ty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfuti
|
|
||||||
l-common.tex
|
|
||||||
\pgfutil@everybye=\toks21
|
|
||||||
\pgfutil@tempdima=\dimen145
|
|
||||||
\pgfutil@tempdimb=\dimen146
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfuti
|
|
||||||
l-latex.def
|
|
||||||
\pgfutil@abb=\box51
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfrcs
|
|
||||||
.code.tex
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf\pgf.revision.tex
|
|
||||||
)
|
|
||||||
Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
))
|
|
||||||
Package: pgf 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/basiclayer\pgfcore
|
|
||||||
.sty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/systemlayer\pgfsys
|
|
||||||
.sty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgfs
|
|
||||||
ys.code.tex
|
|
||||||
Package: pgfsys 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfkey
|
|
||||||
s.code.tex
|
|
||||||
\pgfkeys@pathtoks=\toks22
|
|
||||||
\pgfkeys@temptoks=\toks23
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfkey
|
|
||||||
slibraryfiltered.code.tex
|
|
||||||
\pgfkeys@tmptoks=\toks24
|
|
||||||
))
|
|
||||||
\pgf@x=\dimen147
|
|
||||||
\pgf@y=\dimen148
|
|
||||||
\pgf@xa=\dimen149
|
|
||||||
\pgf@ya=\dimen150
|
|
||||||
\pgf@xb=\dimen151
|
|
||||||
\pgf@yb=\dimen152
|
|
||||||
\pgf@xc=\dimen153
|
|
||||||
\pgf@yc=\dimen154
|
|
||||||
\pgf@xd=\dimen155
|
|
||||||
\pgf@yd=\dimen156
|
|
||||||
\w@pgf@writea=\write3
|
|
||||||
\r@pgf@reada=\read2
|
|
||||||
\c@pgf@counta=\count194
|
|
||||||
\c@pgf@countb=\count195
|
|
||||||
\c@pgf@countc=\count196
|
|
||||||
\c@pgf@countd=\count197
|
|
||||||
\t@pgf@toka=\toks25
|
|
||||||
\t@pgf@tokb=\toks26
|
|
||||||
\t@pgf@tokc=\toks27
|
|
||||||
\pgf@sys@id@count=\count198
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgf.
|
|
||||||
cfg
|
|
||||||
File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
Driver file for pgf: pgfsys-pdftex.def
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgfs
|
|
||||||
ys-pdftex.def
|
|
||||||
File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgfs
|
|
||||||
ys-common-pdf.def
|
|
||||||
File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgfs
|
|
||||||
yssoftpath.code.tex
|
|
||||||
File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfsyssoftpath@smallbuffer@items=\count199
|
|
||||||
\pgfsyssoftpath@bigbuffer@items=\count266
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/systemlayer\pgfs
|
|
||||||
ysprotocol.code.tex
|
|
||||||
File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
re.code.tex
|
|
||||||
Package: pgfcore 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmath.cod
|
|
||||||
e.tex
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathutil
|
|
||||||
.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathpars
|
|
||||||
er.code.tex
|
|
||||||
\pgfmath@dimen=\dimen157
|
|
||||||
\pgfmath@count=\count267
|
|
||||||
\pgfmath@box=\box52
|
|
||||||
\pgfmath@toks=\toks28
|
|
||||||
\pgfmath@stack@operand=\toks29
|
|
||||||
\pgfmath@stack@operation=\toks30
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.basic.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.trigonometric.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.random.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.comparison.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.base.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.round.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.misc.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfunc
|
|
||||||
tions.integerarithmetics.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathcalc
|
|
||||||
.code.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmathfloa
|
|
||||||
t.code.tex
|
|
||||||
\c@pgfmathroundto@lastzeros=\count268
|
|
||||||
))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfint.code
|
|
||||||
.tex)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
repoints.code.tex
|
|
||||||
File: pgfcorepoints.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@picminx=\dimen158
|
|
||||||
\pgf@picmaxx=\dimen159
|
|
||||||
\pgf@picminy=\dimen160
|
|
||||||
\pgf@picmaxy=\dimen161
|
|
||||||
\pgf@pathminx=\dimen162
|
|
||||||
\pgf@pathmaxx=\dimen163
|
|
||||||
\pgf@pathminy=\dimen164
|
|
||||||
\pgf@pathmaxy=\dimen165
|
|
||||||
\pgf@xx=\dimen166
|
|
||||||
\pgf@xy=\dimen167
|
|
||||||
\pgf@yx=\dimen168
|
|
||||||
\pgf@yy=\dimen169
|
|
||||||
\pgf@zx=\dimen170
|
|
||||||
\pgf@zy=\dimen171
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
repathconstruct.code.tex
|
|
||||||
File: pgfcorepathconstruct.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@path@lastx=\dimen172
|
|
||||||
\pgf@path@lasty=\dimen173
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
repathusage.code.tex
|
|
||||||
File: pgfcorepathusage.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@shorten@end@additional=\dimen174
|
|
||||||
\pgf@shorten@start@additional=\dimen175
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
rescopes.code.tex
|
|
||||||
File: pgfcorescopes.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfpic=\box53
|
|
||||||
\pgf@hbox=\box54
|
|
||||||
\pgf@layerbox@main=\box55
|
|
||||||
\pgf@picture@serial@count=\count269
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
regraphicstate.code.tex
|
|
||||||
File: pgfcoregraphicstate.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgflinewidth=\dimen176
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
retransformations.code.tex
|
|
||||||
File: pgfcoretransformations.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@pt@x=\dimen177
|
|
||||||
\pgf@pt@y=\dimen178
|
|
||||||
\pgf@pt@temp=\dimen179
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
requick.code.tex
|
|
||||||
File: pgfcorequick.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
reobjects.code.tex
|
|
||||||
File: pgfcoreobjects.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
repathprocessing.code.tex
|
|
||||||
File: pgfcorepathprocessing.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
rearrows.code.tex
|
|
||||||
File: pgfcorearrows.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfarrowsep=\dimen180
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
reshade.code.tex
|
|
||||||
File: pgfcoreshade.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@max=\dimen181
|
|
||||||
\pgf@sys@shading@range@num=\count270
|
|
||||||
\pgf@shadingcount=\count271
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
reimage.code.tex
|
|
||||||
File: pgfcoreimage.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
reexternal.code.tex
|
|
||||||
File: pgfcoreexternal.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfexternal@startupbox=\box56
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
relayers.code.tex
|
|
||||||
File: pgfcorelayers.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
retransparency.code.tex
|
|
||||||
File: pgfcoretransparency.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
repatterns.code.tex
|
|
||||||
File: pgfcorepatterns.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/basiclayer\pgfco
|
|
||||||
rerdf.code.tex
|
|
||||||
File: pgfcorerdf.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/modules\pgfmodul
|
|
||||||
eshapes.code.tex
|
|
||||||
File: pgfmoduleshapes.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfnodeparttextbox=\box57
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/modules\pgfmodul
|
|
||||||
eplot.code.tex
|
|
||||||
File: pgfmoduleplot.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/compatibility\pgfc
|
|
||||||
omp-version-0-65.sty
|
|
||||||
Package: pgfcomp-version-0-65 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@nodesepstart=\dimen182
|
|
||||||
\pgf@nodesepend=\dimen183
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/compatibility\pgfc
|
|
||||||
omp-version-1-18.sty
|
|
||||||
Package: pgfcomp-version-1-18 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/utilities\pgffor.s
|
|
||||||
ty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/utilities\pgfkeys.
|
|
||||||
sty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgfkey
|
|
||||||
s.code.tex))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/pgf/math\pgfmath.sty
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/math\pgfmath.cod
|
|
||||||
e.tex))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/utilities\pgffor
|
|
||||||
.code.tex
|
|
||||||
Package: pgffor 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgffor@iter=\dimen184
|
|
||||||
\pgffor@skip=\dimen185
|
|
||||||
\pgffor@stack=\toks31
|
|
||||||
\pgffor@toks=\toks32
|
|
||||||
))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/frontendlayer/ti
|
|
||||||
kz\tikz.code.tex
|
|
||||||
Package: tikz 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/libraries\pgflib
|
|
||||||
raryplothandlers.code.tex
|
|
||||||
File: pgflibraryplothandlers.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgf@plot@mark@count=\count272
|
|
||||||
\pgfplotmarksize=\dimen186
|
|
||||||
)
|
|
||||||
\tikz@lastx=\dimen187
|
|
||||||
\tikz@lasty=\dimen188
|
|
||||||
\tikz@lastxsaved=\dimen189
|
|
||||||
\tikz@lastysaved=\dimen190
|
|
||||||
\tikz@lastmovetox=\dimen191
|
|
||||||
\tikz@lastmovetoy=\dimen192
|
|
||||||
\tikzleveldistance=\dimen193
|
|
||||||
\tikzsiblingdistance=\dimen194
|
|
||||||
\tikz@figbox=\box58
|
|
||||||
\tikz@figbox@bg=\box59
|
|
||||||
\tikz@tempbox=\box60
|
|
||||||
\tikz@tempbox@bg=\box61
|
|
||||||
\tikztreelevel=\count273
|
|
||||||
\tikznumberofchildren=\count274
|
|
||||||
\tikznumberofcurrentchild=\count275
|
|
||||||
\tikz@fig@count=\count276
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/modules\pgfmodul
|
|
||||||
ematrix.code.tex
|
|
||||||
File: pgfmodulematrix.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
\pgfmatrixcurrentrow=\count277
|
|
||||||
\pgfmatrixcurrentcolumn=\count278
|
|
||||||
\pgf@matrix@numberofcolumns=\count279
|
|
||||||
)
|
|
||||||
\tikz@expandcount=\count280
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/frontendlayer/ti
|
|
||||||
kz/libraries\tikzlibrarytopaths.code.tex
|
|
||||||
File: tikzlibrarytopaths.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)))
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/generic/pgf/frontendlayer/ti
|
|
||||||
kz/libraries\tikzlibrarypositioning.code.tex
|
|
||||||
File: tikzlibrarypositioning.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/tools\calc.sty
|
|
||||||
Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ)
|
|
||||||
\calc@Acount=\count281
|
|
||||||
\calc@Bcount=\count282
|
|
||||||
\calc@Adimen=\dimen195
|
|
||||||
\calc@Bdimen=\dimen196
|
|
||||||
\calc@Askip=\skip51
|
|
||||||
\calc@Bskip=\skip52
|
|
||||||
LaTeX Info: Redefining \setlength on input line 80.
|
|
||||||
LaTeX Info: Redefining \addtolength on input line 81.
|
|
||||||
\calc@Ccount=\count283
|
|
||||||
\calc@Cskip=\skip53
|
|
||||||
)
|
|
||||||
\c@@todonotes@numberoftodonotes=\count284
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.sty
|
|
||||||
\lst@mode=\count285
|
|
||||||
\lst@gtempboxa=\box62
|
|
||||||
\lst@token=\toks33
|
|
||||||
\lst@length=\count286
|
|
||||||
\lst@currlwidth=\dimen197
|
|
||||||
\lst@column=\count287
|
|
||||||
\lst@pos=\count288
|
|
||||||
\lst@lostspace=\dimen198
|
|
||||||
\lst@width=\dimen199
|
|
||||||
\lst@newlines=\count289
|
|
||||||
\lst@lineno=\count290
|
|
||||||
\lst@maxwidth=\dimen256
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstmisc.sty
|
|
||||||
File: lstmisc.sty 2023/02/27 1.9 (Carsten Heinz)
|
|
||||||
\c@lstnumber=\count291
|
|
||||||
\lst@skipnumbers=\count292
|
|
||||||
\lst@framebox=\box63
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.cfg
|
|
||||||
File: listings.cfg 2023/02/27 1.9 listings configuration
|
|
||||||
))
|
|
||||||
Package: listings 2023/02/27 1.9 (Carsten Heinz)
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/algorithm2e\algorithm2
|
|
||||||
e.sty
|
|
||||||
Package: algorithm2e 2017/07/18 v5.2 algorithms environments
|
|
||||||
\c@AlgoLine=\count293
|
|
||||||
\algocf@hangindent=\skip54
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/ifoddpage\ifoddpage.st
|
|
||||||
y
|
|
||||||
Package: ifoddpage 2022/10/18 v1.2 Conditionals for odd/even page detection
|
|
||||||
\c@checkoddpage=\count294
|
|
||||||
) (d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/relsize\relsize.sty
|
|
||||||
Package: relsize 2013/03/29 ver 4.1
|
|
||||||
)
|
|
||||||
\skiptotal=\skip55
|
|
||||||
\skiplinenumber=\skip56
|
|
||||||
\skiprule=\skip57
|
|
||||||
\skiphlne=\skip58
|
|
||||||
\skiptext=\skip59
|
|
||||||
\skiplength=\skip60
|
|
||||||
\algomargin=\skip61
|
|
||||||
\skipalgocfslide=\skip62
|
|
||||||
\algowidth=\dimen257
|
|
||||||
\inoutsize=\dimen258
|
|
||||||
\inoutindent=\dimen259
|
|
||||||
\interspacetitleruled=\dimen260
|
|
||||||
\interspacealgoruled=\dimen261
|
|
||||||
\interspacetitleboxruled=\dimen262
|
|
||||||
\algocf@ruledwidth=\skip63
|
|
||||||
\algocf@inoutbox=\box64
|
|
||||||
\algocf@inputbox=\box65
|
|
||||||
\AlCapSkip=\skip64
|
|
||||||
\AlCapHSkip=\skip65
|
|
||||||
\algoskipindent=\skip66
|
|
||||||
\algocf@nlbox=\box66
|
|
||||||
\algocf@hangingbox=\box67
|
|
||||||
\algocf@untilbox=\box68
|
|
||||||
\algocf@skipuntil=\skip67
|
|
||||||
\algocf@capbox=\box69
|
|
||||||
\algocf@lcaptionbox=\skip68
|
|
||||||
\algoheightruledefault=\skip69
|
|
||||||
\algoheightrule=\skip70
|
|
||||||
\algotitleheightruledefault=\skip71
|
|
||||||
\algotitleheightrule=\skip72
|
|
||||||
\c@algocfline=\count295
|
|
||||||
\c@algocfproc=\count296
|
|
||||||
\c@algocf=\count297
|
|
||||||
\algocf@algoframe=\box70
|
|
||||||
\algocf@algobox=\box71
|
|
||||||
) (d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/float\float.sty
|
|
||||||
Package: float 2001/11/08 v1.3d Float enhancements (AL)
|
|
||||||
\c@float@type=\count298
|
|
||||||
\float@exts=\toks34
|
|
||||||
\float@box=\box72
|
|
||||||
\@float@everytoks=\toks35
|
|
||||||
\@floatcapt=\box73
|
|
||||||
)
|
|
||||||
\c@theorem=\count299
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/l3backend\l3backend-pd
|
|
||||||
ftex.def
|
|
||||||
File: l3backend-pdftex.def 2023-04-19 L3 backend support: PDF output (pdfTeX)
|
|
||||||
\l__color_backend_stack_int=\count300
|
|
||||||
\l__pdf_internal_box=\box74
|
|
||||||
) (exercises.aux)
|
|
||||||
\openout1 = `exercises.aux'.
|
|
||||||
|
|
||||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 70.
|
|
||||||
LaTeX Font Info: ... okay on input line 70.
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/context/base/mkii\supp-pdf.m
|
|
||||||
kii
|
|
||||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
|
||||||
\scratchcounter=\count301
|
|
||||||
\scratchdimen=\dimen263
|
|
||||||
\scratchbox=\box75
|
|
||||||
\nofMPsegments=\count302
|
|
||||||
\nofMParguments=\count303
|
|
||||||
\everyMPshowfont=\toks36
|
|
||||||
\MPscratchCnt=\count304
|
|
||||||
\MPscratchDim=\dimen264
|
|
||||||
\MPnumerator=\count305
|
|
||||||
\makeMPintoPDFobject=\count306
|
|
||||||
\everyMPtoPDFconversion=\toks37
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/epstopdf-pkg\epstopdf-
|
|
||||||
base.sty
|
|
||||||
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
|
|
||||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
|
||||||
85.
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/00miktex\epstopdf-sys.
|
|
||||||
cfg
|
|
||||||
File: epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
|
|
||||||
))
|
|
||||||
\c@lstlisting=\count307
|
|
||||||
LaTeX Font Info: Trying to load font information for U+lasy on input line 73
|
|
||||||
.
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/base\ulasy.fd
|
|
||||||
File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
|
|
||||||
)
|
|
||||||
LaTeX Font Info: Trying to load font information for U+msa on input line 73.
|
|
||||||
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/amsfonts\umsa.fd
|
|
||||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
|
||||||
)
|
|
||||||
LaTeX Font Info: Trying to load font information for U+msb on input line 73.
|
|
||||||
|
|
||||||
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/amsfonts\umsb.fd
|
|
||||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
|
||||||
)
|
|
||||||
(d:\Users\Forest\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstlang1.sty
|
|
||||||
File: lstlang1.sty 2023/02/27 1.9 listings language file
|
|
||||||
)
|
|
||||||
Overfull \hbox (15.0pt too wide) detected at line 117
|
|
||||||
[][]
|
|
||||||
[]
|
|
||||||
|
|
||||||
[1
|
|
||||||
|
|
||||||
{C:/Users/Forest/AppData/Local/MiKTeX/fonts/map/pdftex/pdftex.map}]
|
|
||||||
Overfull \hbox (15.0pt too wide) detected at line 156
|
|
||||||
[][]
|
|
||||||
[]
|
|
||||||
|
|
||||||
[2] (exercises.bbl
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.15 \url
|
|
||||||
{https://github.com/Arachnid/uscc/tree/master/submissions-2017/do...
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (1.15688pt too wide) in paragraph at lines 12--17
|
|
||||||
[]\OT1/cmr/m/n/10 doughoyte. Merdeto-ken: It's some hot shit. https://github.
|
|
||||||
com/Arachnid/uscc/tree/master/submissions-
|
|
||||||
[]
|
|
||||||
|
|
||||||
[3]) [4] (exercises.aux) )
|
|
||||||
Here is how much of TeX's memory you used:
|
|
||||||
16580 strings out of 476410
|
|
||||||
323857 string characters out of 5788642
|
|
||||||
2009845 words of memory out of 5000000
|
|
||||||
36658 multiletter control sequences out of 15000+600000
|
|
||||||
521468 words of font info for 72 fonts, out of 8000000 for 9000
|
|
||||||
1141 hyphenation exceptions out of 8191
|
|
||||||
99i,9n,94p,510b,1991s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
|
||||||
<d:/Users/Forest/AppData/Local/Programs/MiKTeX/fonts/
|
|
||||||
type1/public/amsfonts/cm/cmbx10.pfb><d:/Users/Forest/AppData/Local/Programs/MiK
|
|
||||||
TeX/fonts/type1/public/amsfonts/cm/cmbx12.pfb><d:/Users/Forest/AppData/Local/Pr
|
|
||||||
ograms/MiKTeX/fonts/type1/public/amsfonts/cm/cmmi10.pfb><d:/Users/Forest/AppDat
|
|
||||||
a/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr10.pfb><d:/Users/Fore
|
|
||||||
st/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr12.pfb><d:/U
|
|
||||||
sers/Forest/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr17.
|
|
||||||
pfb><d:/Users/Forest/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/
|
|
||||||
cm/cmr5.pfb><d:/Users/Forest/AppData/Local/Programs/MiKTeX/fonts/type1/public/a
|
|
||||||
msfonts/cm/cmr7.pfb><d:/Users/Forest/AppData/Local/Programs/MiKTeX/fonts/type1/
|
|
||||||
public/amsfonts/cm/cmti10.pfb><d:/Users/Forest/AppData/Local/Programs/MiKTeX/fo
|
|
||||||
nts/type1/public/amsfonts/cm/cmtt8.pfb>
|
|
||||||
Output written on exercises.pdf (4 pages, 150280 bytes).
|
|
||||||
PDF statistics:
|
|
||||||
68 PDF objects out of 1000 (max. 8388607)
|
|
||||||
0 named destinations out of 1000 (max. 500000)
|
|
||||||
13 words of extra memory for PDF output out of 10000 (max. 10000000)
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -9,6 +9,7 @@
|
|||||||
\usepackage{xspace}
|
\usepackage{xspace}
|
||||||
\usepackage{todonotes}
|
\usepackage{todonotes}
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
|
\usepackage{url}
|
||||||
\usepackage[ruled,linesnumbered]{algorithm2e} % Enables the writing of pseudo code.
|
\usepackage[ruled,linesnumbered]{algorithm2e} % Enables the writing of pseudo code.
|
||||||
\usepackage{float}% http://ctan.org/pkg/float
|
\usepackage{float}% http://ctan.org/pkg/float
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
|
|
||||||
\date{WT 2023/24}
|
\date{WT 2023/24}
|
||||||
|
|
||||||
\author{\textbf{*** YOUR NAME AND STUDENT ID ***}}
|
\author{\textbf{Ivanov, Ivaylo (11777707) \& Millauer, Peter (01350868)}}
|
||||||
|
|
||||||
\newtheorem{theorem}{Theorem}
|
\newtheorem{theorem}{Theorem}
|
||||||
\newtheorem{lemma}[theorem]{Lemma}
|
\newtheorem{lemma}[theorem]{Lemma}
|
||||||
@@ -92,7 +93,7 @@ Any unchecked array write is potentially dangerous, as the storage-location of a
|
|||||||
|
|
||||||
\medspace
|
\medspace
|
||||||
|
|
||||||
A trivial example of such a vulnerable write operation is shown in Algorithm 1.
|
A trivial example of such a vulnerable write operation is shown in Algorithm~\ref{alg:vuln-write}.
|
||||||
|
|
||||||
\lstset{style=mystyle}
|
\lstset{style=mystyle}
|
||||||
\begin{algorithm}[H]
|
\begin{algorithm}[H]
|
||||||
@@ -114,11 +115,12 @@ A trivial example of such a vulnerable write operation is shown in Algorithm 1.
|
|||||||
}
|
}
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\caption{A completely unchecked array write}
|
\caption{A completely unchecked array write}
|
||||||
|
\label{alg:vuln-write}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
\medspace
|
\medspace
|
||||||
|
|
||||||
In the following example (Algorithm 2) the $pop$ function incorrectly checks for an array $length >= 0$, thereby allowing the $length$ value to underflow when called with an empty array. Once this weakness is triggered, $update$ in Algorithm 2 behaves just like $write$ did in Algorithm 1.
|
In the following example (Algorithm~\ref{alg:pop-incorrect}) the $pop$ function incorrectly checks for an array $length >= 0$, thereby allowing the $length$ value to underflow when called with an empty array. Once this weakness is triggered, $update$ in Algorithm~\ref{alg:pop-incorrect} behaves just like $write$ did in Algorithm~\ref{alg:pop-incorrect}.
|
||||||
|
|
||||||
\medspace
|
\medspace
|
||||||
|
|
||||||
@@ -153,8 +155,68 @@ In the following example (Algorithm 2) the $pop$ function incorrectly checks for
|
|||||||
}
|
}
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\caption{An incorrectly managed array length}
|
\caption{An incorrectly managed array length}
|
||||||
|
\label{alg:pop-incorrect}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
|
Another weakness that allows arbitrary storage access is unchecked assembly code. Assembly is a powerful tool that allows the developers to get as close to the EVM as they can,
|
||||||
|
but it may also be very dangerous when not tested correctly. As per the documentation\footnote{\url{https://docs.soliditylang.org/en/latest/assembly.html}}: \textit{"this [inline assembly]
|
||||||
|
bypasses important safety features and checks of Solidity. You should only use it for tasks that need it, and only if you are confident with using it."}
|
||||||
|
When given access to such lowlevel structures, a programmer can built-in not only weaknesses similar to the ones described previously, but also others, such as overwriting map locations,
|
||||||
|
contract variables etc.
|
||||||
|
|
||||||
|
An example for such a weakness is given in Algorithm~\ref{alg:unchecked-assembly}.
|
||||||
|
|
||||||
|
\medspace
|
||||||
|
|
||||||
|
\lstset{style=mystyle}
|
||||||
|
\begin{algorithm}[H]
|
||||||
|
\begin{lstlisting}[language=Octave]
|
||||||
|
pragma solidity 0.4.25;
|
||||||
|
|
||||||
|
contract MyContract {
|
||||||
|
address private owner;
|
||||||
|
mapping(address => bool) public managers;
|
||||||
|
|
||||||
|
constructor() public {
|
||||||
|
owner = msg.sender;
|
||||||
|
setNextUserRole(msg.sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNextManager(address next) internal {
|
||||||
|
uint256 slot;
|
||||||
|
assembly {
|
||||||
|
slot := managers.slot
|
||||||
|
sstore(slot, next)
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes32 location = keccak256(abi.encode(160, uint256(slot)));
|
||||||
|
assembly {
|
||||||
|
sstore(location, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function registerUser(address user) {
|
||||||
|
require(msg.sender == owner);
|
||||||
|
setNextManager(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cashout() {
|
||||||
|
require(managers[msg.sender]);
|
||||||
|
address payable manager = msg.sender;
|
||||||
|
manager.transfer(address(this).balance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\end{lstlisting}
|
||||||
|
\caption{An unchecked assembly write to mapping}
|
||||||
|
\label{alg:unchecked-assembly}
|
||||||
|
\end{algorithm}
|
||||||
|
|
||||||
|
The contract has a manager mapping, which should be used as a stack.
|
||||||
|
The developer has added the \texttt{setNextManager} function, which should set the top of the stack to the latest user as a manager.
|
||||||
|
The issue is that the function is implemented in such a way, that the stack would not grow, but the first element would always be overwritten - this arises from the fact that the memory slot
|
||||||
|
of the managers mapping does not point to the memory address on the top of the stack, but instead to the base of it.
|
||||||
|
The function is then using this slot address directly, without calculating any offset, overwriting the base of the stack.
|
||||||
|
|
||||||
|
|
||||||
\section{Vulnerable contracts in literature}
|
\section{Vulnerable contracts in literature}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user