목록분류 전체보기 (273)
촉촉한초코칩
문제위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.입력첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.출력입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.참고 : https://velog.io/@hwsa1004/%EB%B0%B1%EC%A4%80-2292%EB%B2%88-%EB%B2%8C%EC%A7%9..
코드key == $key) { $ret = ["code" => true, "flag" => $FLAG]; } else { $ret = ["code" => false]; } die(json_encode($ret)); } function gen_key(){ $key = uniqid("welcome to wargame.kr!_", true); $key = sha1($key); return $key; }?> view-source key 값이 맞아야 flag가 출력된다. 공격php의 Type Confusion에 대해 알아보았다. → 문자열끼리 동일한..
sql 취약점을 이용해서 id에 admin' or 1=1#를 넣어 계정을 생성했다. 제대로 admin으로 로그인해야 할 것 같다.'를 쓰는 건 맞는 것 같다. 문제에서 create문으로 id 크기는 32까지 받고 있다. 만약 32를 넘어가면 자른다. 이걸 이용해서 풀어본다..? → "admin + 공백문자 27글자 + 아무 문자"로 뚫을 수 있다. https://jwcs.tistory.com/29회원가입할 때 id 최대길이를 늘려주어야 한다. (로그인할 때도 마찬가지) 위 방법이 안 먹혀서 그냥 maxlength를 삭제해서 계정을 생성하고 로그인을 해주었더니 flag가 떴다. 나는 32글자가 제한이길래 계정 생성할 때 32글자 이상으로 적었었는데 생성이 됐던 걸 보면 입력이 안됐던 것 같다. (제대로..
코드 // Name: chall.c// Compile Option: gcc chall.c -o chall -fno-stack-protector#include #include #include #include #include #include #define FLAG_SIZE 0x45void alarm_handler() { puts("TIME OUT"); exit(1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler);}int main(void) { int fd; char *flag; initialize();..
문제10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35입력첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.출력첫째 줄에 10진법 수 N을 B진법으로 출력한다. 이 계산을 반대로 하면 되지 않을까..? result += (j) * pow(n, tmp) → result = result − j * (n^tmp)그런데 생각해보면 우리는 j를 미리 알고있는게 아니기 때문에 이 방법을 쓸 수 없음 → result와 n을 나눈 나머지가 정답임 ..
문제B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35입력첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.출력첫째 줄에 B진법 수 N을 10진법으로 출력한다. (vs code에서 c언어 실행하려고 했는데 안됨.. mingw 설치했는데도 실행이 안돼서 terminal에서 gcc 명령어로 실행 파일 만듦..) 코드 설명AAAA 16이 입력되었다면, A는 10진수로 11이니까 11 * 16^0 + 11 * 16^1..