Time's Up, For the Last Time!
Problem
Solution
$ ./times-up <<< '\n' Challenge: (((((657265146) + (-1923909696)) + ((1986179264) + (-812103564))) + (((-1027939860) + (1392242872)) + ((-110733888) + (-310598076)))) + ((((((720637104) + (-2047273348)) - (708133016)) - (-890325910)) - ((443949727) - (1909030317))) + (((-301107515) - (551799480)) - ((1489532366) + (1475102980))))) Setting alarm... Solution? Nope!$ ./times-up-one-last-time <<< '\n' Challenge: (((((-1012045115) - (1810430134)) % ((2010494120) + (-1086432160))) - (((-403630830) % (596322993)) ^ ((-1348370583) * (2088348720)))) | ((((1271304372) + (1954174030)) x ((-376311670) o (-407368940))) & (((-1044627813) - (1022249799)) | ((-1080733304) | (1758513321))))) Setting alarm... Alarm clockundefined8 FUN_00100eae(void) { FUN_00100ad0(); printf("Challenge: "); FUN_00100e96(); putchar(10); fflush(stdout); puts("Setting alarm..."); fflush(stdout); ualarm(10,0); printf("Solution? "); __isoc99_scanf(&DAT_001011b8,&DAT_00304770); if (DAT_00304770 == DAT_00304778) { puts("Congrats! Here is the flag!"); system("/bin/cat flag.txt"); } else { puts("Nope!"); } return 0; }ulong FUN_00100ca2(undefined param_1,ulong param_2,ulong param_3) { switch(param_1) { case 0x25: // % if (param_3 != 0) { param_2 = (long)param_2 % param_3; } break; case 0x26: // & param_2 = param_2 & param_3; break; default: /* WARNING: Subroutine does not return */ exit(1); case 0x2a: // * param_2 = param_2 * param_3; break; case 0x2b: // + param_2 = param_3 + param_2; break; case 0x2d: // - param_2 = param_2 - param_3; break; case 0x2f: // / if (param_3 != 0) { param_2 = (long)param_2 / (long)param_3; } break; case 0x5e: // ^ param_2 = param_2 ^ param_3; break; case 0x66: // f break; case 0x6f: // o param_2 = param_3; break; case 0x72: // r param_2 = param_3; break; case 0x74: // t break; case 0x78: // x param_2 = param_3; break; case 0x7c: // | param_2 = param_2 | param_3; } return param_2; }#include <stdio.h> #include <stdlib.h> #include <signal.h> int main() { signal(SIGALRM, SIG_IGN); system("/problems/time-s-up--for-the-last-time-_5_b2df97b433878873b16cff47337769d6/times-up-one-last-time"); }L = Infix(lambda x,y: x) R = Infix(lambda x,y: y)challenge = challenge.replace("f", "|L|") challenge = challenge.replace("o", "|R|") challenge = challenge.replace("r", "|R|") challenge = challenge.replace("t", "|L|") challenge = challenge.replace("x", "|R|")[+] Connecting to 2019shell1.picoctf.com on port 22: Done [*] <username>@2019shell1.picoctf.com: Distro Ubuntu 18.04 OS: linux Arch: amd64 Version: 4.15.0 ASLR: Enabled [+] Opening new channel: 'pwd': Done [+] Receiving all data: Done (14B) [*] Closed SSH channel with 2019shell1.picoctf.com [*] Working directory: '/tmp/tmp.Ss2j8QPOBM' [+] Opening new channel: 'ln -s /home/<username>/* .': Done [+] Receiving all data: Done (0B) [*] Closed SSH channel with 2019shell1.picoctf.com [+] Starting remote process '/home/<username>/no_sigalrm' on 2019shell1.picoctf.com: pid 1091939 Answer: -2606491616 [+] picoCTF{And now you can hack time! #0e9c1f05}
Flag
Last updated