From 180549d8447b54e5aaf247d7265fb747b07ce7a8 Mon Sep 17 00:00:00 2001 From: minoplhy Date: Fri, 16 May 2025 13:31:53 +0700 Subject: [PATCH] THCTT24_running_number: init --- THCTT24_running_number/bruteforce.c | 38 +++++++++++++++++ .../original/running_number | Bin 0 -> 16152 bytes .../rewrite/running_number_rewrite.c | 39 ++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 THCTT24_running_number/bruteforce.c create mode 100755 THCTT24_running_number/original/running_number create mode 100644 THCTT24_running_number/rewrite/running_number_rewrite.c diff --git a/THCTT24_running_number/bruteforce.c b/THCTT24_running_number/bruteforce.c new file mode 100644 index 0000000..1d4d55c --- /dev/null +++ b/THCTT24_running_number/bruteforce.c @@ -0,0 +1,38 @@ +#include +#include + +// This is da bruteforce code to get the right random seed + +int main(void) { + int seed; + long sum; + int rand_var; + int i; + int md5_answer; + + for (seed = 0; seed <= 1000000000;seed++) { + srand(seed); + sum = 0; + for (i = 0xa07; i > 0x7e7; i--) { // 2567 2023 + if (i % 3 != 0) { + rand_var = rand(); + sum = sum + rand_var; + } + } + printf("%u\n", seed); + + if (sum == 0x5aad48bfa6) { // 389454282662 + printf("THCTT24{"); + for (i = 10; i < 0x4a; i++) { // 74 + if ((i & 1) == 0) { + rand_var = rand(); + md5_answer = rand_var % 0x10; // 16 + printf("%x", md5_answer); + } + } + puts("}\n"); + printf("Seed -> %d\n", seed); + break; + } + } +} \ No newline at end of file diff --git a/THCTT24_running_number/original/running_number b/THCTT24_running_number/original/running_number new file mode 100755 index 0000000000000000000000000000000000000000..e09140476580055a21e01e61939ae3b9c366d37e GIT binary patch literal 16152 zcmeHOYitzP6~40$;FQN2!oxg@M+r!#try#XF{G6BW6ik2K*3IFlytJ*UE5Rb!`Yn$ zn?hpbP}Q}Nh*YIblt{EclD0`z(nb|Rjk1OmNLmqtR0*k7WuZn{3z|A=TG7_9J!kGY z~wp&(cYIPy$$Gx$Y~*a?+OpBCirFC2);Y3r6lCBJyS{mGh*9QP6Q9Zw{JB zcH`^RPe!)e@l+&3QLS$qr%7aV@-R2!HPT^xM=|zMynaIFp@_T*;!P0GM(hyU2|1sb z6Z|w%KHaE-4U1}h3*qJ+B%T{v$)6EpU^(!<8T~Zz_7QKLYBeL=_ywsJj2!PPz{9+J z(!!^CKgFBvJk(PD87Zw|W8CO&*t{_wt%)1S>_E*xV?#~D=0GMDsJFU+{lXYHrgrV= z622jkLml(6z7#%~R^yhv@Q+`<(YEWo#{G{E46dlZ!fhZ2eXyWE4+)g9{u%h7 zk39b4P?I{utFbEy#Muh=aY+ed5_D<_eKqJx`G0X1{e!dUzXN&|KJJ3Ux>WnmgI;wz zgZvPDO8G0G$JqB2U5^Ze^&TS`jvGf}Lf7F$M)ZssPMdlnY$Qb{9Zp6?f7Z-^(a5AC z+qUVMNI2Oe`qM_z>=8)76Wt(o?QU;w(dz?S?OJ_ci(TKeS?KMZ9eOmDj`bQDGnVe` zXo;tivCeRJ93%H8Qb~%eOV^T)a0os)zh%~+0#~uD%Ok^j3siYLuP}^-c%^rcF1yOO zA4knsNq*zm=U|xlL`2dB-*@;$>;euXUxl6@U4$)MI*a|xzk0V&&`yT(+Q>yP^*K#vz%&}lk6g+> zhfbG5Q^>d!nw|$U=9`V99n)H5Ofzzibai!UV|i5@IX`lF>~__L^CRO*P8r`YHuCO? zYv%m?VWfXwQ$kb2iD~8dvFQ(BO8oR&+S!-i(ti3Vw5e?iO=V4pe-mCd?5#v%Yc`G|LqL$`aWLI$7}Uk z=&%;>;n9LZ_^r(cgR4pAH>Oo2^ZG%2&%(m?zuhgQP(F>n_(I_|c;oo; z2!+=IUM4%Q_4|c1i}{3=gv$sSh$iy1UJ!q1#xfwme*fe(ek(|SngX+af;z_i&XFIl z0p$4qD#+sjv*ijub;{!-KKznv$((0+-L&Lq$o>zKx!)A#zYe^9+#R@q#z7n5BZNJK zhX|R+>qB?7v}{+aTVvfuIH}fc3e*Q`YwEXbpelRcijFfpw8OU|R*A--l=(d3YHUR;6FknPRfwZd!S?w& zWBs=+|E2bNTh_k(!Bt$LJNa2vBUn#1C#l||&mujaO^c7;Ioo8mXqrb00@coDNduM5< zdltP(?YsMP9P}zT>cCT=U+h~ccs#S|CDg+oljyc3UITpvjFVuHJtZCi{Sp`tykExp zrxci8Cx0GS%zBgj2Wh>v^}i`Fp11VuHG{tgJ@(Vx&Ih1ZXWZY0YQ;5vpqe5h?rUOuA2!xf{Wg9HGMRt_r_D* z;kX_(Q|XKz&JKu3D$yU0nXzb~wzLPX)i?BTIvpO=V@WeTD0 z-rL-?Ti@H(b|BQLcQ!Te4gtfxUm(bv0RF>rf80=D`{FhMJr)g{VPPE}Z7nFWTl)}- zG>|}G$Q=XFk>c$GdNh;L`(Wz=ZY^lv3tmwpsb@2>C`5t{4Z7Z)$q?7t=TN-4!49+) zJYk;#CkQt%l-!k2ypO`BTStbcL5M(RFkyzf0nN0;KCZz&idec|1d=H;7U)f81O4e# ze=KbdI#k_R19sOKQBpNEx7Xk(v)uc_nLZJS4kjUlL^CZdhhpiBkxCW`I@r>&co+#( z>yMivV0AM9)j)3wL^C!3-#FU9DP^6UK&+3(S6>twVM$WuK$8rvLxga`h(P$1i7i9t z@FWKy_aXp8Jpm)wdD(sHI?lV`(u8M?ES2Zk@$=%*qnvu zL9AB1fd1vAKBg4ltol#{+LN_1xv-}{_9|k_o zC7I9jO~!IeE)?t|R+-Q9J_B@k$js;YDybUpX89nv1`W zc#N+xk&yGo>OVjQ)~;ID5bF4SlJ{Y{{aI$r1IO>+^E~`|4YoEj-lQ}mGyh{S;Mk+v zmOVeV_tj!@py2g`g?W4)Uj-eyFrW9o$#QZ8-BP+~zqCIvUz6Ytn w9ChroV8izX?hoI8@%rGtJLsZvvy>imHO_I_7pK>y_}lTp24$6t;1b2Z0h`v8$p8QV literal 0 HcmV?d00001 diff --git a/THCTT24_running_number/rewrite/running_number_rewrite.c b/THCTT24_running_number/rewrite/running_number_rewrite.c new file mode 100644 index 0000000..1a55114 --- /dev/null +++ b/THCTT24_running_number/rewrite/running_number_rewrite.c @@ -0,0 +1,39 @@ +#include +#include + +// This is rewrite of 'running_number' with help from ghidra +// while ensuring the integrity of program flows and so on + +int main(void) { + int seed; + int rand_var; + int i; + int md5_answer; + + printf("Time: "); + scanf("%u", &seed); + srand(seed); + + long sum = 0; + + for (i = 0xa07; i > 0x7e7; i--) { // 2567 2023 + if (i % 3 != 0) { + rand_var = rand(); + sum = sum + rand_var; + } + } + + if (sum == 0x5aad48bfa6) { // 389454282662 + printf("THCTT24{"); + for (i = 10; i < 0x4a; i++) { // 74 + if ((i & 1) == 0) { + rand_var = rand(); + md5_answer = rand_var % 0x10; + printf("%x", md5_answer); // 16 + } + } + puts("}"); + } else { + puts("No Flag"); + } +} \ No newline at end of file