From de1572b9b514f777c3ddc44b563d9e02af9be523 Mon Sep 17 00:00:00 2001 From: Richard L Ford Date: Sun, 17 Jul 2022 19:22:15 -0400 Subject: [PATCH] Add more tests of calls through Procedure Linkage Table (PLT) These test binaries contain endbr32 and endbr64 instructions, so this PR should be committed after RetDec has moved to Capstone 4.0.2 (https://github.com/avast/retdec/pull/1086). --- features/plt/rand/call-rand.c | 4 ++++ .../plt/rand/call-rand.x64.clang.opt0.exe | Bin 0 -> 16536 bytes .../plt/rand/call-rand.x64.clang.opt2.exe | Bin 0 -> 16536 bytes features/plt/rand/call-rand.x64.gcc.opt0.exe | Bin 0 -> 16704 bytes features/plt/rand/call-rand.x64.gcc.opt2.exe | Bin 0 -> 16704 bytes .../plt/rand/call-rand.x86.clang.opt0.exe | Bin 0 -> 15392 bytes .../plt/rand/call-rand.x86.clang.opt2.exe | Bin 0 -> 15392 bytes features/plt/rand/call-rand.x86.gcc.opt0.exe | Bin 0 -> 15592 bytes features/plt/rand/call-rand.x86.gcc.opt2.exe | Bin 0 -> 15552 bytes features/plt/rand/test.py | 19 ++++++++++++++++++ 10 files changed, 23 insertions(+) create mode 100644 features/plt/rand/call-rand.c create mode 100755 features/plt/rand/call-rand.x64.clang.opt0.exe create mode 100755 features/plt/rand/call-rand.x64.clang.opt2.exe create mode 100755 features/plt/rand/call-rand.x64.gcc.opt0.exe create mode 100755 features/plt/rand/call-rand.x64.gcc.opt2.exe create mode 100755 features/plt/rand/call-rand.x86.clang.opt0.exe create mode 100755 features/plt/rand/call-rand.x86.clang.opt2.exe create mode 100755 features/plt/rand/call-rand.x86.gcc.opt0.exe create mode 100755 features/plt/rand/call-rand.x86.gcc.opt2.exe create mode 100644 features/plt/rand/test.py diff --git a/features/plt/rand/call-rand.c b/features/plt/rand/call-rand.c new file mode 100644 index 0000000..b183e2a --- /dev/null +++ b/features/plt/rand/call-rand.c @@ -0,0 +1,4 @@ +#include +int main(int argc, char ** argv) { + return rand(); +} diff --git a/features/plt/rand/call-rand.x64.clang.opt0.exe b/features/plt/rand/call-rand.x64.clang.opt0.exe new file mode 100755 index 0000000000000000000000000000000000000000..b0a0f5b9bc57bb1fe9d2f740e2f59442b910b788 GIT binary patch literal 16536 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 b3#MO6MUJZ4%2_4oGHb_QH|SVJK7jvEy?EI5 literal 0 HcmV?d00001 diff --git a/features/plt/rand/call-rand.x64.gcc.opt0.exe b/features/plt/rand/call-rand.x64.gcc.opt0.exe new file mode 100755 index 0000000000000000000000000000000000000000..258bcbc1cdf2c9fc8e1bd6f23e29e7a778a8665c GIT binary patch literal 16704 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 Utx}wmd)uq+mc|yBflCzs23>GHh5!Hn literal 0 HcmV?d00001 diff --git a/features/plt/rand/call-rand.x64.gcc.opt2.exe b/features/plt/rand/call-rand.x64.gcc.opt2.exe new file mode 100755 index 0000000000000000000000000000000000000000..fbf49d73a3bb694c7ab3d989eb5697c316d91c2e GIT binary patch literal 16704 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 literal 0 HcmV?d00001 diff --git a/features/plt/rand/call-rand.x86.clang.opt0.exe b/features/plt/rand/call-rand.x86.clang.opt0.exe new file mode 100755 index 0000000000000000000000000000000000000000..5d9508014edea9ec12e4bf394511889a22d49244 GIT binary patch literal 15392 zcmeHOZ)_CD6`%V<*p};YP$x0LNw&pArm`2?bxBfMmBVKPi4BGTNfm|Ve0TPpa(~>r zy~IYSg8sF5v>{s(m=GvSN}vFVc9HPx-~w$R zrNTmxmiX-^lw+`iOavwQ%SYEk|3lOuHN(~dV!Ih1p+pS!7;L1=&`Gp22I)BbkE89R z6m*id4ZY`N4O0jMb(6jW8%f)D!VdMO#Q5yiF4+C;yM{ax%cEMczE~JuU(9wC3+4K_ zRjXLt%GLxMvE8zLk9gkP`-9{!P8~>JnwWecAMRaqTlE6VGd^R`hl&2|FB4^ANIPZv z`;+z~*KLuQo5G|Y^M3Q-J0~go(?*|SLcZIluY`QZ4f-CPTL47tWYk!S4kyS7N{|8s0t5mC0t5mC0t5mC0t5mC0t5mCzMu$P zS$@~24>jhExnH4!hi9+gwRoy=&2`-)C!Mf+zH!=kbk^T>_ghiCDYU7Gb1xIEH5Q$(6vFSBQvkIpt|q!$7y|)tw6h1@0onBG2fJD zF1wI;V|MzLduSY)(UO;;%6HIn@{gzH?mqReaOnJntB(0Q8SA2RyNs0>Qo$~&V9q^4 z$6@;p$@)cI)oaY<(StKf7&Ej`v)}*H&vffYW@Py0slM3MpmDa3{{;|}eOD(3Kc0K} zGuLgLZhp+ydk>F2bC1LA@N4~+5D)Lg)r(DDnmX9pHn$!{rhjRm`spK4{H~il^=a5y z*Y%0l+vz7nV?O$@>$J8@I{I6BHO_?4t^2Rk-)WqVJ-W|+Ot*C!{gn7mwYPE*P?lrm zNz`+A_H2g`H;oT=AV>iM0RjO60RjO60RjO60RjO60RjO60RsPj2t?4N5WkqNj%>US zGQUx`U3T4r;E#as27eBmZ}`VQblqd%%^$h$Joug9C@lD0nkjT(mk1p+LaSrZ=ueT) zZ_zEFYyWUv`HeWW)L>pGh;_(s%aBb_3iKlUXcKXxKOTEv`7$RuF1~li#&2}Detj#l z<$oE_h8%tR;>MBiKs@$zBpFZqB$|vjHJ0?o%~HHI8E;F)+f(t*!MM34-jtk;Cz5C4 zvE!4ea$M4cX3J?eo2oMMm2oMMm2oMMm2oMMm2oMMm z_~IcjhVRasKzL>4>#T^ei`aLL4a1`S*{HD!ocqXElY_XQ*?`V>Tk52F>=XazXKtnG z$5Dgtluv>4UAhPS%is@yxbKgeh=b)?0dX9Ad`P8z6v_DWYf z(9bQ{B|;KgWmj+J#8~O-?VT7aoro*!mA+K!8k>kjPY7bC>|c_0VytvtDI{P|7LivB zf`>^&jSSJbpmT%>c~*ivBI0Cn%#cUKax!&J0W2b~vN|`w?1;SD_}|AdT_3Ns8f)Yc zdBxROQ@Z+3i@s(NZzORqyRzR#CdU+6M2#fTgfXV{W-`H@2}>=(I`cVHGIPV>;^SFrI`2Zdgt3*FI?-klZ7~v&w-fz@degd5L7WEMN z`y2%?vHly|^CE05FKB;-m*4+oD7rr0G2FMH@d^R2bI^5tw7*S%4}ac$A3^6mNfrWr zd?=WB25_XUM0?@)3nWF5=#e=@` zv_Aq}ClkUb^k%O;E5gmff$l#$(eU{bjbqSH0N)&Bw)gkordK|J>v011V`#tZ58AgA z`hMvA{~Y~aXFTA+{_$+apQ(F^@!y7iy+5nOCFtC@vj#SnzwEQKy)Uu6H-1)zF`6<} zr{>g0My!m;=Bl~TLe0rlZKq^sij{J%h7%pxialDa45y2B)~Qr$cDg<;GL_O;G3Vs6 z*1a3Lzxnx2_DG>zu+!CQdcw|?o$7=bsisRgJ6kW6CQ!tu+3<80xn|PEVh4|#pk21z zzbiS|XZLMS**3IA&Nz>f`u_Ih;I`hy7I{1cSvYuO_igneY)$PF_LhMio09|fj{g3K z`gYs9lbZ+n7*!r>$<*qy+0e)D+hC369D6KdJNbI~acg+|b92Xpoy(@3G>l~G>wrE###Y!gam+DJI-?Sljqf7Xoaj3?_;J7AnnKb^&I?68oZ?awnFE#f$_MenTKB+WHqzm z*#nuB0)2vY2mLr7H$gBV-{`j;d0h9I<=aki%)*G^AC;F?J% z`ZDbUaos~d&g*YN;H<6dWj={Jvg5LW^8<2v9f1U{T~Joc4( z14O^gAh|w3W7%%{alNMfo`KA^%JO{f!KoFxPV{4X8l?TWp6G;Mr?jXa#-{JHAnnKJ z^nMuLV1}3I$HaM4`*D70$HQ99_R=h4QF`9;;+hOkss$Ft{r%dIseM@kJ3Z^FdpeoAg-F|$9deqPElPKvZPG? zFCbz}KhEzw&v_X#uP+mQc-=U^vwigAI_cVfi1)6~PtO0H*S~AQv{3H{K0nU;P4Htq zI_b7vK?d_#FXzh^_-Pw`*(Ro|Aj&YyM8957CZkQ0yk?$lKl~C1$aj!-5Mw7m9HXpL ar?DRNTUUlmE%M#M?^nbF!gmaK!SCP8{cvjl literal 0 HcmV?d00001 diff --git a/features/plt/rand/call-rand.x86.clang.opt2.exe b/features/plt/rand/call-rand.x86.clang.opt2.exe new file mode 100755 index 0000000000000000000000000000000000000000..971fba6200626886b31ca4d5de8bd929e4703132 GIT binary patch literal 15392 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 ewo>*ch<>vseHNWAkk?e}-u1n9c} literal 0 HcmV?d00001 diff --git a/features/plt/rand/call-rand.x86.gcc.opt2.exe b/features/plt/rand/call-rand.x86.gcc.opt2.exe new file mode 100755 index 0000000000000000000000000000000000000000..4455da051a9d1f84f39b56a1168525ba032e150d GIT binary patch literal 15552 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 literal 0 HcmV?d00001 diff --git a/features/plt/rand/test.py b/features/plt/rand/test.py new file mode 100644 index 0000000..0e4877a --- /dev/null +++ b/features/plt/rand/test.py @@ -0,0 +1,19 @@ +from regression_tests import * + +class CommonTest(Test): + """Output of these tests is nearly the same.""" + settings = TestSettings( + input=[ + 'call-rand.x64.clang.opt0.exe', + 'call-rand.x64.clang.opt2.exe', + 'call-rand.x64.gcc.opt0.exe', + 'call-rand.x64.gcc.opt2.exe', + 'call-rand.x86.clang.opt0.exe', + 'call-rand.x86.clang.opt2.exe', + 'call-rand.x86.gcc.opt0.exe', + 'call-rand.x86.gcc.opt2.exe' + ]) + + def test_main_calls_rand(self): + main = self.out_c.funcs['main'] + assert main.calls('rand')