English [sCTF 2016] [CODE 130 – I Can’t Get No Satisfaction] Write Up

Description

I’ve got another task for you involving my little language, Prop!

It consists of the following expressions (denoted e):

  • Boolean constants, written true and false.
  • Boolean variables, written as any alphabetical string.
  • Implies, written e -> e.
  • Equivalence, written e <-> e.
  • Negation, written !e.
  • And, written e && e.
  • Or, written e || e.

You can also parenthesize any expressions or subexpressions (so, you can write (a || b) && c). Here’s another example program:

(a || b) && c && d && (!d || b) || (b -> c) && (d <-> a)

This time, I’ve determined that the attached program is satisfiable, but I want to know the actual values that make this program satisfiable. Can you find me a satisfying model, please? When you’ve found one, submit a GET request to our server. Any missing keys are considered false.

Here’s an example request:

http://problems3.2016q1.sctf.io:11420/?a=true&b=true&c=false

This request would treat a and b as true and c and the rest of the variables as false. Thus, it’s only necessary to assign the true keys to the value true.

 

 

Continue reading [sCTF 2016] [CODE 130 – I Can’t Get No Satisfaction] Write Up