기계 : 사람이 원하는 작업을 수행하기 위해 동력을 제어하고 관리하는 장치 프로그램 : 사람이 원하는 동작을 기계가 수행할 수 있도록 구체적으로 실행 가능한 명령들을 순서대로 작성한 것 컴퓨터 프로그램 : 컴퓨터를 동작시킬 수 있는 프로그램-사람이 원하는 작업을 할 수 있도록 명령들을 모아 둔 것 프로그래밍 : 프로그램을 작성하는 작업 코딩 : 컴퓨터가 수행 할 수 있는 암호화 된 코드를 작성하는 것. 프로그램의 좁은 의미와 넓은 의미 좁은 의미사람이 작업을 수행할 수 있도록 명령어들의 순서를 설계, 작성, 테스트 하는 것.프로그램 설계, 작성, 테스트 넓은 의미원하는 작업을 수행하지 못한 경우 오류를 찾는 디버깅, 프로그램 개선, 보완 등의 작업을 포함하는 것.프로그램 디버깅, 개선 및 보안 언어 : ..
얼마 전, 워너크라이라는 새로운 랜섬웨어로 인해 세계가 난리가 났다. 그 안에 대한민국도 당연히 포함이 된다. 그렇다면 랜섬웨어는 무엇이며, 워너크라이라는 새로운 랜섬웨어는 무엇이며, 우리들이 예방을 해야 하는 이유들과 방법에 대해 알아보자. 랜섬웨어의 정의- 랜섬웨어란 몸값(Ransom)과 소프트웨어(Software)의 합성어로 시스템을 잠그거 나 데이터를 암호화 하여 파일의 사용을 하지 못하게 하고 금전을 요구하는 나 쁜 프로그램을 말한다. 랜섬웨어가 무엇인지 알았다면, 내 수행평가 문서들과 각종 기밀문서들이 잠겨있는 상황을 생각해보자. 정말 끔찍하다. 사람들은 급한 마음에 돈을 랜섬웨어 개발자에게 주기도 한다.그렇다면 이 나쁜 프로그램은 도대체 어떻게 나의 컴퓨터에 감염이 될까? 랜섬웨어의 감염경로..
1. 파일 시스템 - 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근 할 수 있도록 보관 또는 조직하는 체제를 가르키는 말이다. 2. FAT32 FAT32를 알기 전에 먼저 FAT에 대해 알아야 한다. FAT- FAT(File Allocation Table)은 현재 많은 메모리 카드와 많은 컴퓨터에서 쓰이는 컴퓨터 파일 시스템이다.- MS-DOS를 사용하던 시절에 개발된 기초적인 파일 시스템이다.- 빌 게이츠와 마크 맥도널드가 개발하였다.- 드라이브의 최대 크기는 4GB이고 파일 한 개의 최대 크기는 2GB이다.(만약 8기가의 USB를 FAT형식으로 포맷하면 4기가의 공간은 사용불가.) FAT32- 시대가 흐르고 발전하면서 위 FAT의 문제를 해결하기 위해 윈도우 95부터 새롭게 사용되었다.- FAT32의..
서비스 거부 공격 (DOS 공격) 기법 LAND, SYN FLOODING, BONK, BOINK, TeraDrop 원리와 공격 실습실습 환경은 호스트 전용 네트워크를 구축하였습니다. 실 공격은 하지 마세요!!LAND ATTACK DOSDenial of Service, 서비스 거부 공격으로 특정 서버에 처리할 수 없을 정도로 대량의 접속 신호를 한꺼번에 보내 해당 서버가 마비되도록 하는 해킹 기법. 2. Land Attack원리Local Area Network Denial ATTACK으로 패킷을 전송할 때 Source IP와 Destination IP를 같게 보내는 공격.피해자는 패킷에 대한 reply패킷을 자신에게 보내고 자신에게 온 reply패킷의 응답을 자신에게 보냄.무한히 반복되어 패킷이 쌓이면 피..
Shell Script 문법 변수쉘 변수는 대소문자를 구분함.쉘 변수는 데이터를 문자열로 저장하여, 실제 수치를 대입해도 문자열이 저장됨.쉘 변수의 값을 사용할 때 $를 사용. ex) echo $age쉘 변수의 값을 대입할 때 $을 사용하지 않음. ex) age = 14C언어와 다르게 쉘 변수는 타입이 없다. (int, char, double 과 같은 타입이 없음.) 1-1 환경변수쉘을 실행시키면 기본적으로 세팅되어 있는 변수이다.일반변수처럼 값을 얻어오거나 세팅할 수 있다.$0 -> 쉘 스크립트 이름 //ex)asdf.sh$# -> 스크립트에 넘겨진 인자의 개수 //ex) ./asdf.sh 1 2 3 4 인자 4개를 줬을 때 $#의 값은 4이다. C언어의 argc와 비슷하다.$$ -> 쉘 스크리트의 프..
포인터란 자료가 저장되는 기억장치의 기억주소를 가리키는 지시자로써 포인터는 다른 기억장소의 자료를 참조하는데 사용되는 데이터입니다. 1. 포인터를 써야 하는 이유 어떠한 변수이든지 어떠한 버퍼를 할당 받아서 사용하는데, 모든 변수의 저장과 참조는 변수가 저장될 혹은 저장된 주소를 알아야 가능하다. 그래서 컴퓨터는 변수를 참조할 때 그 변수가 저장되어 있는 주소를 먼저 찾아내고 그 주소가 가리키는 내용을 참조하게 된다. 이렇게 변수의 주소를 저장하거나 사용하기 위한 변수가 포인터이다.포인터를 사용하면 간결하고 효율적인 표현과 처리가 가능하고 더 빠른 기계어 코드를 생성할 수 있으며, 복잡한 자료 구조(배열, 구조체 등)와 함수의 쉬운 접근이 가능하다. 또한 포인터를 사용하지 않았을 때 코드로 표현할 수 없..
정적변수(static) : 정적으로 할당되는 변수이다. 정적변수의 특징 - 지역 변수와 전역 변수의 성질을 같이 가지고 있다.- 지역 변수처럼 선언 된 함수 안에서만 사용이 가능하다.- 전역 변수처럼 프로그램이 종료 될 때까지 메모리 공간에 존재하게 된다.- 지역 변수와는 달리 해당 함수가 반환을 하더라도 소멸되지 않는다. C 및 관련 언어에서는 정적 변수와 기타 개념들 모두 static 키워드가 사용된다. 정적 변수 예제 #include void increase() { int num1 = 0; // 변수 선언 및 값 초기화 printf("%d\n", num1); // 변수 num1의 값을 출력 num1++; // 변수의 값을 1씩 증가 } int main() { increase()..
- heap
- srop
- overflow
- fastbin
- oob
- exit
- ebp change
- hacking
- rt_sigreturn
- 해킹
- pwnable
- 본선가고싶다
- stack reusing
- pwable
- codegate
- TLS
- shellcoding
- SQLi
- FSB
- pwnable.tw
- fsop
- HackCTF
- fastbindup
- glibc
- tcache
- Total
- Today
- Yesterday