diff --git a/rev/vault_door_4/VaultDoor4.java b/rev/vault_door_4/VaultDoor4.java new file mode 100644 index 0000000..e834254 --- /dev/null +++ b/rev/vault_door_4/VaultDoor4.java @@ -0,0 +1,45 @@ +import java.util.*; + +class VaultDoor4 { + public static void main(String args[]) { + VaultDoor4 vaultDoor = new VaultDoor4(); + Scanner scanner = new Scanner(System.in); + System.out.print("Enter vault password: "); + String userInput = scanner.next(); + String input = userInput.substring("picoCTF{".length(),userInput.length()-1); + if (vaultDoor.checkPassword(input)) { + System.out.println("Access granted."); + } else { + System.out.println("Access denied!"); + } + } + + // I made myself dizzy converting all of these numbers into different bases, + // so I just *know* that this vault will be impenetrable. This will make Dr. + // Evil like me better than all of the other minions--especially Minion + // #5620--I just know it! + // + // .:::. .:::. + // :::::::.::::::: + // ::::::::::::::: + // ':::::::::::::' + // ':::::::::' + // ':::::' + // ':' + // -Minion #7781 + public boolean checkPassword(String password) { + byte[] passBytes = password.getBytes(); + byte[] myBytes = { + 106 , 85 , 53 , 116 , 95 , 52 , 95 , 98 , + 0x55, 0x6e, 0x43, 0x68, 0x5f, 0x30, 0x66, 0x5f, + 0142, 0131, 0164, 063 , 0163, 0137, 061 , 063 , + 'd' , 'f' , '6' , '1' , '8' , 'a' , '2' , '3' , + }; + for (int i=0; i<32; i++) { + if (passBytes[i] != myBytes[i]) { + return false; + } + } + return true; + } +} \ No newline at end of file diff --git a/rev/vault_door_4/solve.py b/rev/vault_door_4/solve.py new file mode 100755 index 0000000..544d23a --- /dev/null +++ b/rev/vault_door_4/solve.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +# byte[] myBytes = { +# 106 , 85 , 53 , 116 , 95 , 52 , 95 , 98 , +# 0x55, 0x6e, 0x43, 0x68, 0x5f, 0x30, 0x66, 0x5f, +# 0142, 0131, 0164, 063 , 0163, 0137, 061 , 063 , +# 'd' , 'f' , '6' , '1' , '8' , 'a' , '2' , '3' , +# }; + +my_bytes = [ + 106 , 85 , 53 , 116 , 95 , 52 , 95 , 98 , + 0x55, 0x6e, 0x43, 0x68, 0x5f, 0x30, 0x66, 0x5f, + 0o142, 0o131, 0o164, 0o63 , 0o163, 0o137, 0o61 , 0o63 , + 'd' , 'f' , '6' , '1' , '8' , 'a' , '2' , '3' , +] + +def main(): + print('picoCTF{', end='') + for x in my_bytes: + if type(x) == int: + print(chr(x), end='') + else: + print(x, end='') + print('}') + +if __name__ == '__main__': + main() +