전체 글(140)
-
백준 [ALGORITHM] - 잃어버린 괄호 (1541)
잃어버린 괄호라는 문제이다. 해당 코드를 짜기 전에 가장 오래 생각 했던 부분은 어디에 괄호를 넣어야 가장 작은 수가 나오는지? 이다. 예를 들어, 10-20+30-40이 주어졌다고 생각해보자. 여기서 양수인 숫자가 -로 변했을 때, 수가 더 작아지게 된다. 따라서 음수 뒤에 양수가 온다면 괄호에 포함시켜주면 된다는 것이다. 따라서 원래라면 10-20+30-40 = -20이 나와야 하지만. 10-(20+30)-40 = -80이 나오게 된다. 참고로 문자열을 입력 받고 난 후 계산은 파이썬의 eval함수를 이용하였는데, 여기서 나는 굳이 괄호를 사용하지 않고, 배열을 이용하여 -사이에 있는 값을 더해주고, 새로운 배열에 옮겨서 10 - 50 - 40 을 eval에 넣고 돌렸다. import re def p..
2023.04.01 -
[CTF] LINE CTF 2023 - old pal
This challenge is written in perl. #!/usr/bin/perl use strict; use warnings; use CGI; use URI::Escape; $SIG{__WARN__} = \&warn; sub warn { print("Hacker? :("); exit(1); } my $q = CGI->new; print "Content-Type: text/html\n\n"; my $pw = uri_unescape(scalar $q->param("password")); if ($pw eq '') { print "Hello :)"; exit(); } if (length($pw) >= 20) { print "Too long :("; die(); } if ($pw =~ /[^0-9a-..
2023.03.26 -
[CTF] LINE CTF 2023 - baby simple go url
When start line ctf, I confirmed the chall at first. If you click the CURL button, then curl request and http request are sending and showing your IP address. Well then, check the code package main import ( "errors" "fmt" "io/ioutil" "log" "net/http" "os" "strings" "github.com/gin-gonic/gin" ) func redirectChecker(req *http.Request, via []*http.Request) error { reqIp := strings.Split(via[len(via..
2023.03.26 -
[CTF] B01ler_ctf - voidciphr
주어지는 것은 cipher.txt인데 내용은 PGTXD OD VXTMG XAT XFQG GA YMXAP RGXVTMAYQ X VXOOM XA XTLMVXF AGPGVMGNQ BGV RMQ FMASQ PG LXQGAVD X PVMG GB UXVTMAXFQ X PVMG PGG GB MAQMYAMBMUXAP ZGFMPMUMXAQ OGNYRP XAT ZXMT BGV OD X VMUR XAT UGVVNZP XAYFG UXAXTMXA OXASMAY UGVZGVXPMGA MABGVL NQ XFF GB RGJ GNV UGNAPVD AGJ VMQSQ TDMAY GB QPXVKXPMGA X VNLGV PRXPQ LD MAMPMXF PRGNYRP XQ M QJMPUR GBB LD VXTMG X VNLGV GV ZGQQMOF..
2023.03.20 -
[STUDY] 어셈블리어 - 6
1. 과제 목표 > 어셈블리어 - 5 에서 만든 함수를 이용하여 구구단 곱셈 2단 출력하기 조건 > 개행으로 한 글자씩 나눠서 출력해야한다. 2. 결과 익숙해져서 생각만큼 크게 어려워지진 않았지만 아직 미숙한 부분이 존재하는 듯. section .text global _start _start: call mult mov rax, 60 xor rdi, rdi syscall mult: push rbp mov rbp, rsp sub rsp, 16 mov rbx, 1 .inmult: mov rdi, 2 mov qword[rbp-8], rbx imul rdi, rbx call func mov qword[rbp-16], rdi mov rbx, qword[rbp-8] mov rax, 1 mov rdi, 1 mov rs..
2023.02.28 -
[STUDY] 어셈블리어 - 5
1. 과제 목표 > 8바이트 정수를 stdout을 이용해 10진수 정수로 출력하기 참고 코드 > 2. 결과 section .text global _start _start: mov rdi, 3654154 call func mov rax, 60 xor rdi, rdi syscall func: push rbp mov rbp, rsp sub rsp, 8 mov qword [rbp-8], rdi mov rsi, rdi ; for putChar('-'); cmp qword [rbp-8], 0 jae .check ; putchar('-'); neg qword [rbp-8] .check: cmp qword [rbp-8], 10 jb final xor rdx, rdx ; rdx is remain value mov rax..
2023.02.28