전체 381

[BOJ/C++] 백준 10773 제로

문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..

BOJ(백준) 2022.10.02

[BOJ/C++] 백준 2587 - 대표값2

문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면 10 30 30 40 60 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 입력 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연..

BOJ(백준) 2022.09.25

[forensic-proof] 안티포렌식

http://forensic-proof.com/archives/4689 창과 방패, 안티포렌식과 안티안티포렌식 (Anti-Forensics vs. Anti-Anti Forensics) | FORENSIC-PROOF forensic-proof.com 정의 디지털포렌식 기술에 대응하여 자신에게 불리하게 작용할 가능성이 있는 증거물을 훼손하거나 차단하는 일련의 행위 목적 - 탐지를 회피하거나 정보 수집을 방해 - 조사관의 분석 시간을 증가 - 디지털포렌식 도구가 동작하지 못하도록 하거나 오류를 발생 - 범죄자의 사용 흔적이나 도구 실행 흔적을 발견하지 못하도록 로깅을 차단/우회하거나 삭제 - 법정 보고서나 증언으로서 가치가 없도록 증거를 훼손시킴 안티포렌식 기법 조사관 입장에서는 조사를 방해하지만 사용자 입장..

Digital Forensics 2022.08.13

[CTF-d] 사진 속에서 빨간색이 좀 이상해 보입니까?

사진을 보면 평범하고, 빨간색이 이상하다는 힌트에 스테가노그래피같긴 했는데 감이 잘 안와서 서치했다.. 무슨 툴을 써야되나 고민했는데 평범하게 이미지 스테가노그래피를 쓰니 플래그가 보였다. https://incoherency.co.uk/image-steganography/#unhide Stegsolve 툴로도 확인이 가능한데 데스크탑에 자바를 안 깔았더니 안열려서 생략.. 더보기 tjctf{0dd5_4nd_3v3n5}

[CTF-d] 제 친구의 개가 바다에서...

hidden.jpg라는 이미지가 올라와 있어 다운받았다. 이미지를 보면 너무 밝고 잘 안 보이기 때문에 스테가노그래피 문제같다. 파일 정보에서도 딱히 정보를 찾지는 못했기 때문에 스테가노그래피 도구를 사용했다. Forensically https://29a.ch/photo-forensics/#forensic-magnifier Image Steganography https://incoherency.co.uk/image-steganography/#unhide 이 두 개가 많이 쓰이는 것 같다. 두 개 다 사용해봤는데 글자가 완벽하게 보이진 않았다. 아래는 Forensically를 이용해 문자를 찾은 사진 Forensically에서 Principal Component Analysis 부분을 위 사진처럼 맞추니 ..

[Python] 소수 출력하기 (리스트 사용)

n까지의 소수를 출력하는 코드 1. 리스트에 소수를 저장하는 방법이다. list = [] n = 1000 for i in range(2, n+1): for j in range(2, i+1): if j==i: list.append(i) if i%j == 0: break print(list) i를 i-1의 수로 나누었을 때 나머지가 없으면 반복문을 종료하고, 나누어 떨어지지 않으면 리스트에 수를 추가한다. [출력 결과] 2. 리스트에 n까지의 수를 저장하고 소수의 배수를 제거하는 방법이다. list = [] n = 1000 for i in range(2, n+1): list.append(i) for i in range(2, n+1): for j in range(2, n+1): s = i*j if s > n:..

Python 2022.06.13

POXX 2021 - pepero day Write-up

2021년 Power of XX에서 제작했던 pepero day의 write-up입니다. 처음 화면입니다. 양 쪽에 있는 빼빼로를 클릭하면 힌트를 얻을 수 있습니다. [힌트] Today is Pepero Day! input에 넣을 값에 대한 힌트였습니다. input에 빼뺴로 데이의 날짜인 11/11을 입력하면 base64로 인코딩 된 문자열이 나오게 됩니다. base64로 인코딩 된 문자열 : cDFlMVBlUjVEYTI= *잘못된 값을 입력하면 다음 문구를 띄웁니다. base64 디코더에 해당 문구를 넣어보겠습니다. 그럼 아래와 같은 문자열이 나오게 됩니다. p1e1PeR5Da2 이 문자열을 다시 input에 넣어 보겠습니다. 플래그가 출력됩니다. POX{P4p4r0_1n_Th9_W0RLD}

POXX 2021 - Find admin's Password Write-up

2021년 Power of XX에서 제작했던 Find admin's Password 문제의 Write-up입니다. 문제 설명 admin의 비밀번호를 찾아보세요! Find admin's Password는 admin 계정의 비밀번호를 찾는 Blind SQL 문제입니다. 처음 화면입니다. id와 pw에 guest/guest를 입력하면 hello guest를 띄웁니다. SQL 인젝션을 시도하기 위해 참인 쿼리를 보내면 특수문자 몇 개가 필터링되어 있다는 것을 알 수 있습니다. 필터링 되는 문자를 입력하면 filtering이라는 문구를 띄웁니다. 필터링 되는 문자는 소스 코드에 힌트로 나와있습니다. 이제 필터링되는 문자를 우회해서 admin의 패스워드를 알아내기 위해 blind sql 인젝션을 시도하시면 됩니다...

리눅스 쉘 구현 참고

redirect 구현 https://sosal.kr/1114?category=227313 일반 실행, 후면 실행, 순차실행, 리다이렉션 구현 https://mhwan.tistory.com/42 https://github.com/mhwan/Myshell/tree/master/myshells/source 파이프, 리다이렉션 https://pracon.tistory.com/121 그 외 쉘 구현 https://github.com/Reevid/shell/blob/master/shell.c https://stackoverflow.com/questions/39341331/linux-shell-implementation-in-c-redirected-file-includes-the-prompt https://gist...

리눅스(Linux) 2022.05.25