본문으로 바로가기

고퍼

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 방명록
관리자
  • 블로그 이미지
    G0pher

    Information Security

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

해커스쿨.Section 11

Section 11 리틀엔디안과 빅엔디안 컴퓨터가 바이트를 저장하는 순서를 Byte Ordering이라고 한다 Byte Ordering에는 내림차순과 오름차순이 있다. 흔히 리틀엔디안과 빅엔디안라고 불린다. 이러한 엔디안의 유래는 소설 "걸리버 여행기"의 소인국 나라 이야기에서부터 시작되었다. 계란를 먹을 때, 뾰족한 부분에서부터 먹을지 뭉툭한 부분에서부터 먹을지라는 논제로 대립하게 되는데 뾰족한(작은) 부분에서부터 먹는 무리를 리틀 엔디안뭉툭한(큰) 부분에서부터 먹는 무리를 빅 엔디안이렇게 부르게 되었고, 이를 Danny Cohen이라는 사람이 논문 작성시 인용하면서 부터 사용되기 시작했다고 한다. 빅 엔디안의 경우 두 수를 비교할 때 대부분 빠르게 연산할 수 있다.또한 우리가 사용하는 방식에 가까워 ..

Study/system 2017. 11. 2. 20:49

해커스쿨.Section 9

Section 9 리턴 어드레스 지난 시간에 말했던 이번장에서 나오는 알 수 없는 공간에 대한 내용이다 그 빈공간에는 SFP와 리턴 어드레스라고 한다. SFP는 나중에 알아보고 중요한건 리턴 어드레스이다. 만약 사용자 정의 함수에 선언되어있던 변수가 오버플로우 취약점을 가지고 있다면 리턴 어드레스가 변조될 수 있다. 리턴 어드레스가 변조되면 함수가 끝난 후에 실행될 코드의 주소를 마음대로 바꿀 수 있다는 것이다

Study/system 2017. 11. 2. 20:25

해커스쿨.Section 8

Section 8 함수의 호출과 복귀 다음은 사각형의 넓이를 구하는 함수 코드이다 get_area라는 사용자 정의함수를 만들었다.이는 main의 x와 y를 인자로 받는다. main이 먼저 실행되기 때문에 10번라인부터 실행되다가 15번 라인에서 get_area를 호출한다 이 때, 현재 위치로 다시 돌아오기 위해 리턴어드레스를 저장해놓는다. get_area 함수가 실행된 후 return을 만나 리턴 어드레스를 참조하여 다시 원래의 코드로 돌아온다. 아래는 실행결과를 표로 정리한 모습이다.main 에서는 높은 주소부터 순서대로 들어가기 때문에area -> y -> x순서이다.함수인자는 반대순서로 들어간다.x -> y순서이다. 함수 안에서 선언한 area 변수는 왜인지 함수인자와 멀리 떨어져 있다. 사이에 있..

Study/system 2017. 11. 2. 20:11

해커스쿨.Section 7

Section 7 함수란 무엇인가요? 우리는 보통 코드를 짤 때 사용자 정의 함수를 따로 만들어서 사용한다 이는 main함수에 코드가 몰리는 것을 방지하여 가독성을 높이고, 코드 재활용을 편리하게 만든다. 이러한 함수는 수학에서의 함수처럼 입력을 받아 내부에서 짜여진 논리를 실행한다. 그러나 수학에서의 함수와 다른점은 코드에서의 함수는 반환값이 없을 수 있다는 점이다선언시 반환타입이 void일 경우가 이에 해당한다.이는 함수보다는 "프로시저"라고 부르는 것이 맞다.

Study/system 2017. 11. 2. 19:11

해커스쿨.Section 6

Section 6 gets() 함수 이해하기 section 5 에서 마지막으로 했던 질의에 대해 좀더 알아보는 과정이다 gets()는 키보드로부터 문자열을 입력 받아 버퍼에 저장하는 함수이다이때 이 함수는 주소를 파라미터로 받아 Call by reference 방식으로 입력을 받는다즉, 엔터를 입력받은 곳까지 시작주소부터 채워나가는 것이다 이는 버퍼오버플로우를 발생시키는 취약점을 발생시키게 한다. 이렇듯 gets()가 프로그램에 큰 취약점을 야기할 수 있기 때문에gcc에서 컴파일시 아래와 같은 경고문이 뜨게된다.

Study/system 2017. 11. 2. 18:52

해커스쿨.Section 5

Section 5 각 변수의 메모리 주소 비교해보기 이번에는 변수가 어떤 순서대로 메모리에 할당되는지 알아보자 위에서 알 수 있듯이 변수는 높은주소부터 할당된다 a와 b 주소차이는 14이며 10진수로 20. 즉, 문자배열 20바이트와 같다. 만약 문자배열 20칸을 넘어 a의 영역을 침범하게되면 어떻게 될까?

Study/system 2017. 11. 2. 18:42

해커스쿨.Section 4

Section 4 "메모리 주소" 와 친해지기 아래 코드는 i라는 변수를 선언한 후i의 정보를 알아보는 코드이다 위에서 볼 수 있듯이변수를 선언하는 것은 메모리 공간을 사용하는 것이고int형이기 때문에 변수의 시작주소부터 4바이트 만큼 사용하게 된다변수에 77이란 값을 넣은것은 해당 메모리공간에 77의 값을 넣은것과 같고메모리 주소를 출력해보면 첫번째 메모리주소가 나온다

Study/system 2017. 11. 2. 18:25

해커스쿨.Section 3

Section 3c언어에서 버퍼 사용하기 우선 버퍼는 컴퓨터의 여러곳에 존재한다이번에는 c언어에서 버퍼를 사용하는 방법에 대해 알아본다 c언어에서는 변수를 이용하여 쉽게 버퍼를 만들어낼 수 있다변수에는 다양한 자료형이 있는데 몇가지만 예를 들어 보면 이런 범위를 가진 변수들이 있다이 범위가 각 자료형이 표현할 수 있는 값의 한계이다. 이 중에 char형을 눈여겨보자char형은 문자를 저장하는 자료형이다 그렇다면 문자열을 저장하고 싶을때는 어떻게 해야할까?여러개의 char형을 개별적으로 만들어주는 방법도 있지만 배열이라는 방법이 가장 편하다 예를 들어 20개의 char형 변수를 만들고 싶다면char[20] 과 같이 표현하여 만들 수 있다 그러나 여기에 20바이트 이상의 값을 입력받는다면 어떻게 될까? 이 ..

Study/system 2017. 10. 17. 22:14
  • 이전
  • 1
  • ···
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • ···
  • 49
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • 시스템
  • Los
  • Python
  • 웹
  • 어셈블리어
  • 웹 해킹
  • writeup
  • web
  • HTML
  • 리버싱
  • webhacking.kr
  • SQL
  • injection
  • 네트워크
  • 파이썬
MORE+

ARCHIVE

CALENDAR

«   2025/09   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

LINK

  • ♡
  • DESIGN 아띠 그래픽
  • 이종찬
  • 박상현
  • 이창현
  • 송인봉
  • 신동철
  • 박준형
  • 유현진
  • 박형찬
  • 박형찬
  • 이우진
  • 조학근
  • 박홍주

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT 고퍼, ALL RIGHT RESERVED.
고퍼
블로그 이미지 G0pher 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 방명록
CATEGORY
  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바