문제
풀이
파일 형식을 보니 java인 것을 확인
bintext를 사용하여 코드를 확인
if {vaultDoor.checkPassword[input]} {
이 조건문을 통해 비밀번호를 확인
그렇다면 checkPassword를 확인해보자.
if (password.lenght() != 32)
를 통해 32가 아니면 false를 return 해주므로
password의 길이는 32
밑에서
new char[32]
를 통해 32의 배열을 선언
4개의 for문을 통해 password를 조합
String s = new String[buffer];
return s.equals("jU5t_a_sna_3lpm18gb41_u_4_mfr340");
를 통해 해당 문자열의 배열에서 조합한다는 것을 예측 가능
이를 하나씩 구할 수 없으니 c언어를 통해 구현
#include <stdio.h>
int main() {
char buffer[50] = "jU5t_a_sna_3lpm18gb41_u_4_mfr340";
char s[50] = {0};
int i;
for (i = 0; i < 8; i++) {
s[i] = buffer[i];
}
for (; i < 16; i++) {
int j = 23 - i;
s[i] = buffer[j];
}
for (; i < 32; i += 2) {
int j = 46 - i;
s[i] = buffer[j];
}
for (i = 31; i >= 17; i -= 2) {
s[i] = buffer[i];
}
printf("%s", s);
}
picoCTF{picoCTF{jU5t_a_s1mpl3_an4gr4m_4_u_1fb380}
'Wargame & CTF > picoCTF' 카테고리의 다른 글
[picoCTF][Web]Insp3ct0r 문제 풀이 (0) | 2020.12.23 |
---|---|
[picoCTF][Reverse Engineering]asm1 문제 풀이 (0) | 2020.12.17 |
[picoCTF][Reverse Engineering]vault-door-4 문제 풀이 (0) | 2020.12.17 |
[picoCTF][Reverse Engineering]vault-door-1 문제 풀이 (0) | 2020.12.17 |
[picoCTF][Reverse Engineering]vault-door-training 문제 풀이 (0) | 2020.12.17 |