본문 바로가기

Layer7

(37)
객체지향 프로그래밍(Object-Oriented Programming) ※ 내가 쓰고도, 너무 추상적인것 같다(두루몽실 쓴것 같다). 솔직히 말해서 나도 잘 이해를 못한 상태로 써내려갔다. 내가 이해한 내용이 틀릴 수도 있고, 틀린내용이 맞을 수도 있다. 아무래도 처음배우는 개념이고, 실습도 못한 상태로 써내려가다보니 이렇게 된 것 같다. 이 글은 내가 정리하고, 공부하기위해서 적은 글이니 만약 당신이 공부할려고 한다면 얌전히 뒤로가기를 누르는게 좋을 것이다. 괜히 개념만꼬이게 될 것이다. 들어가기에 앞서 더보기 해킹을 잘할려면 1순위로 C언어를 잘해야한다. 왜냐하면 C언어를 배우면 기초가 쌓여있어 나머지 언어를 배울때 쉽게 배울 수 있는데 해킹이란, 기본적으로 개발에서 시작되기 때문이다. 해커와 개발자의 차이는 보는 관점이 다르다는 것 밖에 없다. 언어를 배우는 단계까지는..
운영체제의 메모리 할당 알고리즘 운영체제의 메모리 할당 알고리즘 - 개념 설명 더보기 운영체제는 컴퓨터의 자원들을 효율적으로 관리하고, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있게끔 도와주는 소프트웨어다. 따라서 운영체제는 메모리(RAM)이나 하드디스크(HDD)에 공간을 할당할때도 사용자 대신 알아서 해준다. 그러면 도대체 어떻게 알아서 해주는 것일까? 다양한 기법들이 있겠지만 여기서는 유명한 First Fit, Best Fit, Worst Fit 기법들을 알아볼것이다. 기법들에 알아보기 앞서 Sequential Search란 운영체제가 메모리 공간을 할당하기 위해서 공간을 쭉 스캔하는 것이다. 다른 말로는 간단하게 Scanning이라고도 한다. 메모리를 할당하는 것을 Fit라고 한다. First Fit이든, Best Fit..
Codegate 2018 BaskinRobins31 1. 프로그램 분석 더보기 프로그램을 보면 유명한 베스킨라빈스31 게임을 하는 프로그램임을 알 수 있다. 우선 How many numbers do you want to take ? (1-3) 라는 문자열 뒤에 숫자를 입력 받고, 해당 숫자를 출력해준다. 바로 입력을 받을 때 BufferOverFlow를 할 수 있다는 것을 알 수 있다. 그럼 보호기법을 확인해 보자 NX 보호기법이 켜져 있는 것을 알 수 있다. 그러므로 지금까지 했던 방법을 할 수 없다는 것을 알 수 있다. (FSB제외) 오늘은 Memory Leaking을 하는 다른 방법인 ROP를 해볼 것이다. 2. 버퍼의 길이 구하기 더보기 gdb-peda로 프로그램의 흐름을 보자 1. 프로그램 분석에서 봤듯이 프로그램이 실행될때 규칙을 설명하고 사용..
NX-bit binary exploit ( with ASLR ) · Buffer Overflow · 버퍼보다 긴 값을 프로그램의 흐름을 바꾼다. 이 내용은 아래 내용과 서로 연계됩니다. https://riemannk.tistory.com/22 BOF로 쉘따기 · Buffer Overflow · 버퍼보다 긴 값을 입력해서 쉘 코드를 입력받는다. · C언어 코드 #include void setup() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); setvbuf(stderr, 0, 2, 0); } int main.. riemannk.tistory.com https://riemannk.tistory.com/24 NX-bit binary exploit · Buffer Overflow · 버퍼보다 긴 값을 프로그램의 흐름을 바꾼다..
NX-bit binary exploit · Buffer Overflow · 버퍼보다 긴 값을 프로그램의 흐름을 바꾼다. 이 내용은 아래 내용과 서로 연계됩니다. https://riemannk.tistory.com/22 BOF로 쉘따기 · Buffer Overflow · 버퍼보다 긴 값을 입력해서 쉘 코드를 입력받는다. · C언어 코드 #include void setup() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); setvbuf(stderr, 0, 2, 0); } int main.. riemannk.tistory.com 목표 1. 프로그램 분석 2. RTL 개념 설명 3. Exploit 코드 작성 4. 결과 확인 5. 시행착오 6. 참고 1. 프로그램 분석 더보기 1) 값을 입력 받는다. /..
rev-basic-1 (선택 과제) https://dreamhack.io/wargame/challenges/15/comments rev-basic-1 Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출� dreamhack.io [문제] [문제 풀이] 정답 인증
BOF로 쉘따기 · Buffer Overflow · 버퍼보다 긴 값을 입력해서 쉘 코드를 입력받는다. · C언어 코드 #include void setup() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); setvbuf(stderr, 0, 2, 0); } int main(void) { setup(); char buf[0x100]; printf("What's your name? : "); gets(buf); // Buffer Overflow printf("Hello, "); printf(buf); // Format String Bug printf("!!!\n"); printf("Last greeting : "); // Buffer Overflow * gets(buf); ret..
Dreamhack 공부 내용 정리 및 문제풀이 (Reversing) 보호되어 있는 글입니다.