From 8180295b9f85cac3704ca94050a2f7610b475b83 Mon Sep 17 00:00:00 2001 From: nitowa Date: Wed, 10 Jan 2024 03:02:54 +0100 Subject: [PATCH] add why-this-works slide --- SemSEpresentation/slides.pdf | Bin 94027 -> 130092 bytes SemSEpresentation/slides.tex | 29 +++++++++++++++------- SemSEreport/{exercises.pdf => report.pdf} | Bin 138172 -> 140278 bytes 3 files changed, 20 insertions(+), 9 deletions(-) rename SemSEreport/{exercises.pdf => report.pdf} (91%) diff --git a/SemSEpresentation/slides.pdf b/SemSEpresentation/slides.pdf index 4b045744ff5115e538ca273997cfe8d4b846e0eb..ba51e6ce1631471799df92781827f245fb464ff7 100644 GIT binary patch delta 52872 zcmd3P1wd8H7B(r3N~auYMBp3_DV@?SDBazSh#L`UK|(-~R#H(wx&)+ET96hb1W7>< z6#jh2ZE=N#ak(_D zP0Vc^tsug}5b*r_0eMTy$JqkH4dIe{07${f-rvN{c zR}d^n5XvhcfH-pV@(3a-f&HhaDi9b%R1^Z?lJR!8a5RVLS(@0pSwN7f0pf|MC@z

?soe)-44|jVTM++z?j15u9 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 delta 16885 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 IuKsRZ0QwIcrT_o{ diff --git a/SemSEpresentation/slides.tex b/SemSEpresentation/slides.tex index a8d7e7c..587412a 100644 --- a/SemSEpresentation/slides.tex +++ b/SemSEpresentation/slides.tex @@ -117,15 +117,17 @@ pragma solidity 0.4.25; contract MyContract { - uint[] private arr; - - constructor() public { - arr = new uint[](0); - } - - function write(unit index, uint value) { - arr[index] = value; - } + address private owner; + uint[] private arr; + + constructor() public { + arr = new uint[](0); + owner = msg.sender; + } + + function write(unit index, uint value) { + arr[index] = value; + } } \end{lstlisting} \end{frame} @@ -192,6 +194,15 @@ contract MyContract { \end{lstlisting} \end{frame} +\begin{frame}[fragile] + \frametitle{Why this works} + A dynamic array in storage slot $p$ stores its data at continuous addresses starting at $keccak(p)$. + + For example, if the variable $x$ is a dynamic array occupying storage slot 3, $x[o]$ can be found at $keccak(0x3)+o$. + + An attacker can use this information to overwrite any storage slot by finding an appropriate offset value. +\end{frame} + \section{Detecting and Exploiting} \subsection[Detecting SWC-124]{Detecting SWC-124} \begin{frame}[fragile] diff --git a/SemSEreport/exercises.pdf b/SemSEreport/report.pdf similarity index 91% rename from SemSEreport/exercises.pdf rename to SemSEreport/report.pdf index 4b0efbcb53c46876487deafed0ef8515921f18d0..77fb77b4f7bd739183b878f47e957803af355494 100644 GIT binary patch delta 11578 zcmc&)+ix6K8D|}(G}~6K)Px4wCWAzkv{Ck)nKM_EhWMJgiIdcJF0B<{y*swIwRfG} zb(*w7qZT0~5C~``zqBv>0i_}jCQ=`eKolgPLgIyY1oWjv&{hou%I{=RR{nK#yM|KQErUtii4IfgVEvriX~94U(FtIMGw&XniFq8M(}+hM)k zGF%W$7R6-PYOFLXVau>}$3$4Im4_Nvj2Vdz*R%{Tur3xcyoqs!smC2XS`6z|T7ZVd z3mKSwvC*7bE?1(^P&6Mc+ir)=x?$;`qgUF;r`qLqXqenl6l37XIC8`gV@esGrW$h` z!;deOZ3OY9Wg8}Og=xnuWte&jG3H4FeCmGBG)!d->mSNBOqL4++`uqNE0YG87iXG{ z%2e1kX29Xdm?5UaD{bRqF_Fs*et6IBYv0`Uqg|0ntZb@GlQ~Rl(_~4C;#SqkeeJT9xX zspunWEv+i;Ougz!X*Th_oLlYf?^l+4?X#c10_|)Wp;k|bf;CpytvVHt%c|#-b*h}` z{Us;cY9>G)#qg0hNfLVG7Mjp7#Pa;ya&vyxnCT*k7zr=eD&geup^FsCorx&mXw-}Y z)o%GA{clP1Dbhs$&&9EJ^l_!X*j0Q79cLV6mXxu*HrhVvr$QNRo6}Ea`BJo9MSVKU zE7<=Qto0F?Nc@9xBL}8ynk5q@1+@`>b%_)u9wt)0f@zc)lx)NC5Tx7u=n--2NW%|o zn!#3BOt-qncWGuHNgX$QB}=a1`(`OHJjcPcXDPISv`ZFRY1qo833#$Vni%Q^X30Yx z!e2zQqE|LepSq)%59Y>`R>_ZLc2n0Rds;5X3F28D ztx8_Ou{^A-9Ab_}=yf}qV3wteC3R2W_|UI=K@aVcyG&wxB)#o$YkSavo=o4>+S1p$ z)oftV#E`3n4+{4VnD*-H>xD-mW&Tk)lk$w*IaE+jBJ&%9q@u}J{B3mG zp9(*{qk7=i_0sv%uN^CW=2xwiDgjrk-3-f19SGy%QD>Y^wMDJGOVYF?C1?C6*B6TsSGPl4P8;xL19g@1P-mvn;xty>f)%jsX|Yt{Bb%TQeY7R6}2(x}$z^9E{ZlnN0Fehj4P zL8GgOBxUj-4m#T`ITqN8b14tb>Z3DpQH<2)=0ZFR&@;mfI1*(v>B^bc(W9|G-G%EB zH>v7cb*i5k2N3|xByGY4)j!Oh!7JddJBQusQEw$ukGhYk;LVA~7_ z^vkl~*B%d|y8#EBDNT-I?$$HvmPqtE$(0@)ugl@AxaGxCGpLB!OeP|N?R?S<=xe>C z?Gf*~)jcGeCn=<3xfqOGpK#4}BEl7q(T50?OVI12By~~Z1f~mg;)$4dJvg3T!(R-I ztTG9RHJynsdzduLHgh5*B?t9%T27Y3@DSJeQxQu zmevabvVoQqLc%sks2y8Uz6UyaK}4p<<^aj)BPL;B&w)>x(xsdY3R(rwr0q?!)3vVx z+$D>6KKYIB+Du1!Hci)xnb54bJ{e6jPwT{2ta;>LRy4PcO;rHRN>Rh#KmycSDH~I7 zJVy7zL%q018-~a6je68!z*AAQ<79XP0a?k4)EQ~ z=t2vk1xyP?J&<2dZG&%AhrEoww%~|#f5kjQkAZwXv6TJ7#5>qLQIM&Q5LhJBB~-3fYfqp zLClG{+T~Czh=r@m3t?T<#4}=1)I~!y>Y-Q`%VD$DsEVd&iMD7z+Yl?_z-4h&JQp?_ z4{MReYT(1>eYjM;WLq!2u;=_a$GCS+CX876o$P&Q_+LZC!sJI zY@)CcsBB!EgxXGt)8Y&(?;O-uUV=ti<$9GBS;6jcT~r!NOJ%K8vKi}Ct91@L)nY!{ zM7^{}y%^55#WGzrd3>z%ODhfRLvs(QzZG7FeOk3EWQc`k7{=zfES?ot`dLI5*eITN z#p%73aixGEj?@)_P`h`$XjTVs24r3#AS8G)KTvItDf|((>X;OI#9c ztLp4x+FVOD?H>Ki^-!M(%0KMbF3h$2+VI|zN z{ZRvth3un&jr3**+ZGz4jklvdLOW1S7i1N{mmXF%$PO~ho@AsTMNS9D7ix2Eb}S7B2?A&s=9td_FrPl90N9b_K5Jiiv~cZ#EmisCnW-nHr%07Z zH~kV8&RKM{n*l1vP4Tyn|2)-4m3~H*nP{if({-A(kjR+Xr*em~%l6KKM25*PKd+ocI3-63>Y0jac@rkif z2su5yA$&thgolI89XG%uR=55z$rMTbK|j0TZCOB<{*kdw@E#W@x>=P95&~|DmDzGr z%r?uFXTmn8!}wa`X(y1XqS{zoEH@*nUpP9#ODko7cskpPd2Ey+2c$8bYML$MEgfzQ z>pJE-FrLc4gNb*d9$KkaQ4&-d%}`J-?nQPdkL(U3``U|d6z<=*r7b6)8ag*R!nXAL z$EHK3#1kJt&JEHaw+&O4qux@|0|q1@mx;{b46tz>nYBXI9o?mPz~{X9V6N5_uno2VeRFA z5|5qjjqS6Tubgu%#>dsE{aD0ribaUqVG(P8k&d=gEb3PTlHFHVuD-HfxUl-Y8-=B{ zH$Pyl5+G;yUANL|uCmN=%Hw*iBM4f%S?K7Awd~ytG zv!zsMqfY5EXj&G?BjPtwZq3Tsf+EWy9^*I~QYu7- z>~iQN3|cJ9{)`H>Pp7=nUVCd`zyg;v?X7W{Ee3L2_5_c;0hfF z0Yr9=IJWPJx#W~%u_shi79mrH2K+?1V9w(?zsQxfFTEkwLb=jd!R`nIK2fXUh=*k} z_#LQ814SH!H?T{Huk@jhn~%F=cpI#Y=hDVJy*q}9dtV)M(+G_-s_IH5Y#IkAYA2?{ z3&!ewcMrIaSkiPIrTjzEJRs!(l&=$w>Il6*c5vj&mb9>08I!C&d-s4H>A{DWt8+95 zb`_nHG!EhrRF*8~;fGTd{gq}oSEP-(qU`>`k`DZD&WQVPWDH5^&!{JTWbS;Qulu4D zAvRbbV3yFbDRXA~q$F2K_nFGJ3EZ-MCN`n-eaem(j@OManZj0BZeg6k^)5`C&^;4M zhwvo3Fpke*-E5yvHB!D$1&}|}DJ7WB5u%R|OVbldoF?^7h^`znQhFwxPG-mA{5;lR zl-S8}WKOM8;-tTa8Q-Im+uVdo_Rs}V<+O^e8ap>1^e=+|XQ{af1KKFa_L99*0wF07=NU)b{SPD4x= zb;88*Y{H7nU|Yc^J$*sm;iT)h*vHL|bzO-^mdqlk4ggNM!4?3mqpnz6;6&xkgg%enilM)bFPP9i zy#Sl-Gu=esNTU=m0Ox^uLIQz&A8;nm46Kw_HShx`^!c%#?dO?^lyCPE`Uv=BaJyN? z9(NP3CL3a^_8ihDDuKyH1Kaa)iW{%bHLzE&^X&MDF>}O&FAk3lE7S8Gh%qdOykY4N o4UH2U#DO&Avv(4CVD&Ipf_s~P5r^kx_1BcFZ;{X5v delta 9430 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 B?CSsk