본문 바로가기

전체 글109

[백준 BOJ] 10845번 큐 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어.. 2020. 11. 4.
[백준 BOJ] 9093번 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어.. 2020. 11. 4.
[백준 BOJ] 10828번 스택 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, .. 2020. 11. 4.
[Reversing] UPX packing & unpacking 이번 실습의 내용은 32bit notepad를 UPX로 패킹하고 이를 디버거를 통해 패킹을 푸는 것이다. 이 실습에서 사용할 패커는 제목에서 알 수 있듯 UPX이다. 우선 UPX를 패킹하기 위해서는 아래 사이트에서 UPX를 다운받아야 한다. https://github.com/upx/upx/releases/tag/v3.96 Release UPX 3.96 · upx/upx Please see the file NEWS for a detailed list of changes. Note: all versions are functionally equivalent, i.e. each version can handle all executable formats, so you only need the file that r.. 2020. 10. 26.
[Wargame_Dreamhack] rev-basic-4 보호되어 있는 글 입니다. 2020. 10. 13.
[Reversing] IAT와 EAT 로딩 과정 IAT 로딩 과정 DLL이란? Dynamic Link Library, 동적링크로 실행파일에서 해당 라이브러리 기능을 사용시에만 참조해 기능을 호출할 수 있는 방법이다. 여러 프로세스에서 공유하며 쓰는 라이브러리로 멀티태스킹 환경에서 각 프로세스마다 라이브러리를 갖고 그 용량을 차지하는 것보다 메모리에 한 번 로딩시켜 프로세스마다 공유시키면 메모리를 더 효율적을 사용할 수 있다. IAT란? Import Address Table, 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하는지에 대해 적은 테이블이다. 이는 Implicit Linking에 대한 메커니즘을 제공하는 역할로 프로그램이 시작할 때 같이 로딩되어 종료할 때 메모리에서 해제된다. IAT는 PE 파일이 어떤 라이브러리를 import하고 있는지에 .. 2020. 10. 13.