총 39개
-
4비트 Binary Adder, 2's Complement 4비트 Adder/Subtrater 연산회로 예비보고서2025.01.121. 2의 보수 수 체계 2의 보수 방식을 이용하면 가산기/감산기를 한 회로에 표현할 수 있다. 양수의 경우에는 보통 쓰는 숫자를 2진수로 바꿔서 사용할 수 있다. 그러나 음수의 경우에는 다른 방법으로 표현을 하게 된다. 즉 양수에서 음수로 음수에서 양수로 변환해야 할 때는 2의 보수로 바꾼 다음에 1을 더해 주면 된다. 2의 보수를 쓰는 이유는 디지털의 가/감산을 위한 것이다. 빼기의 경우는 양수를 음수로 바꾸어 더하면 된다. 또한 음수를 뺄 경우에는 음수를 양수로 변화시키면 된다. 2. 부호 크기 2진수 체계 부호 크기 2진수 ...2025.01.12
-
재귀알고리즘의 정의와 단점과 이를 극복하기 위한 방안2025.01.021. 재귀알고리즘의 정의와 작동 방식 재귀알고리즘은 자기 자신을 호출하여 문제를 해결하는 알고리즘으로, 함수 내에서 자기 자신을 다시 호출하면서 작동한다. 이러한 재귀 호출은 함수 호출 스택에 쌓이며, 재귀가 끝나면 스택에서 제거된다. 재귀알고리즘은 간단하게 작성할 수 있으며, 일부 문제에서는 반복문을 사용하는 것보다 더 효율적인 해결 방법을 제공한다. 그러나 재귀 호출이 많아지면 성능 저하 및 스택 오버플로우 등의 문제가 발생할 수 있으므로 적절한 조절이 필요하다. 2. 재귀알고리즘의 단점 재귀알고리즘은 반복문보다 코드의 가독성이...2025.01.02
-
[논리설계] 연습문제 2장 풀이2025.04.281. 1의 보수와 2의 보수 연습문제 2.15에서는 4비트 길이의 1의 보수와 2의 보수를 구하는 문제가 제시되었습니다. 1의 보수는 각 비트를 반대로 바꾸어 구하며, 2의 보수는 1의 보수에 1을 더하여 구합니다. 연습문제 2.16에서는 8비트 길이의 1의 보수와 2의 보수를 구하는 문제가 제시되었습니다. 2. 2의 보수 덧셈을 이용한 산술 연산 연습문제 2.20에서는 2의 보수 덧셈을 이용하여 5비트 길이의 산술 연산을 수행하는 문제가 제시되었습니다. 2의 보수 덧셈을 통해 양수와 음수의 덧셈을 수행할 수 있습니다. 연습문제 2...2025.04.28
-
HackerSchool FTZ 레벨별 상세 풀이 및 보안 공격 기법2025.11.161. 버퍼 오버플로우(Buffer Overflow) 공격 버퍼 오버플로우는 할당된 메모리 크기보다 큰 데이터를 입력하여 인접한 메모리를 덮어쓰는 공격 기법입니다. FTZ 레벨 9-19에서 주로 다루어지며, strcpy, gets, fgets 등의 위험한 함수를 통해 발생합니다. 공격자는 스택의 반환 주소(RET)를 조작하여 임의의 코드를 실행하거나 쉘을 획득할 수 있습니다. 메모리 구조 분석과 쉘 코드 삽입을 통해 권한 상승을 달성합니다. 2. Return-to-Library(RTL) 공격 및 함수 체이닝 RTL 공격은 버퍼 오버플...2025.11.16
-
시스템 프로그램 어택랩(attack lab) 과제 보고서2025.05.081. Phase_1 Phase_1에서는 getbuf 함수에 오버플로우가 일어날 값을 입력하고 touch1의 주소값을 입력하여 touch1이 실행되게 한다. asm.txt 파일을 확인하여 getbuf와 touch1의 어셈블리 코드를 찾아 필요한 값을 입력한다. 2. Phase_2 Phase_2에서는 touch2 함수를 실행하기 위해 rdi 레지스터에 cookie 값을 넣어주고 touch2 함수로 이동하는 코드를 삽입한다. 이를 위해 gdb를 실행하여 getbuf 직전의 rdi 값을 확인하고, buffer.s 파일을 작성하여 필요한 값...2025.05.08
-
C언어를 이용한 스택 구현2025.11.131. 스택(Stack) 자료구조 스택은 후입선출(LIFO, Last In First Out) 원칙을 따르는 선형 자료구조입니다. 본 코드에서는 크기가 10인 문자 배열을 이용하여 스택을 구현했습니다. 스택 포인터(homework)를 통해 현재 스택의 위치를 추적하며, 배열의 끝에서부터 데이터를 삽입하고 제거합니다. 스택은 운영체제의 함수 호출 스택, 괄호 검사, 역폴란드 표기법 계산 등 다양한 분야에서 활용됩니다. 2. Push 연산 Push는 스택에 데이터를 삽입하는 연산입니다. 코드에서 push 함수는 문자를 받아 스택 포인터가...2025.11.13
-
서강대학교 디지털논리회로실험 5주차 - 비교 및 연산 회로2025.01.201. 비교 회로 비교 회로는 XOR gate와 AND gate를 이용해 입력받은 두 2진수를 비교한 후 두 수가 같은지 다른지 결과로 출력해준다. 물론 XOR gate의 수를 늘려서 비교하는 입력의 개수를 (2*XOR)개의 꼴로 늘릴 수 있다. 그리고 두 수 중 어떤 것이 더 큰지 비교한 후 출력해주는 magnitude comparator라는 비교회로도 있다. 2. 가산 회로 Half-adder는 1bit의 두 이진수를 더해 2bit의 출력(0부터 3까지)을 내는 기본적인 adder이다. Full-adder는 1bit의 세 이진수를...2025.01.20
-
소프트웨어 개발 보안 취약점 유형 분석2025.11.181. 소프트웨어 개발 보안 취약점의 7가지 유형 행정안전부에서 제시하는 소프트웨어 개발 보안 취약점은 총 7개 영역 49개 항목으로 구성됩니다. 입력데이터 검증 및 표현, 보안기능, 시간 및 상태, 에러처리, 코드오류, 캡슐화, API 오용이 주요 취약점 유형입니다. 각 유형별로 XSS, SQL삽입, 버퍼 오버플로우, 부적절한 인가, 하드코드된 패스워드, 취약한 암호화 알고리즘 등 구체적인 보안 이슈가 발생할 수 있습니다. 2. 입력데이터 검증 및 표현 소프트웨어 개발자가 프로그램 입력값에 대한 검증을 누락하거나 부적절하게 검증할 ...2025.11.18
-
마이크로프로세서응용 ATmega128 8bit Timer, Counter 보고서2025.01.241. 타이머/카운터 타이머는 시간과 관련된 작업을 수행할 수 있으며, 특정 주파수의 구형파 생성, PWM 신호 생성, 펄스 폭 측정 등에 사용됩니다. 카운터는 입력 펄스를 계수하여 지정된 펄스수까지 계수하면 인터럽트를 발생시키는 기능을 합니다. 많은 응용에서 타이머와 카운터가 유기적으로 상호작용하여 사용됩니다. 2. ATmega128 타이머/카운터 ATmega128에는 4개의 타이머/카운터가 있으며, 타이머/카운터0과 타이머/카운터2는 8비트, 타이머/카운터1과 타이머/카운터3은 16비트입니다. 타이머/카운터0는 RTC 기능을 가지...2025.01.24
-
컴퓨터에서 음수 표현 방법과 해밍코드 작성2025.01.131. 음수 표현 방법 컴퓨터에서는 여러 가지 방법으로 음수를 표현할 수 있습니다. 1의 보수 표현 방법, 2의 보수 표현 방법, 부호-크기 표현 방법 등이 있으며 각각의 장단점이 있습니다. 1의 보수 표현 방법은 비트 반전을 통해 음수를 표현하며 덧셈/뺄셈이 간단하지만 0에 대한 표현이 모호하고 오버플로우 처리가 복잡합니다. 2의 보수 표현 방법은 1을 더해 음수를 표현하며 덧셈/뺄셈이 간단하고 오버플로우 처리가 용이하지만 부호 확인을 위한 추가 연산이 필요합니다. 부호-크기 표현 방법은 가장 직관적이지만 덧셈/뺄셈이 복잡하고 0에...2025.01.13
