From edd0958a712ecc6c877b6be3723405da666e7f46 Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Wed, 15 Feb 2017 03:49:56 -0600 Subject: [PATCH] Added lost-seeds. --- lost-seeds/description.md | 1 + lost-seeds/encrypt | Bin 0 -> 8968 bytes lost-seeds/encrypt.c | 37 +++++++++++++++++++++++++++++++++++++ lost-seeds/flag.in | 1 + lost-seeds/flag.out | 1 + lost-seeds/grader.py | 4 ++++ lost-seeds/problem.yml | 10 ++++++++++ 7 files changed, 54 insertions(+) create mode 100644 lost-seeds/description.md create mode 100755 lost-seeds/encrypt create mode 100644 lost-seeds/encrypt.c create mode 100644 lost-seeds/flag.in create mode 100644 lost-seeds/flag.out create mode 100644 lost-seeds/grader.py create mode 100644 lost-seeds/problem.yml diff --git a/lost-seeds/description.md b/lost-seeds/description.md new file mode 100644 index 0000000..7065e1c --- /dev/null +++ b/lost-seeds/description.md @@ -0,0 +1 @@ +Every time I encrypt a flag with [this program](${encrypt}), it gives me [something different](${flag_out}). \ No newline at end of file diff --git a/lost-seeds/encrypt b/lost-seeds/encrypt new file mode 100755 index 0000000000000000000000000000000000000000..08ff29ec8dcb09e174b99f67619061a43e358be7 GIT binary patch literal 8968 zcmeHMeQaCR6~DIQB>i%n(n8vz)fyC9wzy84hOmxdCvp42k~T||(h1TRC$jvd+0 zrD15KN?X-rg-lFarD+n{vw6zIE1kfgxX>1ky5c?=fpo}oO5{=R9cka8# zv0rSBN!x#%=)H5#@1Aq+x#!(`eecaf!M0s?n@up;#b*RblTN>c%(oEQ1}Q46Q7jXF zu~FP8%7HlX_+<@ov&4K}xn^Fe^c>)2cpB{{&}jF|0`nV97%iB@5fZ2N7Rj%QCjZ%T zQ)DiLM*?I=vASJS1n-pv<{c`I1B$a9iDb7~*=<&K%rB_Gm~;QAZ}fC2e_eJzB$EBa zM2mbca?&O0xMYN>+_+4N;C@+PUdrxsu%kFXEV-3pr)sZMUglK)m@83ijmP>L>bJ(j zweeUYbENi2V?%92y*HioZj=2c|D?NnPq%D|^XP#@{ab^F#sJlKzJB;f`7fsT|KXv( zdv2_$YE~34q1pe_7cy$T<&Jy@u;2u0yS^=O~JiZdRKwkSP zjSV829F8P}uBVMq{~^79@Q@x2#o{7uq~gG%{qbZvBBJ-FVg^_$5(-0?tjQo{=tH3x zSq}^)6AIDA?zYyZW__EtK3Cf2-GNB#^3Q>{S*G0EW&U}btck@|(HA=i4ZVU63wD}dAYWb)+UYKq9J&3QPD4<=t8&U1z88uRe{b-|y9Q`<~h z9?o->>a?-TmD;%T(sGZ`j!zoSna3pfT;+MTH2K1gUqNMI)35Qa+UQ4#WSNE8*A_sV zULu*gI(tFN&yq}CoSl^NGbB^jW}lMsk4dI3%|0&W?~zPhnVpdGw@9Xx&W=jC337A- zvZT7VTC*=7)Utop#{N3j(bYOVDVF(#Ha#^_No@L1g;oVOM1t!ks_Id8T5Hw32WnJn>JJM+2DNLao`?>4!n)%7Kg$00f+IaVz zb}D#T%f9>!eU!75X)QZF(@YBEP(XP%%H!>qpBacoquCeUdt>UK&g=_Q^BcE3o4qjg zn%#z1*_Ns7OW6zBcxFDVZLgP&VwBXv^2PHM&bV_edJ&ua>D#y3oL?!ki>jw5vrZeZ zap(J$9wdOY_Gw2ipF{-tfzNQ@H&Nj4e;@-tiNH@H@CgdMg94}MDcFZeVLW(}%8#IY z_7l`;FWH_`wlZlmzeQ|W=R;_F`uKxL8tjGXae5{K&1`V=&9-q_rJb&N`ab7`Y3GG* zHh642c&zT?$>U#yWX56^IgcF9z3?<9o!CrYJA^&S6j2Mv~8g;U#U%f;F#G> zPL982ckzZbELlCI0W%T;rC)r$KoN5x(1ciy)BX8NgZ{xDiL>%)L+(T7{|>qD|ywsQ>lcGPd6F~IiPn8V?+nM#1Ejql^}q3;oJ(d2SJ zYHxDYJmLttJg3Ta4xyj{$9`u`Bl`=n9V1598 z@_#4Ddb->YRwpp`p+djO9!Ar$*`HCqT-a&p9QRsd{Dp ze`kD-wKlX%eb@bpM-@M;_zA_orucUixBA)L-25re=I*{s!pL}bcb_Lh z;Puse>$jM=XPd9C!Pnrs!|Gy*?7%2&wEK(T_T2e8ztVwoi&0d+EH}Oi^_}8OQT=kk zMH^F51M>_-Q?~3zwL)d>8UexX-fQ zdKGS6hiPAB6N_>3`ms;qOY`}F^26&oL`f&`wuz1XM8|BKS+-xn$3byXIYj?ZQ2fUU@Q*a&ofX zpoIP}CGHYI+!qktBHuz>1Wxf==gTGF9;K7dt^lvLuM-C>^T>w8R>KpoCmfF(IOU(N zD~RM-0sIv_Zp1%m@$*OcCw;!3=ChFpen{V%=T9pCbPqx#&n)0|5|>cHt3~NQt>)vS zs%`8|R5)@Eqs)yTU`K)4sygPLx7(^@)(zPoL2Q=m=XyKC3JV3*z%Xle^m3-ZRZ zKb?^s5PEA@yS|v3uJ&e1OjoEcuI@Fw4jCbJms(h5Ub7Zr*1Oon+Io?W zM2cL%E^1J7!|6ySoTO_71WqlR7qbuwZfQ}MPU?eDL)3cfUTB452|bfuY=JsVS%Ya` zI<4Hu8((>AT-Yq`hT~?VcOTX})u?HXhtg>b8S?_U&_LIbIR1u|Q66dq`4ryt$dD20 z12tikFr2Vt znwkUJwBYg=`k{tqLPN2B#E>+|JrEi*UgTYPF|~#;U5YFW|0P8G04!~}-yh!J^8d&9 ze8g@^H=k~TP=N=_h@>vNUvbHntX;hRnzdLDQOLLF{j#AP-pq=MTkTtbU&R@Q+dpmh zOU=^?;P{;q71$XU(jJI(W@CHaf1gpnMWtR2PJL(l8inr%r!yVf^FDn-9rUc9$eKU; zzXqMj*q-WfxZYn-+WCA51FyCN&P&p4(;l+ZKC150$BdJfG)TU!|2r z@uafn@5lQbw=%pnr)d_f_CK=N^Z$GK|G+K(!Ty}Zp3h;Us{Kz}2D~+YFTx(XU^$1V zDc)D}|AnpkR+;u|ReAP&uB#!ZAgjJr{u6X4ME*>C{_}iD``2MhW0&puoXG#Tzo7b` z8{g0+;&E^q<^1;f|C#gDDUdZ@mYKf|oqT)2`&QLJhxD@eVms#Z7JJ@rcPM*~lRdB< z%hymKjQh{~&R%6`)whm62ZE>gee6(iwy(F~q)Wt{{$I{*%L?_{sTPivtf+8{DE;u< k$+thv@zakJ=wo=c;^F@Ax=6#kSo@Ewi@R@FoLk%fH$FvSYXATM literal 0 HcmV?d00001 diff --git a/lost-seeds/encrypt.c b/lost-seeds/encrypt.c new file mode 100644 index 0000000..93ae825 --- /dev/null +++ b/lost-seeds/encrypt.c @@ -0,0 +1,37 @@ +#include +#include +#include + +#define RAND_MAX ((1U << 31) - 1) +#define MAXLENGTH 80 + +int realrand() { + int n; + FILE *fp = fopen("/dev/urandom", "r"); + fread(&n, 4, 1, fp); + fclose(fp); + return n % MAXLENGTH; +} + +int seed; + +int pseudorand() { + return seed = (seed * 19394489 + 132241) & 0xff; +} + +int main() { + char input[MAXLENGTH]; + FILE *fp = fopen("flag.in", "r"); + fread(&input, 1, MAXLENGTH, fp); + fclose(fp); + + fp = fopen("flag.out", "wb"); + seed = realrand(); + int r; + char c; + for (int i = 0, l = strlen(input); i < l; ++i) { + c = ((char) input[i] ^ (r = pseudorand())) & 0xff; + fwrite(&c, 1, 1, fp); + } + fclose(fp); +} diff --git a/lost-seeds/flag.in b/lost-seeds/flag.in new file mode 100644 index 0000000..39616f5 --- /dev/null +++ b/lost-seeds/flag.in @@ -0,0 +1 @@ +easyctf{r3ndom_numb3rs_m3an_n0thing_wh3n_y0u_can_brute_force!} diff --git a/lost-seeds/flag.out b/lost-seeds/flag.out new file mode 100644 index 0000000..3065eeb --- /dev/null +++ b/lost-seeds/flag.out @@ -0,0 +1 @@ +·2ÿÄEsÆJˆZA!‚÷WN¾¾¤¯lyjêªðìK±Ïs¿Å¢ä°±ì‰W¡XbÏÇ…ÙGð"2 \ No newline at end of file diff --git a/lost-seeds/grader.py b/lost-seeds/grader.py new file mode 100644 index 0000000..ec86113 --- /dev/null +++ b/lost-seeds/grader.py @@ -0,0 +1,4 @@ +def grade(autogen, answer): + if answer.find("r3ndom_numb3rs_m3an_n0thing_wh3n_y0u_can_brute_force!") != -1: + return True, "Correct!" + return False, "Nope, try again." diff --git a/lost-seeds/problem.yml b/lost-seeds/problem.yml new file mode 100644 index 0000000..31e527d --- /dev/null +++ b/lost-seeds/problem.yml @@ -0,0 +1,10 @@ +title: Lost Seed +author: mzhang +category: Cryptography +autogen: false +programming: false +value: 150 +files: + - encrypt + - flag.out + \ No newline at end of file